summaryrefslogtreecommitdiff
path: root/tests/generic_inline_admin
diff options
context:
space:
mode:
authorJustin Caratzas <bigjust@lambdaphil.es>2014-09-22 17:29:44 -0400
committerTim Graham <timograham@gmail.com>2014-09-24 06:32:42 -0400
commitcf43a1ee909ab5dbca5b6a40247cd093a3e2ac8d (patch)
treeb2c16996ce62f285685b2348020b3f9bed285721 /tests/generic_inline_admin
parent2f3a4cd573166e6b7bac9ed89d448ca34ab93edf (diff)
downloaddjango-cf43a1ee909ab5dbca5b6a40247cd093a3e2ac8d.tar.gz
Fixed #23539 -- Added get_extra(), get_max_num(), and get_min_num() hooks to GenericInlineModelAdmin.
Diffstat (limited to 'tests/generic_inline_admin')
-rw-r--r--tests/generic_inline_admin/tests.py57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/generic_inline_admin/tests.py b/tests/generic_inline_admin/tests.py
index dafd5d3334..bd80ec3460 100644
--- a/tests/generic_inline_admin/tests.py
+++ b/tests/generic_inline_admin/tests.py
@@ -222,6 +222,63 @@ class GenericInlineAdminParametersTest(TestCase):
self.assertEqual(formset.total_form_count(), 5)
self.assertEqual(formset.initial_form_count(), 1)
+ def test_get_extra(self):
+
+ class GetExtraInline(GenericTabularInline):
+ model = Media
+ extra = 4
+
+ def get_extra(self, request, obj):
+ return 2
+
+ modeladmin = admin.ModelAdmin(Episode, admin_site)
+ modeladmin.inlines = [GetExtraInline]
+ e = self._create_object(Episode)
+ request = self.factory.get('/generic_inline_admin/admin/generic_inline_admin/episode/%s/' % e.pk)
+ request.user = User(username='super', is_superuser=True)
+ response = modeladmin.changeform_view(request, object_id=str(e.pk))
+ formset = response.context_data['inline_admin_formsets'][0].formset
+
+ self.assertEqual(formset.extra, 2)
+
+ def test_get_min_num(self):
+
+ class GetMinNumInline(GenericTabularInline):
+ model = Media
+ min_num = 5
+
+ def get_min_num(self, request, obj):
+ return 2
+
+ modeladmin = admin.ModelAdmin(Episode, admin_site)
+ modeladmin.inlines = [GetMinNumInline]
+ e = self._create_object(Episode)
+ request = self.factory.get('/generic_inline_admin/admin/generic_inline_admin/episode/%s/' % e.pk)
+ request.user = User(username='super', is_superuser=True)
+ response = modeladmin.changeform_view(request, object_id=str(e.pk))
+ formset = response.context_data['inline_admin_formsets'][0].formset
+
+ self.assertEqual(formset.min_num, 2)
+
+ def test_get_max_num(self):
+
+ class GetMaxNumInline(GenericTabularInline):
+ model = Media
+ extra = 5
+
+ def get_max_num(self, request, obj):
+ return 2
+
+ modeladmin = admin.ModelAdmin(Episode, admin_site)
+ modeladmin.inlines = [GetMaxNumInline]
+ e = self._create_object(Episode)
+ request = self.factory.get('/generic_inline_admin/admin/generic_inline_admin/episode/%s/' % e.pk)
+ request.user = User(username='super', is_superuser=True)
+ response = modeladmin.changeform_view(request, object_id=str(e.pk))
+ formset = response.context_data['inline_admin_formsets'][0].formset
+
+ self.assertEqual(formset.max_num, 2)
+
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',),
ROOT_URLCONF="generic_inline_admin.urls")