Commit 630b9df4 authored by Anssi Kääriäinen's avatar Anssi Kääriäinen
Browse files

Fixed #12567 -- Incorrect SQL in model inheritance case

An isnull lookup produced incorrect SQL. This was already fixed
earlier, so only tests added.
parent 3844089e
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -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
        )