diff options
| author | Anssi Kääriäinen <akaariai@gmail.com> | 2013-08-19 14:07:51 +0300 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2013-08-19 14:10:03 +0300 |
| commit | 630b9df42f771e90d9beb1766d4e7aa2107bd82d (patch) | |
| tree | cc616f722b8d7abc183e33104346c529eeefc19e | |
| parent | 3844089edc43ff29aab5bac82a0eecab23d8d14a (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.py | 24 |
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 + ) |
