summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnssi Kääriäinen <akaariai@gmail.com>2013-08-19 14:07:51 +0300
committerAnssi Kääriäinen <akaariai@gmail.com>2013-08-19 14:10:03 +0300
commit630b9df42f771e90d9beb1766d4e7aa2107bd82d (patch)
treecc616f722b8d7abc183e33104346c529eeefc19e
parent3844089edc43ff29aab5bac82a0eecab23d8d14a (diff)
Fixed #12567 -- Incorrect SQL in model inheritance case
An isnull lookup produced incorrect SQL. This was already fixed earlier, so only tests added.
-rw-r--r--tests/model_inheritance/tests.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/model_inheritance/tests.py b/tests/model_inheritance/tests.py
index 0ba6a15e5d..a2013a6b68 100644
--- a/tests/model_inheritance/tests.py
+++ b/tests/model_inheritance/tests.py
@@ -323,3 +323,27 @@ class ModelInheritanceTests(TestCase):
# Equality doesn't transfer in multitable inheritance.
self.assertNotEqual(Place(id=1), Restaurant(id=1))
self.assertNotEqual(Restaurant(id=1), Place(id=1))
+
+ def test_ticket_12567(self):
+ r = Restaurant.objects.create(name='n1', address='a1')
+ s = Supplier.objects.create(name='s1', address='a2')
+ self.assertQuerysetEqual(
+ Place.objects.filter(supplier__isnull=False),
+ [Place.objects.get(pk=s.pk)],
+ lambda x: x
+ )
+ self.assertQuerysetEqual(
+ Place.objects.filter(supplier__isnull=True),
+ [Place.objects.get(pk=r.pk)],
+ lambda x: x
+ )
+ self.assertQuerysetEqual(
+ Place.objects.exclude(supplier__isnull=False),
+ [Place.objects.get(pk=r.pk)],
+ lambda x: x
+ )
+ self.assertQuerysetEqual(
+ Place.objects.exclude(supplier__isnull=True),
+ [Place.objects.get(pk=s.pk)],
+ lambda x: x
+ )