summaryrefslogtreecommitdiff
path: root/tests/admin_inlines/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/admin_inlines/tests.py')
-rw-r--r--tests/admin_inlines/tests.py36
1 files changed, 35 insertions, 1 deletions
diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py
index 56f006c441..9ed54fd091 100644
--- a/tests/admin_inlines/tests.py
+++ b/tests/admin_inlines/tests.py
@@ -13,7 +13,9 @@ from .models import (Holder, Inner, Holder2, Inner2, Holder3, Inner3, Person,
OutfitItem, Fashionista, Teacher, Parent, Child, Author, Book, Profile,
ProfileCollection, ParentModelWithCustomPk, ChildModel1, ChildModel2,
Sighting, Novel, Chapter, FootNote, BinaryTree, SomeParentModel,
- SomeChildModel)
+ SomeChildModel, Poll, Question, Inner4Stacked, Inner4Tabular, Holder4)
+
+INLINE_CHANGELINK_HTML = 'class="inlinechangelink">Change</a>'
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',),
@@ -311,6 +313,38 @@ class TestInline(TestCase):
count=1
)
+ def test_inlines_show_change_link_registered(self):
+ "Inlines `show_change_link` for registered models when enabled."
+ holder = Holder4.objects.create(dummy=1)
+ item1 = Inner4Stacked.objects.create(dummy=1, holder=holder)
+ item2 = Inner4Tabular.objects.create(dummy=1, holder=holder)
+ items = (
+ ('inner4stacked', item1.pk),
+ ('inner4tabular', item2.pk),
+ )
+ response = self.client.get('/admin/admin_inlines/holder4/%s/' % holder.pk)
+ self.assertTrue(response.context['inline_admin_formset'].opts.has_registered_model)
+ for model, pk in items:
+ url = '/admin/admin_inlines/%s/%s/' % (model, pk)
+ self.assertContains(response, '<a href="%s" %s' % (url, INLINE_CHANGELINK_HTML))
+
+ def test_inlines_show_change_link_unregistered(self):
+ "Inlines `show_change_link` disabled for unregistered models."
+ parent = ParentModelWithCustomPk.objects.create(my_own_pk="foo", name="Foo")
+ ChildModel1.objects.create(my_own_pk="bar", name="Bar", parent=parent)
+ ChildModel2.objects.create(my_own_pk="baz", name="Baz", parent=parent)
+ response = self.client.get('/admin/admin_inlines/parentmodelwithcustompk/foo/')
+ self.assertFalse(response.context['inline_admin_formset'].opts.has_registered_model)
+ self.assertNotContains(response, INLINE_CHANGELINK_HTML)
+
+ def test_tabular_inline_show_change_link_false_registered(self):
+ "Inlines `show_change_link` disabled by default."
+ poll = Poll.objects.create(name="New poll")
+ Question.objects.create(poll=poll)
+ response = self.client.get('/admin/admin_inlines/poll/%s/' % poll.pk)
+ self.assertTrue(response.context['inline_admin_formset'].opts.has_registered_model)
+ self.assertNotContains(response, INLINE_CHANGELINK_HTML)
+
@override_settings(PASSWORD_HASHERS=('django.contrib.auth.hashers.SHA1PasswordHasher',),
ROOT_URLCONF="admin_inlines.urls")