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_))
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)
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)
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)
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')
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)
def test_get_instance_page_value(self): widget = widgets.ModelChooserWidget(Page, **self.get_widget_options()) self.assertEqual(widget.get_instance(2), self.root_page)
def test_get_instance_none_value(self): widget = widgets.ModelChooserWidget(Page, **self.get_widget_options()) self.assertFalse(widget.get_instance(''))
def test_get_target_model_class(self): widget = widgets.ModelChooserWidget(Page, **self.get_widget_options()) model = widget.target_model() self.assertEqual(model.__class__, Page)
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)
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)
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)