mirror of
https://github.com/django/django.git
synced 2025-07-24 13:44:32 +00:00
Fixed #28399 -- Fixed QuerySet.count() for union(), difference(), and intersection() queries.
This commit is contained in:
parent
9290f15bb5
commit
adab280cef
5 changed files with 39 additions and 11 deletions
|
@ -89,6 +89,27 @@ class QuerySetSetOperationTests(TestCase):
|
|||
qs2 = Number.objects.filter(num__gte=2, num__lte=3)
|
||||
self.assertNumbersEqual(qs1.union(qs2).order_by('-num'), [3, 2, 1, 0])
|
||||
|
||||
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')
|
||||
self.assertEqual(qs1.union(qs2).count(), 4)
|
||||
|
||||
def test_count_union_empty_result(self):
|
||||
qs = Number.objects.filter(pk__in=[])
|
||||
self.assertEqual(qs.union(qs).count(), 0)
|
||||
|
||||
@skipUnlessDBFeature('supports_select_difference')
|
||||
def test_count_difference(self):
|
||||
qs1 = Number.objects.filter(num__lt=10)
|
||||
qs2 = Number.objects.filter(num__lt=9)
|
||||
self.assertEqual(qs1.difference(qs2).count(), 1)
|
||||
|
||||
@skipUnlessDBFeature('supports_select_intersection')
|
||||
def test_count_intersection(self):
|
||||
qs1 = Number.objects.filter(num__gte=5)
|
||||
qs2 = Number.objects.filter(num__lte=5)
|
||||
self.assertEqual(qs1.intersection(qs2).count(), 1)
|
||||
|
||||
@skipUnlessDBFeature('supports_slicing_ordering_in_compound')
|
||||
def test_ordering_subqueries(self):
|
||||
qs1 = Number.objects.order_by('num')[:2]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue