From 346b46a274aa8f945aec7d63ea962b41c2c32e40 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Mon, 10 Jul 2017 19:45:09 +0200 Subject: [1.11.x] 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. Backport of ca74e563500e291480f1976b58fcd34aac768dca from master --- tests/queries/test_qs_combinators.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests') diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py index 235eb4f15d..2374bb2868 100644 --- a/tests/queries/test_qs_combinators.py +++ b/tests/queries/test_qs_combinators.py @@ -61,18 +61,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_union_bad_kwarg(self): qs1 = Number.objects.all() -- cgit v1.3