Пример #1
0
    def test_direct_form_field_overrides(self):
        # Test that field overrides defined through DIRECT_FORM_FIELD_OVERRIDES
        # are applied

        SimplePageForm = get_form_for_model(SimplePage, form_class=WagtailAdminPageForm)
        simple_form = SimplePageForm()
        # plain TextFields should use AdminAutoHeightTextInput as the widget
        self.assertEqual(type(simple_form.fields['content'].widget), AdminAutoHeightTextInput)

        # This override should NOT be applied to subclasses of TextField such as
        # RichTextField - they should retain their default widgets
        EventPageForm = get_form_for_model(EventPage, form_class=WagtailAdminPageForm)
        event_form = EventPageForm()
        self.assertEqual(type(event_form.fields['body'].widget), DraftailRichTextArea)
Пример #2
0
    def test_direct_form_field_overrides(self):
        # Test that field overrides defined through DIRECT_FORM_FIELD_OVERRIDES
        # are applied

        SimplePageForm = get_form_for_model(SimplePage, form_class=WagtailAdminPageForm)
        simple_form = SimplePageForm()
        # plain TextFields should use AdminAutoHeightTextInput as the widget
        self.assertEqual(type(simple_form.fields['content'].widget), AdminAutoHeightTextInput)

        # This override should NOT be applied to subclasses of TextField such as
        # RichTextField - they should retain their default widgets
        EventPageForm = get_form_for_model(EventPage, form_class=WagtailAdminPageForm)
        event_form = EventPageForm()
        self.assertEqual(type(event_form.fields['body'].widget), DraftailRichTextArea)
Пример #3
0
    def setUp(self):
        if WagtailVersion > (2, 13, 0):
            self.FIELD_CONTENT = """
<div data-contentpath="num_days">
    {}
    {}
</div>
""".format(self.FIELDSET_CONTENT, self.COMMENT_CONTROL_CONTENT)
        else:
            self.FIELD_CONTENT = self.FIELDSET_CONTENT
        self.maxDiff = None
        self.home = getPage("/home/")
        self.user = User.objects.create_superuser('i', '*****@*****.**', 's3(r3t')
        self.calendar = CalendarPage(owner=self.user,
                                     slug="events",
                                     title="Events")
        self.home.add_child(instance=self.calendar)
        self.calendar.save_revision().publish()
        self.event = RecurringEventPage(slug="leaders-meeting",
                                        title="Leaders' Meeting",
                                        repeat=Recurrence(dtstart=dt.date(
                                            2016, 2, 16),
                                                          freq=MONTHLY,
                                                          byweekday=[TU(3)]),
                                        time_from=dt.time(19),
                                        tz="Asia/Tokyo")
        self.calendar.add_child(instance=self.event)
        self.event.save_revision().publish()
        Form = get_form_for_model(RecurringEventPage,
                                  form_class=RecurringEventPageForm)
        self.form = Form(instance=self.event, parent_page=self.calendar)
Пример #4
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, 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').bind_to_model(EventPage)
    def test_detecting_multiple_duplicate_postcodes(self):
        data = self.get_page_form_data({
            **self.response_data(i=0, postcodes="W1A 1AA, SW1A 1AA, BX4 7SB"),
            **self.response_data(i=1,
                                 postcodes="DH99 1NS, DE99 3GG, XM4 5HQ, SW1A 1AA, W1A 1AA"),
            "responses-TOTAL_FORMS":
            "2",
        })

        MyLookupPageForm = get_form_for_model(LookupPage,
                                              form_class=LookupPageForm)
        form = MyLookupPageForm(data)
        self.assertFalse(form.is_valid())
        self.assertIn(
            form.errors["__all__"],
            [
                # We don't sort the error message, because it might be long
                [
                    "The postcodes SW1A 1AA, W1A 1AA appear in multiple responses"
                ],
                [
                    "The postcodes W1A 1AA, SW1A 1AA appear in multiple responses"
                ],
            ],
        )
 def test_detecting_duplicate_postcodes_across_multiple_entries(self):
     data = self.get_page_form_data({
         **self.response_data(i=0, postcodes="W1A 1AA, SW1A 1AA"),
         **self.response_data(i=1, postcodes="DH99 1NS, DE99 3GG"),
         **self.response_data(i=2, postcodes="XM4 5HQ, E17 1AA"),
         **self.response_data(i=3, postcodes="N1 1AA"),
         **self.response_data(i=4, postcodes="EH99 1SP, G58 1SB"),
         **self.response_data(i=5, postcodes="BX4 7SB, E17 1AA"),
         **self.response_data(i=6, postcodes="SW1A 2AA, XM4 5HQ"),
         "responses-TOTAL_FORMS":
         "7",
     })
     MyLookupPageForm = get_form_for_model(LookupPage,
                                           form_class=LookupPageForm)
     form = MyLookupPageForm(data)
     self.assertFalse(form.is_valid())
     self.assertIn(
         form.errors["__all__"],
         [
             # We don't sort the error message, because it might be long
             [
                 "The postcodes E17 1AA, XM4 5HQ appear in multiple responses"
             ],
             [
                 "The postcodes XM4 5HQ, E17 1AA appear in multiple responses"
             ],
         ],
     )
Пример #7
0
    def test_get_form_for_model_with_widget_overides_by_instance(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            widgets={'date_from': forms.PasswordInput()})
        form = EventPageForm()

        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), forms.PasswordInput)
Пример #8
0
    def test_get_form_for_model_with_widget_overides_by_instance(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            widgets={'date_from': forms.PasswordInput()})
        form = EventPageForm()

        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), forms.PasswordInput)
Пример #9
0
    def setUp(self):
        self.form_page = make_form_page()

        self.FormPageForm = get_form_for_model(FormPage,
                                               form_class=WagtailAdminPageForm)

        submissions_panel = FormSubmissionsPanel().bind_to_model(FormPage)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Пример #10
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 19), date_to=date(2014, 7, 21))

        self.dates_panel = FieldRowPanel([
            FieldPanel('date_from'),
            ImageChooserPanel('feed_image'),
        ]).bind_to_model(EventPage)
Пример #11
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.DatesPanel = FieldRowPanel([
            FieldPanel('date_from', classname='col4'),
            FieldPanel('date_to', classname='coltwo'),
        ]).bind_to_model(EventPage)
Пример #12
0
    def setUp(self):
        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.dates_panel = FieldRowPanel([
            FieldPanel('date_from', classname='col4'),
            FieldPanel('date_to', classname='coltwo'),
        ]).bind_to_model(EventPage)
Пример #13
0
    def setUp(self):
        self.form_page = make_form_page()

        self.FormPageForm = get_form_for_model(
            FormPage, form_class=WagtailAdminPageForm
        )

        submissions_panel = FormSubmissionsPanel().bind_to_model(FormPage)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Пример #14
0
 def testBindExceptionTZ25(self):
     cancellation = CancellationPage(owner = self.user,
                                     overrides = self.event,
                                     except_date = dt.date(2019,1,21))
     Form = get_form_for_model(CancellationPage, form_class=CancellationPageForm)
     form = Form(instance=cancellation, parent_page=self.event)
     panel = ExceptionDatePanel('except_date', classname='full-width')
     panel = panel.bind_to(instance=cancellation)
     panel = panel.bind_to(request=self._getRequest())
     panel = panel.bind_to(form=form)
     self.assertEqual(panel.exceptionTZ, "Asia/Tokyo")
Пример #15
0
 def testBindWithoutOverrides25(self):
     cancellation = CancellationPage(owner = self.user,
                                     except_date = dt.date(2019,1,21))
     Form = get_form_for_model(CancellationPage, form_class=CancellationPageForm)
     form = Form(instance=cancellation, parent_page=self.event)
     panel = ExceptionDatePanel('except_date', classname='full-width')
     panel = panel.bind_to(instance=cancellation)
     panel = panel.bind_to(request=self._getRequest())
     panel = panel.bind_to(form=form)
     self.assertIsNotNone(panel.form)
     self.assertIsNone(panel.instance.overrides)
Пример #16
0
    def setUp(self):
        self.request = RequestFactory().get('/')
        user = AnonymousUser()  # technically, Anonymous users cannot access the admin
        self.request.user = user

        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.end_date_panel = (FieldPanel('date_to', classname='full-width')
                               .bind_to(model=EventPage, request=self.request))
Пример #17
0
    def setUp(self):
        self.request = RequestFactory().get('/')
        user = AnonymousUser()  # technically, Anonymous users cannot access the admin
        self.request.user = user

        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 20), date_to=date(2014, 7, 21))

        self.end_date_panel = (FieldPanel('date_to', classname='full-width')
                               .bind_to(model=EventPage, request=self.request))
Пример #18
0
 def testSave(self):
     Form = get_form_for_model(CalendarPage, form_class=CalendarPageForm)
     setattr(self.page, '__joyous_edit_request', self.request)
     form = Form(instance=self.page, parent_page=self.home)
     handler = Mock()
     CalendarPageForm.registerImportHandler(handler)
     form.cleaned_data = {'utc2local': True, 'upload': "FILE"}
     form.save()
     handler.load.assert_called_with(self.page,
                                     self.request,
                                     "FILE",
                                     utc2local=True)
Пример #19
0
 def testBindOverridesRepeat25(self):
     cancellation = CancellationPage(owner = self.user,
                                     overrides = self.event,
                                     except_date = dt.date(2019,1,21))
     Form = get_form_for_model(CancellationPage, form_class=CancellationPageForm)
     form = Form(instance=cancellation, parent_page=self.event)
     widget = form['except_date'].field.widget
     panel = ExceptionDatePanel('except_date', classname='full-width')
     panel = panel.bind_to(instance=cancellation)
     panel = panel.bind_to(request=self._getRequest())
     panel = panel.bind_to(form=form)
     self.assertIs(widget.overrides_repeat, self.event.repeat)
     self.assertIsNone(panel.exceptionTZ)
Пример #20
0
 def testConcealed23(self):
     Form = get_form_for_model(RecurringEventPage,
                               form_class=RecurringEventPageForm)
     form = Form(instance=self.event, parent_page=self.calendar)
     panel = ConcealedPanel([], "Test")
     panel = panel.bind_to_model(RecurringEventPage)
     panel = panel.bind_to_instance(instance=self.event,
                                    form=form,
                                    request=self._getRequest())
     content = panel.render()
     self.assertEqual(content, "")
     self.assertEqual(panel.heading, "")
     self.assertEqual(panel.help_text, "")
Пример #21
0
    def setUp(self):
        self.request = RequestFactory().get('/')
        user = AnonymousUser()  # technically, Anonymous users cannot access the admin
        self.request.user = user

        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 19), date_to=date(2014, 7, 21))

        self.dates_panel = FieldRowPanel([
            FieldPanel('date_from'),
            ImageChooserPanel('feed_image'),
        ]).bind_to(model=EventPage, request=self.request)
Пример #22
0
    def setUp(self):
        # Create a form page
        self.form_page = make_form_page_with_custom_submission()

        self.FormPageForm = get_form_for_model(
            FormPageWithCustomSubmission, form_class=WagtailAdminPageForm
        )

        self.test_user = get_user_model().objects.create_user(
            username='******', password='******')

        submissions_panel = FormSubmissionsPanel().bind_to_model(FormPageWithCustomSubmission)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Пример #23
0
    def test_get_form_for_model_with_specific_fields(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, fields=['date_from'],
            formsets=['speakers'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Пример #24
0
    def setUp(self):
        # Create a form page
        self.form_page = make_form_page_with_custom_submission()

        self.FormPageForm = get_form_for_model(FormPageWithCustomSubmission,
                                               form_class=WagtailAdminPageForm)

        self.test_user = get_user_model().objects.create_user(
            username='******', password='******')

        submissions_panel = FormSubmissionsPanel().bind_to_model(
            FormPageWithCustomSubmission)

        self.panel = submissions_panel(self.form_page, self.FormPageForm())
Пример #25
0
    def setUp(self):
        self.request = RequestFactory().get('/')
        user = AnonymousUser()  # technically, Anonymous users cannot access the admin
        self.request.user = user

        self.EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, formsets=[])
        self.event = EventPage(title='Abergavenny sheepdog trials',
                               date_from=date(2014, 7, 19), date_to=date(2014, 7, 21))

        self.dates_panel = FieldRowPanel([
            FieldPanel('date_from'),
            ImageChooserPanel('feed_image'),
        ]).bind_to(model=EventPage, request=self.request)
 def test_duplicate_postcodes_in_deleted_formset_forms_are_ignored(self):
     data = self.get_page_form_data(
         {
             **self.response_data(i=0, postcodes="W1A 1AA, SW1A 1AA"),
             **self.response_data(i=1,
                                  postcodes="GIR 0AA, W1A 1AA",
                                  DELETE="1"),
             "responses-TOTAL_FORMS":
             "2",
         })
     MyLookupPageForm = get_form_for_model(LookupPage,
                                           form_class=LookupPageForm)
     form = MyLookupPageForm(data)
     self.assertTrue(form.is_valid())
    def test_postcodes_arrays_are_cleaned(self):
        data = self.get_page_form_data({
            **self.response_data(i=0, postcodes="HP201UY"),
            "responses-TOTAL_FORMS":
            "1",
        })

        MyLookupPageForm = get_form_for_model(LookupPage,
                                              form_class=LookupPageForm)
        form = MyLookupPageForm(data)
        self.assertTrue(form.is_valid())
        self.assertEqual(
            form.formsets["responses"][0].cleaned_data["postcodes"],
            ["HP20 1UY"])
Пример #28
0
    def test_help_text_patching__no_site(self):
        # Note: relies on migrations to have populated the test DB
        Site.objects.all().delete()
        assert not Site.objects.exists()

        assert self.Article.base_form_class == BasePageForm
        FormClass = get_form_for_model(self.Article, form_class=BasePageForm)
        form = FormClass()

        self.assertEqual(
            form.fields["slug"].help_text,
            ("The name of the page as it will appear in URLs. For example, "
             "for a post: https://example.com/posts/your-slug-here/"),
        )
Пример #29
0
    def test_help_text_patching__has_site(self):
        # Note: relies on migrations to have populated the test DB
        assert Site.objects.exists()
        assert Site.objects.first().hostname == "localhost"

        assert self.Article.base_form_class == BasePageForm
        FormClass = get_form_for_model(self.Article, form_class=BasePageForm)
        form = FormClass()

        self.assertEqual(
            form.fields["slug"].help_text,
            ("The name of the page as it will appear in URLs. For example, "
             "for an Article: http://localhost/articles/slug/"),
        )
Пример #30
0
    def test_get_form_for_model_with_specific_fields(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm, fields=['date_from'],
            formsets=['speakers'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Пример #31
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            exclude=['title'], exclude_formsets=['related_links'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # 'path' is not excluded any more, as the excluded fields were overridden
        self.assertIn('path', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
    def test_detecting_duplicate_postcodes(self):
        data = self.get_page_form_data({
            **self.response_data(i=0, postcodes="W1A 1AA, SW1A 1AA, BX4 7SB"),
            **self.response_data(i=1,
                                 postcodes="DH99 1NS, DE99 3GG, XM4 5HQ, W1A 1AA"),
            "responses-TOTAL_FORMS":
            "2",
        })

        MyLookupPageForm = get_form_for_model(LookupPage,
                                              form_class=LookupPageForm)
        form = MyLookupPageForm(data)
        self.assertFalse(form.is_valid())
        self.assertEqual(
            form.errors["__all__"],
            ["The postcode W1A 1AA appears in multiple responses"],
        )
    def test_detecting_duplicate_postcodes_with_different_formatting(self):
        """E.g. W1A 1AA and W1A1AA should be treated as equal"""
        data = self.get_page_form_data({
            **self.response_data(i=0, postcodes="W1A 1AA, SW1A 1AA"),
            **self.response_data(i=1, postcodes="DH99 1NS, W1A1AA"),
            "responses-TOTAL_FORMS":
            "2",
        })

        MyLookupPageForm = get_form_for_model(LookupPage,
                                              form_class=LookupPageForm)
        form = MyLookupPageForm(data)
        self.assertFalse(form.is_valid())
        self.assertEqual(
            form.errors["__all__"],
            ["The postcode W1A 1AA appears in multiple responses"],
        )
Пример #34
0
    def test_get_form_for_model_with_excluded_fields(self):
        EventPageForm = get_form_for_model(
            EventPage, form_class=WagtailAdminPageForm,
            exclude=['title'], exclude_formsets=['related_links'])
        form = EventPageForm()

        # form should contain date_from but not title
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)
        self.assertNotIn('title', form.fields)

        # 'path' is not excluded any more, as the excluded fields were overridden
        self.assertIn('path', form.fields)

        # formsets should include speakers but not related_links
        self.assertIn('speakers', form.formsets)
        self.assertNotIn('related_links', form.formsets)
Пример #35
0
    def test_get_form_for_model(self):
        EventPageForm = get_form_for_model(EventPage, form_class=WagtailAdminPageForm)
        form = EventPageForm()

        # form should be a subclass of WagtailAdminModelForm
        self.assertTrue(issubclass(EventPageForm, WagtailAdminModelForm))
        # form should contain a title field (from the base Page)
        self.assertEqual(type(form.fields['title']), forms.CharField)
        # and 'date_from' from EventPage
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        # the widget should be overridden with AdminDateInput as per FORM_FIELD_OVERRIDES
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)

        # treebeard's 'path' field should be excluded
        self.assertNotIn('path', form.fields)

        # all child relations become formsets by default
        self.assertIn('speakers', form.formsets)
        self.assertIn('related_links', form.formsets)
Пример #36
0
    def test_get_form_for_model(self):
        EventPageForm = get_form_for_model(EventPage, form_class=WagtailAdminPageForm)
        form = EventPageForm()

        # form should be a subclass of WagtailAdminModelForm
        self.assertTrue(issubclass(EventPageForm, WagtailAdminModelForm))
        # form should contain a title field (from the base Page)
        self.assertEqual(type(form.fields['title']), forms.CharField)
        # and 'date_from' from EventPage
        self.assertEqual(type(form.fields['date_from']), forms.DateField)
        # the widget should be overridden with AdminDateInput as per FORM_FIELD_OVERRIDES
        self.assertEqual(type(form.fields['date_from'].widget), AdminDateInput)

        # treebeard's 'path' field should be excluded
        self.assertNotIn('path', form.fields)

        # all child relations become formsets by default
        self.assertIn('speakers', form.formsets)
        self.assertIn('related_links', form.formsets)
Пример #37
0
 def setUp(self):
     self.home = getPage("/home/")
     self.user = User.objects.create_superuser('i', '*****@*****.**', 's3(r3t')
     self.calendar = CalendarPage(owner = self.user,
                                  slug  = "events",
                                  title = "Events")
     self.home.add_child(instance=self.calendar)
     self.calendar.save_revision().publish()
     self.event = RecurringEventPage(slug      = "leaders-meeting",
                                     title     = "Leaders' Meeting",
                                     repeat    = Recurrence(dtstart=dt.date(2016,2,16),
                                                            freq=MONTHLY,
                                                            byweekday=[TU(3)]),
                                     time_from = dt.time(19),
                                     tz        = "Asia/Tokyo")
     self.calendar.add_child(instance=self.event)
     self.event.save_revision().publish()
     Form = get_form_for_model(RecurringEventPage,
                               form_class=RecurringEventPageForm)
     self.form = Form(instance=self.event, parent_page=self.calendar)
Пример #38
0
    def test_tag_widget_is_passed_tag_model(self):
        RestaurantPageForm = get_form_for_model(
            RestaurantPage, form_class=WagtailAdminPageForm
        )
        form_html = RestaurantPageForm().as_p()
        self.assertIn('/admin/tag\\u002Dautocomplete/tests/restauranttag/', form_html)

        # widget should pick up the free_tagging=False attribute on the tag model
        # and set itself to autocomplete only
        self.assertIn('"autocompleteOnly": true', form_html)

        # Free tagging should also be disabled at the form field validation level
        RestaurantTag.objects.create(name='Italian', slug='italian')
        RestaurantTag.objects.create(name='Indian', slug='indian')

        form = RestaurantPageForm({
            'title': 'Buonasera',
            'slug': 'buonasera',
            'tags': "Italian, delicious",
        })
        self.assertTrue(form.is_valid())
        self.assertEqual(form.cleaned_data['tags'], ["Italian"])
Пример #39
0
    def testShown23(self):
        class ShownPanel(ConcealedPanel):
            def _show(self):
                return True

        Form = get_form_for_model(RecurringEventPage,
                                  form_class=RecurringEventPageForm)
        form = Form(instance=self.event, parent_page=self.calendar)
        panel = ShownPanel([], "Test", help_text="Nothing")
        panel = panel.bind_to_model(RecurringEventPage)
        panel = panel.bind_to_instance(instance=self.event,
                                       form=form,
                                       request=self._getRequest())
        content = panel.render()
        self.assertHTMLEqual(content, """
<fieldset>
    <legend>Test</legend>
    <ul class="fields">
    </ul>
</fieldset>
""")
        self.assertEqual(panel.heading, "Test")
        self.assertEqual(panel.help_text, "Nothing")
Пример #40
0
    def test_help_text_patching_for_external_content(self):
        # Inline import because we need to use a subclass of Page and don't
        # want to pollute this module more than we have to
        from developerportal.apps.externalcontent.models import (
            ExternalEvent,
            ExternalContent,
            ExternalVideo,
            ExternalArticle,
        )

        for model in [
                ExternalEvent, ExternalContent, ExternalVideo, ExternalArticle
        ]:
            assert model.base_form_class == BasePageForm

            FormClass = get_form_for_model(model, form_class=BasePageForm)
            form = FormClass()

            self.assertEqual(
                form.fields["slug"].help_text,
                ("Because you are adding External content, "
                 "this slug will NOT be visible to the end user, "
                 "but still needs to be unique within the CMS."),
            )