summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/queries/test_qs_combinators.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/queries/test_qs_combinators.py b/tests/queries/test_qs_combinators.py
index 445e862adc..3cd19d5f31 100644
--- a/tests/queries/test_qs_combinators.py
+++ b/tests/queries/test_qs_combinators.py
@@ -321,6 +321,28 @@ class QuerySetSetOperationTests(TestCase):
# Combined queries don't mutate.
self.assertCountEqual(qs, ["a1", "a2"])
+ @skipUnlessDBFeature("supports_slicing_ordering_in_compound")
+ def test_union_in_with_ordering(self):
+ qs1 = Number.objects.filter(num__gt=7).order_by("num")
+ qs2 = Number.objects.filter(num__lt=2).order_by("num")
+ self.assertNumbersEqual(
+ Number.objects.exclude(id__in=qs1.union(qs2).values("id")),
+ [2, 3, 4, 5, 6, 7],
+ ordered=False,
+ )
+
+ @skipUnlessDBFeature(
+ "supports_slicing_ordering_in_compound", "allow_sliced_subqueries_with_in"
+ )
+ def test_union_in_with_ordering_and_slice(self):
+ qs1 = Number.objects.filter(num__gt=7).order_by("num")[:1]
+ qs2 = Number.objects.filter(num__lt=2).order_by("-num")[:1]
+ self.assertNumbersEqual(
+ Number.objects.exclude(id__in=qs1.union(qs2).values("id")),
+ [0, 2, 3, 4, 5, 6, 7, 9],
+ ordered=False,
+ )
+
def test_count_union(self):
qs1 = Number.objects.filter(num__lte=1).values("num")
qs2 = Number.objects.filter(num__gte=2, num__lte=3).values("num")