diff --git a/wagtail/wagtailadmin/tests/test_edit_handlers.py b/wagtail/wagtailadmin/tests/test_edit_handlers.py
index b75675b9f..aee34c1f2 100644
--- a/wagtail/wagtailadmin/tests/test_edit_handlers.py
+++ b/wagtail/wagtailadmin/tests/test_edit_handlers.py
@@ -1,5 +1,7 @@
from mock import MagicMock
+from datetime import date
+
from django.core.exceptions import ImproperlyConfigured
from django.test import TestCase
from django import forms
@@ -252,83 +254,91 @@ class TestObjectList(TestCase):
class TestFieldPanel(TestCase):
- class FakeClass(object):
- required = False
- widget = 'fake widget'
-
- class FakeField(object):
- label = 'label'
- help_text = 'help text'
- errors = ['errors']
- id_for_label = 'id for label'
-
- class FakeForm(dict):
- def __init__(self, *args, **kwargs):
- self.fields = self.fields_iterator()
-
- def fields_iterator(self):
- for i in self:
- yield i
-
def setUp(self):
- fake_field = self.FakeField()
- fake_field.field = self.FakeClass()
- self.field_panel = FieldPanel('barbecue', 'snowman')(
- instance=True,
- form={'barbecue': fake_field})
+ self.EventPageForm = get_form_for_model(EventPage, formsets = [])
+ self.event = EventPage(title='Abergavenny sheepdog trials',
+ date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))
+
+ self.EndDatePanel = FieldPanel('date_to', classname='full-width')
def test_render_as_object(self):
- result = self.field_panel.render_as_object()
- self.assertIn('',
- result)
- self.assertIn('
',
- result)
+ form = self.EventPageForm(
+ {'title': 'Pontypridd sheepdog trials', 'date_from': '2014-07-20', 'date_to': '2014-07-22'},
+ instance=self.event)
+
+ form.is_valid()
+
+ field_panel = self.EndDatePanel(
+ instance=self.event,
+ form=form
+ )
+ result = field_panel.render_as_object()
+
+ # check that label appears in the 'object' wrapper as well as the field
+ self.assertIn('', result)
+ self.assertIn('', result)
+
+ # check that help text is included
+ self.assertIn('Not required if event is on a single day', result)
+
+ # check that the populated form field is included
+ self.assertIn('value="2014-07-22"', result)
+
+ # there should be no errors on this field
+ self.assertNotIn('
', result)
def test_render_as_field(self):
- field = self.FakeField()
- bound_field = self.FakeField()
- bound_field.field = field
- self.field_panel.bound_field = bound_field
- result = self.field_panel.render_as_field()
- self.assertIn('
help text
',
- result)
- self.assertIn('errors',
- result)
+ form = self.EventPageForm(
+ {'title': 'Pontypridd sheepdog trials', 'date_from': '2014-07-20', 'date_to': '2014-07-22'},
+ instance=self.event)
+
+ form.is_valid()
+
+ field_panel = self.EndDatePanel(
+ instance=self.event,
+ form=form
+ )
+ result = field_panel.render_as_field()
+
+ # check that label is output in the 'field' style
+ self.assertIn('', result)
+ self.assertNotIn('', result)
+
+ # check that help text is included
+ self.assertIn('Not required if event is on a single day', result)
+
+ # check that the populated form field is included
+ self.assertIn('value="2014-07-22"', result)
+
+ # there should be no errors on this field
+ self.assertNotIn('