mirror of
https://github.com/django/django.git
synced 2025-09-26 12:09:19 +00:00
Fixed #28378 -- Fixed union() and difference() when combining with a queryset raising EmptyResultSet.
Thanks Jon Dufresne for the report. Thanks Tim Graham and Simon Charette for the reviews.
This commit is contained in:
parent
9bca0d0b38
commit
ca74e56350
3 changed files with 29 additions and 10 deletions
|
@ -58,18 +58,26 @@ class QuerySetSetOperationTests(TestCase):
|
|||
def test_difference_with_empty_qs(self):
|
||||
qs1 = Number.objects.all()
|
||||
qs2 = Number.objects.none()
|
||||
qs3 = Number.objects.filter(pk__in=[])
|
||||
self.assertEqual(len(qs1.difference(qs2)), 10)
|
||||
self.assertEqual(len(qs1.difference(qs3)), 10)
|
||||
self.assertEqual(len(qs2.difference(qs1)), 0)
|
||||
self.assertEqual(len(qs3.difference(qs1)), 0)
|
||||
self.assertEqual(len(qs2.difference(qs2)), 0)
|
||||
self.assertEqual(len(qs3.difference(qs3)), 0)
|
||||
|
||||
def test_union_with_empty_qs(self):
|
||||
qs1 = Number.objects.all()
|
||||
qs2 = Number.objects.none()
|
||||
qs3 = Number.objects.filter(pk__in=[])
|
||||
self.assertEqual(len(qs1.union(qs2)), 10)
|
||||
self.assertEqual(len(qs2.union(qs1)), 10)
|
||||
self.assertEqual(len(qs1.union(qs3)), 10)
|
||||
self.assertEqual(len(qs3.union(qs1)), 10)
|
||||
self.assertEqual(len(qs2.union(qs1, qs1, qs1)), 10)
|
||||
self.assertEqual(len(qs2.union(qs1, qs1, all=True)), 20)
|
||||
self.assertEqual(len(qs2.union(qs2)), 0)
|
||||
self.assertEqual(len(qs3.union(qs3)), 0)
|
||||
|
||||
def test_limits(self):
|
||||
qs1 = Number.objects.all()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue