Commit 80e68ee2 authored by Anssi Kääriäinen's avatar Anssi Kääriäinen
Browse files

Added tests for already fixed #20101

The ticket dealt with a case where one query had .exclude() that
produced a subquery, the other query had a join to the same model that
was subqueried in the first query. This was already fixed in master, so
only test added.
parent a9ee0e29
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -2808,3 +2808,19 @@ class RelabelCloneTest(TestCase):
        # not change results for the parents query.
        self.assertEqual(list(children), [my2])
        self.assertEqual(list(parents), [my1])

class Ticket20101Tests(TestCase):
    def test_ticket_20101(self):
        """
        Tests QuerySet ORed combining in exclude subquery case.
        """
        t = Tag.objects.create(name='foo')
        a1 = Annotation.objects.create(tag=t, name='a1')
        a2 = Annotation.objects.create(tag=t, name='a2')
        a3 = Annotation.objects.create(tag=t, name='a3')
        n = Note.objects.create(note='foo', misc='bar')
        qs1 = Note.objects.exclude(annotation__in=[a1, a2])
        qs2 = Note.objects.filter(annotation__in=[a3])
        self.assertTrue(n in qs1)
        self.assertFalse(n in qs2)
        self.assertTrue(n in (qs1 | qs2))