summaryrefslogtreecommitdiff
path: root/tests/modeladmin/tests.py
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2018-02-21 19:11:50 -0800
committerTim Graham <timograham@gmail.com>2018-04-04 19:21:50 -0400
commitbe6ca89396c031619947921c81b8795d816e3285 (patch)
treeb3b63ac77eca301666f28dfd446507290b4ef6a5 /tests/modeladmin/tests.py
parent4f88143649d1bba69e911b2437a8f84d998d4bf2 (diff)
Fixed #27991 -- Added obj arg to InlineModelAdmin.has_add_permission().
Thanks Vladimir Ivanov for the initial patch.
Diffstat (limited to 'tests/modeladmin/tests.py')
-rw-r--r--tests/modeladmin/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py
index 81c28cb0ff..d0123de722 100644
--- a/tests/modeladmin/tests.py
+++ b/tests/modeladmin/tests.py
@@ -709,6 +709,25 @@ class ModelAdminPermissionTests(SimpleTestCase):
request.user = self.MockDeleteUser()
self.assertFalse(ma.has_add_permission(request))
+ def test_inline_has_add_permission_uses_obj(self):
+ class ConcertInline(TabularInline):
+ model = Concert
+
+ def has_add_permission(self, request, obj):
+ return bool(obj)
+
+ class BandAdmin(ModelAdmin):
+ inlines = [ConcertInline]
+
+ ma = BandAdmin(Band, AdminSite())
+ request = MockRequest()
+ request.user = self.MockAddUser()
+ self.assertEqual(ma.get_inline_instances(request), [])
+ band = Band(name='The Doors', bio='', sign_date=date(1965, 1, 1))
+ inline_instances = ma.get_inline_instances(request, band)
+ self.assertEqual(len(inline_instances), 1)
+ self.assertIsInstance(inline_instances[0], ConcertInline)
+
def test_has_change_permission(self):
"""
has_change_permission returns True for users who can edit objects and