summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorsarthakmeh <sarthakmeh03@gmail.com>2015-08-28 01:43:24 +0530
committerTim Graham <timograham@gmail.com>2015-09-03 10:08:51 -0400
commit40bf18e70282784c7923a89c0700a83118b81a50 (patch)
tree2c73860b68cf621d70dbba4a13683e0fbae1f2fb /tests/admin_views
parent12083c5d47a8db1193e401fca1520da5d4a31668 (diff)
Fixed #25058 -- Added GenericRelations with related_query_name to the admin's delete confirmation page.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/admin.py7
-rw-r--r--tests/admin_views/models.py9
-rw-r--r--tests/admin_views/tests.py43
3 files changed, 41 insertions, 18 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index b13bd32115..c3cedf8444 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -24,9 +24,9 @@ from django.utils.six import StringIO
from .models import (
Actor, AdminOrderedAdminMethod, AdminOrderedCallable, AdminOrderedField,
AdminOrderedModelMethod, Album, Answer, Article, BarAccount, Book,
- Category, Chapter, ChapterXtra1, Child, ChildOfReferer, Choice, City,
- Collector, Color, Color2, ComplexSortedPerson, CoverLetter, CustomArticle,
- CyclicOne, CyclicTwo, DependentChild, DooHickey, EmptyModel,
+ Bookmark, Category, Chapter, ChapterXtra1, Child, ChildOfReferer, Choice,
+ City, Collector, Color, Color2, ComplexSortedPerson, CoverLetter,
+ CustomArticle, CyclicOne, CyclicTwo, DependentChild, DooHickey, EmptyModel,
EmptyModelHidden, EmptyModelMixin, EmptyModelVisible, ExplicitlyProvidedPK,
ExternalSubscriber, Fabric, FancyDoodad, FieldOverridePost,
FilteredManager, FooAccount, FoodDelivery, FunkyTag, Gadget, Gallery,
@@ -912,6 +912,7 @@ site.register(Villain)
site.register(SuperVillain)
site.register(Plot)
site.register(PlotDetails)
+site.register(Bookmark)
site.register(CyclicOne)
site.register(CyclicTwo)
site.register(WorkHour, WorkHourAdmin)
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index fd1b8b33a3..1199da3973 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -557,6 +557,15 @@ class SuperSecretHideout(models.Model):
@python_2_unicode_compatible
+class Bookmark(models.Model):
+ name = models.CharField(max_length=60)
+ tag = GenericRelation(FunkyTag, related_query_name='bookmark')
+
+ def __str__(self):
+ return self.name
+
+
+@python_2_unicode_compatible
class CyclicOne(models.Model):
name = models.CharField(max_length=25)
two = models.ForeignKey('CyclicTwo', models.CASCADE)
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 79db4a3712..f10075d49f 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -43,21 +43,21 @@ from . import customadmin
from .admin import CityAdmin, site, site2
from .models import (
Actor, AdminOrderedAdminMethod, AdminOrderedCallable, AdminOrderedField,
- AdminOrderedModelMethod, Answer, Article, BarAccount, Book, Category,
- Chapter, ChapterXtra1, ChapterXtra2, Character, Child, Choice, City,
- Collector, Color, Color2, ComplexSortedPerson, CoverLetter, CustomArticle,
- CyclicOne, CyclicTwo, DooHickey, Employee, EmptyModel, ExternalSubscriber,
- Fabric, FancyDoodad, FieldOverridePost, FilteredManager, FooAccount,
- FoodDelivery, FunkyTag, Gallery, Grommet, Inquisition, Language,
- MainPrepopulated, ModelWithStringPrimaryKey, OtherStory, Paper, Parent,
- ParentWithDependentChildren, Person, Persona, Picture, Pizza, Plot,
- PlotDetails, PluggableSearchPerson, Podcast, Post, PrePopulatedPost, Promo,
- Question, Recommendation, Recommender, RelatedPrepopulated, Report,
- Restaurant, RowLevelChangePermissionModel, SecretHideout, Section,
- ShortMessage, Simple, State, Story, Subscriber, SuperSecretHideout,
- SuperVillain, Telegram, TitleTranslation, Topping, UnchangeableObject,
- UndeletableObject, UnorderedObject, Villain, Vodcast, Whatsit, Widget,
- Worker, WorkHour,
+ AdminOrderedModelMethod, Answer, Article, BarAccount, Book, Bookmark,
+ Category, Chapter, ChapterXtra1, ChapterXtra2, Character, Child, Choice,
+ City, Collector, Color, Color2, ComplexSortedPerson, CoverLetter,
+ CustomArticle, CyclicOne, CyclicTwo, DooHickey, Employee, EmptyModel,
+ ExternalSubscriber, Fabric, FancyDoodad, FieldOverridePost,
+ FilteredManager, FooAccount, FoodDelivery, FunkyTag, Gallery, Grommet,
+ Inquisition, Language, MainPrepopulated, ModelWithStringPrimaryKey,
+ OtherStory, Paper, Parent, ParentWithDependentChildren, Person, Persona,
+ Picture, Pizza, Plot, PlotDetails, PluggableSearchPerson, Podcast, Post,
+ PrePopulatedPost, Promo, Question, Recommendation, Recommender,
+ RelatedPrepopulated, Report, Restaurant, RowLevelChangePermissionModel,
+ SecretHideout, Section, ShortMessage, Simple, State, Story, Subscriber,
+ SuperSecretHideout, SuperVillain, Telegram, TitleTranslation, Topping,
+ UnchangeableObject, UndeletableObject, UnorderedObject, Villain, Vodcast,
+ Whatsit, Widget, Worker, WorkHour,
)
@@ -2232,6 +2232,19 @@ class AdminViewDeletedObjectsTest(TestCase):
response = self.client.get(reverse('admin:admin_views_plot_delete', args=(plot.pk,)))
self.assertContains(response, should_contain)
+ def test_generic_relations_with_related_query_name(self):
+ """
+ If a deleted object has GenericForeignKey with
+ GenericRelation(related_query_name='...') pointing to it, those objects
+ should be listed for deletion.
+ """
+ bookmark = Bookmark.objects.create(name='djangoproject')
+ tag = FunkyTag.objects.create(content_object=bookmark, name='django')
+ tag_url = reverse('admin:admin_views_funkytag_change', args=(tag.id,))
+ should_contain = '<li>Funky tag: <a href="%s">django' % tag_url
+ response = self.client.get(reverse('admin:admin_views_bookmark_delete', args=(bookmark.pk,)))
+ self.assertContains(response, should_contain)
+
@override_settings(PASSWORD_HASHERS=['django.contrib.auth.hashers.SHA1PasswordHasher'],
ROOT_URLCONF="admin_views.urls")