summaryrefslogtreecommitdiff
path: root/tests/admin_widgets
diff options
context:
space:
mode:
authorredodo <me@redodo.io>2018-11-19 19:11:04 +0100
committerTim Graham <timograham@gmail.com>2018-11-19 15:12:52 -0500
commit89a2216486fa8a0513cbb1d49d2d587d4116c60b (patch)
tree3c9f407779bad901ee9e9c6c5b07162cb4d0102d /tests/admin_widgets
parentebd270627c3350101959fac59650259f2d33efcf (diff)
downloaddjango-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.py23
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):