diff options
author | redodo <me@redodo.io> | 2018-11-19 19:11:04 +0100 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2018-11-19 15:12:52 -0500 |
commit | 89a2216486fa8a0513cbb1d49d2d587d4116c60b (patch) | |
tree | 3c9f407779bad901ee9e9c6c5b07162cb4d0102d /tests/admin_widgets | |
parent | ebd270627c3350101959fac59650259f2d33efcf (diff) | |
download | django-89a2216486fa8a0513cbb1d49d2d587d4116c60b.tar.gz |
Fixed #29961 -- Made RelatedFieldWidgetWrapper hide related item links if wrapping a hidden widget.
Diffstat (limited to 'tests/admin_widgets')
-rw-r--r-- | tests/admin_widgets/tests.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index f7c2a7865c..623fa39bc1 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -687,6 +687,29 @@ class RelatedFieldWidgetWrapperTests(SimpleTestCase): wrapper = widgets.RelatedFieldWidgetWrapper(widget, rel, widget_admin_site) self.assertIs(wrapper.value_omitted_from_data({}, {}, 'band'), False) + def test_widget_is_hidden(self): + rel = Album._meta.get_field('band').remote_field + widget = forms.HiddenInput() + widget.choices = () + wrapper = widgets.RelatedFieldWidgetWrapper(widget, rel, widget_admin_site) + self.assertIs(wrapper.is_hidden, True) + context = wrapper.get_context('band', None, {}) + self.assertIs(context['is_hidden'], True) + output = wrapper.render('name', 'value') + # Related item links are hidden. + self.assertNotIn('<a ', output) + + def test_widget_is_not_hidden(self): + rel = Album._meta.get_field('band').remote_field + widget = forms.Select() + wrapper = widgets.RelatedFieldWidgetWrapper(widget, rel, widget_admin_site) + self.assertIs(wrapper.is_hidden, False) + context = wrapper.get_context('band', None, {}) + self.assertIs(context['is_hidden'], False) + output = wrapper.render('name', 'value') + # Related item links are present. + self.assertIn('<a ', output) + @override_settings(ROOT_URLCONF='admin_widgets.urls') class AdminWidgetSeleniumTestCase(AdminSeleniumTestCase): |