class TestPageChooserPanel(TestCase):

    def setUp(self):
        model = PageChooserModel
        self.chosen_page = Page.objects.get(pk=2)
        test_instance = model.objects.create(page=self.chosen_page)
        self.dotted_model = model._meta.app_label + '.' + model._meta.model_name

        self.page_chooser_panel_class = PageChooserPanel('page', model)

        form_class = get_form_for_model(model, widgets=self.page_chooser_panel_class.widget_overrides())
        form = form_class(instance=test_instance)
        form.errors['page'] = form.error_class(['errors'])

        self.page_chooser_panel = self.page_chooser_panel_class(instance=test_instance,
                                                                form=form)

    def test_render_js_init(self):
        result = self.page_chooser_panel.render_as_field()
        self.assertIn(
            'createPageChooser("{id}", "{model}", {parent});'.format(
                id="id_page", model=self.dotted_model, parent=self.chosen_page.get_parent().id),
            result)

    def test_get_chosen_item(self):
        result = self.page_chooser_panel.get_chosen_item()
        self.assertEqual(result, self.chosen_page)

    def test_render_as_field(self):
        result = self.page_chooser_panel.render_as_field()
        self.assertIn('<p class="help">help text</p>', result)
        self.assertIn('<span>errors</span>', result)

    def test_widget_overrides(self):
        result = self.page_chooser_panel.widget_overrides()
        self.assertIsInstance(result['page'], AdminPageChooser)

    def test_target_content_type(self):
        result = PageChooserPanel(
            'barbecue',
            'wagtailcore.site'
        ).target_content_type()
        self.assertEqual(result.name, 'site')

    def test_target_content_type_malformed_type(self):
        result = PageChooserPanel(
            'barbecue',
            'snowman'
        )
        self.assertRaises(ImproperlyConfigured,
                          result.target_content_type)

    def test_target_content_type_nonexistent_type(self):
        result = PageChooserPanel(
            'barbecue',
            'snowman.lorry'
        )
        self.assertRaises(ImproperlyConfigured,
                          result.target_content_type)
Beispiel #2
0
class TestPageChooserPanel(TestCase):

    def setUp(self):
        model = PageChooserModel
        self.chosen_page = Page.objects.get(pk=2)
        test_instance = model.objects.create(page=self.chosen_page)
        self.dotted_model = model._meta.app_label + '.' + model._meta.model_name

        self.page_chooser_panel_class = PageChooserPanel('page', model)

        form_class = get_form_for_model(model, widgets=self.page_chooser_panel_class.widget_overrides())
        form = form_class(instance=test_instance)
        form.errors['page'] = form.error_class(['errors'])

        self.page_chooser_panel = self.page_chooser_panel_class(instance=test_instance,
                                                                form=form)

    def test_render_js_init(self):
        result = self.page_chooser_panel.render_as_field()
        self.assertIn(
            'createPageChooser("{id}", "{model}", {parent});'.format(
                id="id_page", model=self.dotted_model, parent=self.chosen_page.get_parent().id),
            result)

    def test_get_chosen_item(self):
        result = self.page_chooser_panel.get_chosen_item()
        self.assertEqual(result, self.chosen_page)

    def test_render_as_field(self):
        result = self.page_chooser_panel.render_as_field()
        self.assertIn('<p class="help">help text</p>', result)
        self.assertIn('<span>errors</span>', result)

    def test_widget_overrides(self):
        result = self.page_chooser_panel.widget_overrides()
        self.assertIsInstance(result['page'], AdminPageChooser)

    def test_target_content_type(self):
        result = PageChooserPanel(
            'barbecue',
            'wagtailcore.site'
        ).target_content_type()
        self.assertEqual(result.name, 'site')

    def test_target_content_type_malformed_type(self):
        result = PageChooserPanel(
            'barbecue',
            'snowman'
        )
        self.assertRaises(ImproperlyConfigured,
                          result.target_content_type)

    def test_target_content_type_nonexistent_type(self):
        result = PageChooserPanel(
            'barbecue',
            'snowman.lorry'
        )
        self.assertRaises(ImproperlyConfigured,
                          result.target_content_type)
Beispiel #3
0
class TestPageChooserPanel(TestCase):
    class FakeField(object):
        label = 'label'
        help_text = 'help text'
        errors = ['errors']
        id_for_label = 'id for label'

    class FakeInstance(object):
        class FakePage(object):
            class FakeParent(object):
                id = 1

            name = 'fake page'

            def get_parent(self):
                return self.FakeParent()

        def __init__(self):
            fake_page = self.FakePage()
            self.barbecue = fake_page

    def setUp(self):
        fake_field = self.FakeField()
        fake_instance = self.FakeInstance()
        self.page_chooser_panel = PageChooserPanel('barbecue')(
            instance=fake_instance,
            form={'barbecue': fake_field})

    def test_render_js(self):
        result = self.page_chooser_panel.render_js()
        self.assertEqual(result,
                         "createPageChooser(fixPrefix('id for label'), 'wagtailcore.page', 1);")

    def test_get_chosen_item(self):
        result = self.page_chooser_panel.get_chosen_item()
        self.assertEqual(result.name, 'fake page')

    def test_render_as_field(self):
        result = self.page_chooser_panel.render_as_field()
        self.assertIn('<p class="help">help text</p>', result)
        self.assertIn('<span>errors</span>', result)

    def test_widget_overrides(self):
        result = self.page_chooser_panel.widget_overrides()
        self.assertEqual(result, {'barbecue': HiddenInput})

    def test_target_content_type(self):
        result = PageChooserPanel(
            'barbecue',
            'wagtailcore.site'
        ).target_content_type()
        self.assertEqual(result.name, 'site')

    def test_target_content_type_malformed_type(self):
        result = PageChooserPanel(
            'barbecue',
            'snowman'
        )
        self.assertRaises(ImproperlyConfigured,
                          result.target_content_type)

    def test_target_content_type_nonexistent_type(self):
        result = PageChooserPanel(
            'barbecue',
            'snowman.lorry'
        )
        self.assertRaises(ImproperlyConfigured,
                          result.target_content_type)
Beispiel #4
0
class TestPageChooserPanel(TestCase):
    class FakeField(object):
        label = 'label'
        help_text = 'help text'
        errors = ['errors']
        id_for_label = 'id for label'

    class FakeInstance(object):
        class FakePage(object):
            class FakeParent(object):
                id = 1

            name = 'fake page'

            def get_parent(self):
                return self.FakeParent()

        def __init__(self):
            fake_page = self.FakePage()
            self.barbecue = fake_page

    def setUp(self):
        fake_field = self.FakeField()
        fake_instance = self.FakeInstance()
        self.page_chooser_panel = PageChooserPanel('barbecue')(
            instance=fake_instance, form={
                'barbecue': fake_field
            })

    def test_render_js(self):
        result = self.page_chooser_panel.render_js()
        self.assertEqual(
            result,
            "createPageChooser(fixPrefix('id for label'), 'wagtailcore.page', 1);"
        )

    def test_get_chosen_item(self):
        result = self.page_chooser_panel.get_chosen_item()
        self.assertEqual(result.name, 'fake page')

    def test_render_as_field(self):
        result = self.page_chooser_panel.render_as_field()
        self.assertIn('<p class="help">help text</p>', result)
        self.assertIn('<span>errors</span>', result)

    def test_widget_overrides(self):
        result = self.page_chooser_panel.widget_overrides()
        self.assertEqual(result, {'barbecue': HiddenInput})

    def test_target_content_type(self):
        result = PageChooserPanel('barbecue',
                                  'wagtailcore.site').target_content_type()
        self.assertEqual(result.name, 'site')

    def test_target_content_type_malformed_type(self):
        result = PageChooserPanel('barbecue', 'snowman')
        self.assertRaises(ImproperlyConfigured, result.target_content_type)

    def test_target_content_type_nonexistent_type(self):
        result = PageChooserPanel('barbecue', 'snowman.lorry')
        self.assertRaises(ImproperlyConfigured, result.target_content_type)