Ejemplo n.º 1
0
    def test_get_internal_value(self):
        id_ = uuid.uuid4()

        class Stub:
            pk = None

        stub = Stub()
        stub.pk = id_
        widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
        value = widget.get_internal_value(stub)
        self.assertEqual(value, str(id_))
Ejemplo n.º 2
0
    def test_render_js_init(self):
        widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
        js_init = widget.render_js_init('field-1', None, self.root_page)

        expected_pattern = (
            r'^'  # Start of line
            r'wagtailModelChoosers.initModelChooser\('  # Function name
            r'".+"'  # First argument, the field id (a string)
            r', '  # Comma and space between arguments
            r'.+'  # Second argument, the data (an object)
            r'\)'  # End of function
            r'$'  # End of line
        )

        self.assertRegex(js_init, expected_pattern)
Ejemplo n.º 3
0
    def test_get_js_init_data(self):
        widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
        data = widget.get_js_init_data('field-1', None, self.root_page)
        expected_data = {
            'label': 'Page',
            'required': True,
            'initial_display_value': 'Welcome to your new Wagtail site!',
            'display': 'title',
            'list_display': [{
                'name': 'title',
                'label': 'Title'
            }],
            'endpoint': '/admin/modelchoosers/api/v1/model/wagtailcore.Page',
            'pk_name': 'id',
        }

        self.assertEqual(data, expected_data)
Ejemplo n.º 4
0
    def test_get_js_init_data(self):
        widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
        data = widget.get_js_init_data('field-1', None, self.root_page)
        expected_data = {
            'label': 'Page',
            'required': True,
            'initial_display_value': 'Welcome to your new Wagtail site!',
            'initial_thumbnail': None,
            'thumbnail': None,
            'display': 'title',
            'list_display': [{
                'name': 'title',
                'label': 'Title'
            }],
            'has_list_filter': False,
            'adjustable_filter_type': False,
            'endpoint': '/admin/modelchoosers/api/v1/model/test_chooser',
            'edit_endpoint': None,
            'filters_endpoint':
            '/admin/modelchoosers/api/v1/filters/test_chooser/',
            'pk_name': 'id',
        }

        self.assertEqual(data, expected_data)
Ejemplo n.º 5
0
 def test_url_builder(self):
     widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
     url = widget.get_endpoint()
     self.assertEqual(url, '/admin/modelchoosers/api/v1/model/test_chooser')
Ejemplo n.º 6
0
 def test_get_instance_no_page_value_is_none(self):
     widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
     self.assertEqual(widget.get_instance(999), None)
Ejemplo n.º 7
0
 def test_get_instance_page_value(self):
     widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
     self.assertEqual(widget.get_instance(2), self.root_page)
Ejemplo n.º 8
0
 def test_get_instance_none_value(self):
     widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
     self.assertFalse(widget.get_instance(''))
Ejemplo n.º 9
0
 def test_get_target_model_class(self):
     widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
     model = widget.target_model()
     self.assertEqual(model.__class__, Page)
Ejemplo n.º 10
0
 def test_get_target_model_string(self):
     widget = widgets.ModelChooserWidget('wagtailcore.Page',
                                         **self.get_widget_options())
     model = widget.target_model()
     self.assertEqual(model.__class__, Page)
Ejemplo n.º 11
0
 def test_render_html_with_value(self):
     widget = widgets.ModelChooserWidget(Page, **self.get_widget_options())
     html = widget.render_html('test', self.root_page, {})
     self.assertIn('<input type="hidden" value="2" name="test" >', html)
Ejemplo n.º 12
0
 def test_render_html(self):
     widget = widgets.ModelChooserWidget(self.CHOOSER_NAME, Page,
                                         **self.get_widget_options())
     html = widget.render_html('test', None, {})
     self.assertIn('<input type="hidden" value="" name="test" >', html)