From c4b6659269260e0a9d75859bbe430b0971b1c15d Mon Sep 17 00:00:00 2001 From: Ramiro Morales Date: Fri, 1 Feb 2013 21:56:27 -0300 Subject: [PATCH] Added test to demonstrate issue 11263 isn't there anymore. Thanks veena for the report and jaklaassen for the patch. Fixes #11263. --- tests/modeltests/generic_relations/models.py | 4 ++++ tests/modeltests/generic_relations/tests.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/modeltests/generic_relations/models.py b/tests/modeltests/generic_relations/models.py index 2f025e660b..18d7623971 100644 --- a/tests/modeltests/generic_relations/models.py +++ b/tests/modeltests/generic_relations/models.py @@ -94,3 +94,7 @@ class GeckoManager(models.Manager): class Gecko(models.Model): has_tail = models.BooleanField() objects = GeckoManager() + +# To test fix for #11263 +class Rock(Mineral): + tags = generic.GenericRelation(TaggedItem) diff --git a/tests/modeltests/generic_relations/tests.py b/tests/modeltests/generic_relations/tests.py index 73b0a483a2..27b25185ea 100644 --- a/tests/modeltests/generic_relations/tests.py +++ b/tests/modeltests/generic_relations/tests.py @@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType from django.test import TestCase from .models import (TaggedItem, ValuableTaggedItem, Comparison, Animal, - Vegetable, Mineral, Gecko) + Vegetable, Mineral, Gecko, Rock) class GenericRelationsTests(TestCase): @@ -231,6 +231,16 @@ class GenericRelationsTests(TestCase): tag = TaggedItem.objects.create(content_object=tailless, tag="lizard") self.assertEqual(tag.content_object, tailless) + def test_subclasses_with_gen_rel(self): + """ + Test that concrete model subclasses with generic relations work + correctly (ticket 11263). + """ + granite = Rock.objects.create(name='granite', hardness=5) + TaggedItem.objects.create(content_object=granite, tag="countertop") + self.assertEqual(Rock.objects.filter(tags__tag="countertop").count(), 1) + + class CustomWidget(forms.TextInput): pass