#2140: Suggested changes in tests

pull/2140/merge
Mikalai Radchuk 2016-02-05 23:02:04 +03:00 zatwierdzone przez Matt Westcott
rodzic 348273642a
commit 8b6c24d3f7
1 zmienionych plików z 27 dodań i 38 usunięć

Wyświetl plik

@ -5,7 +5,7 @@ import unittest
from django import forms
from django.forms.utils import ErrorList
from django.core.exceptions import NON_FIELD_ERRORS, ValidationError
from django.core.exceptions import ValidationError
from django.test import TestCase, SimpleTestCase
from django.utils.safestring import mark_safe, SafeData
from django.utils.html import format_html
@ -1283,25 +1283,7 @@ class TestStreamBlock(SimpleTestCase):
3: ['Enter a valid URL.'],
})
def test_block_level_validation_no_errors(self):
block = FooStreamBlock()
post_data = {'stream-count': '3'}
for i, value in enumerate(['foo', 'bar', 'baz']):
post_data.update({
'stream-%d-deleted' % i: '',
'stream-%d-order' % i: str(i),
'stream-%d-type' % i: 'text',
'stream-%d-value' % i: value
})
block_value = block.value_from_datadict(post_data, {}, 'stream')
try:
block.clean(block_value)
except ValidationError:
self.fail('Should have passed validation')
def test_block_level_validation_throws_errors(self):
def test_block_level_validation_renders_errors(self):
block = FooStreamBlock()
post_data = {'stream-count': '2'}
@ -1317,31 +1299,38 @@ class TestStreamBlock(SimpleTestCase):
with self.assertRaises(ValidationError) as catcher:
block.clean(block_value)
self.assertEqual(catcher.exception.params, {
NON_FIELD_ERRORS: [FooStreamBlock.error],
})
def test_block_level_validation_renders_errors(self):
block = FooStreamBlock()
post_data = {'stream-count': '2'}
for i, value in enumerate(['bar', 'baz']):
post_data.update({
'stream-%d-deleted' % i: '',
'stream-%d-order' % i: str(i),
'stream-%d-type' % i: 'text',
'stream-%d-value' % i: value
})
block_value = block.value_from_datadict(post_data, {}, 'stream')
errors = ErrorList([
blocks.StreamBlockValidationError(non_block_errors=[FooStreamBlock.error])
catcher.exception
])
self.assertInHTML(
format_html('<div class="help-block help-critical">{}</div>', FooStreamBlock.error),
block.render_form(block_value, prefix='stream', errors=errors))
def test_block_level_validation_render_no_errors(self):
block = FooStreamBlock()
post_data = {'stream-count': '3'}
for i, value in enumerate(['foo', 'bar', 'baz']):
post_data.update({
'stream-%d-deleted' % i: '',
'stream-%d-order' % i: str(i),
'stream-%d-type' % i: 'text',
'stream-%d-value' % i: value,
})
block_value = block.value_from_datadict(post_data, {}, 'stream')
try:
block.clean(block_value)
except ValidationError:
self.fail('Should have passed validation')
self.assertInHTML(
format_html('<div class="help-block help-critical">{}</div>', FooStreamBlock.error),
block.render_form(block_value, prefix='stream'),
count=0)
def test_html_declarations(self):
class ArticleBlock(blocks.StreamBlock):
heading = blocks.CharBlock()