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.
This commit is contained in:
parent
a9ee0e2970
commit
80e68ee2ff
|
@ -2808,3 +2808,19 @@ class RelabelCloneTest(TestCase):
|
||||||
# not change results for the parents query.
|
# not change results for the parents query.
|
||||||
self.assertEqual(list(children), [my2])
|
self.assertEqual(list(children), [my2])
|
||||||
self.assertEqual(list(parents), [my1])
|
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…
Reference in New Issue