Loading tests/queries/tests.py +16 −0 Original line number Diff line number Diff line Loading @@ -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)) Loading
tests/queries/tests.py +16 −0 Original line number Diff line number Diff line Loading @@ -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))