From ac37c7645be7c419cada861d4e4e4743fc52e2a8 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Fri, 12 Jun 2015 11:34:09 +0100 Subject: [PATCH] assert that system check errors on blocks return the appropriate field or block --- wagtail/wagtailcore/tests/test_blocks.py | 20 +++++++++++++++---- wagtail/wagtailcore/tests/test_streamfield.py | 1 + 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/wagtail/wagtailcore/tests/test_blocks.py b/wagtail/wagtailcore/tests/test_blocks.py index 4e1f75e09..39620a5c4 100644 --- a/wagtail/wagtailcore/tests/test_blocks.py +++ b/wagtail/wagtailcore/tests/test_blocks.py @@ -1262,6 +1262,7 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block name cannot be empty") + self.assertEqual(errors[0].obj, block.child_blocks['']) def test_name_cannot_contain_spaces(self): block = blocks.StreamBlock([ @@ -1273,6 +1274,7 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot contain spaces") + self.assertEqual(errors[0].obj, block.child_blocks['rich text']) def test_name_cannot_contain_dashes(self): block = blocks.StreamBlock([ @@ -1284,6 +1286,7 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot contain dashes") + self.assertEqual(errors[0].obj, block.child_blocks['rich-text']) def test_name_cannot_begin_with_digit(self): block = blocks.StreamBlock([ @@ -1295,13 +1298,15 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot begin with a digit") + self.assertEqual(errors[0].obj, block.child_blocks['99richtext']) def test_system_checks_recurse_into_lists(self): + failing_block = blocks.RichTextBlock() block = blocks.StreamBlock([ ('paragraph_list', blocks.ListBlock( blocks.StructBlock([ ('heading', blocks.CharBlock()), - ('rich text', blocks.RichTextBlock()), + ('rich text', failing_block), ]) )) ]) @@ -1310,13 +1315,15 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot contain spaces") + self.assertEqual(errors[0].obj, failing_block) def test_system_checks_recurse_into_streams(self): + failing_block = blocks.RichTextBlock() block = blocks.StreamBlock([ ('carousel', blocks.StreamBlock([ ('text', blocks.StructBlock([ ('heading', blocks.CharBlock()), - ('rich text', blocks.RichTextBlock()), + ('rich text', failing_block), ])) ])) ]) @@ -1325,17 +1332,20 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot contain spaces") + self.assertEqual(errors[0].obj, failing_block) def test_system_checks_recurse_into_structs(self): + failing_block_1 = blocks.RichTextBlock() + failing_block_2 = blocks.RichTextBlock() block = blocks.StreamBlock([ ('two_column', blocks.StructBlock([ ('left', blocks.StructBlock([ ('heading', blocks.CharBlock()), - ('rich text', blocks.RichTextBlock()), + ('rich text', failing_block_1), ])), ('right', blocks.StructBlock([ ('heading', blocks.CharBlock()), - ('rich text', blocks.RichTextBlock()), + ('rich text', failing_block_2), ])) ])) ]) @@ -1344,5 +1354,7 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 2) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot contain spaces") + self.assertEqual(errors[0].obj, failing_block_1) self.assertEqual(errors[1].id, 'wagtailcore.E001') self.assertEqual(errors[1].hint, "Block names cannot contain spaces") + self.assertEqual(errors[0].obj, failing_block_2) diff --git a/wagtail/wagtailcore/tests/test_streamfield.py b/wagtail/wagtailcore/tests/test_streamfield.py index 588a1ae9c..b35c1146f 100644 --- a/wagtail/wagtailcore/tests/test_streamfield.py +++ b/wagtail/wagtailcore/tests/test_streamfield.py @@ -98,3 +98,4 @@ class TestSystemCheck(TestCase): self.assertEqual(len(errors), 1) self.assertEqual(errors[0].id, 'wagtailcore.E001') self.assertEqual(errors[0].hint, "Block names cannot contain spaces") + self.assertEqual(errors[0].obj, InvalidStreamModel._meta.get_field('body'))