summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAdam Chainz <adam@adamj.eu>2015-09-10 17:07:09 +0100
committerTim Graham <timograham@gmail.com>2015-09-14 14:07:32 -0400
commit3c2c74f58f9261feaa5ad9dfb596213a654c2e25 (patch)
tree214f85dc22ca5f5dbb6c2be965111e6e4f38ea44 /tests
parent69017bade0bcce0671e7d64c5a78626efa82a4ff (diff)
[1.8.x] Fixed #25377 -- Changed Count queries to execute COUNT(*) instead of COUNT('*').
Backport of 3fe3887a2ed94f7b15be769f6d81571031ec5627 from master
Diffstat (limited to 'tests')
-rw-r--r--tests/aggregation/tests.py6
-rw-r--r--tests/expressions/tests.py1
-rw-r--r--tests/test_runner/test_debug_sql.py24
3 files changed, 19 insertions, 12 deletions
diff --git a/tests/aggregation/tests.py b/tests/aggregation/tests.py
index 384013ef2f..d9404ccfca 100644
--- a/tests/aggregation/tests.py
+++ b/tests/aggregation/tests.py
@@ -306,6 +306,12 @@ class BaseAggregateTestCase(TestCase):
vals = Book.objects.aggregate(Count("rating", distinct=True))
self.assertEqual(vals, {"rating__count": 4})
+ def test_count_star(self):
+ with self.assertNumQueries(1) as ctx:
+ Book.objects.aggregate(n=Count("*"))
+ sql = ctx.captured_queries[0]['sql']
+ self.assertIn('SELECT COUNT(*) ', sql)
+
def test_fkey_aggregate(self):
explicit = list(Author.objects.annotate(Count('book__id')))
implicit = list(Author.objects.annotate(Count('book')))
diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py
index 3e26be6d0b..6ba962391a 100644
--- a/tests/expressions/tests.py
+++ b/tests/expressions/tests.py
@@ -877,6 +877,7 @@ class ReprTests(TestCase):
def test_aggregates(self):
self.assertEqual(repr(Avg('a')), "Avg(F(a))")
self.assertEqual(repr(Count('a')), "Count(F(a), distinct=False)")
+ self.assertEqual(repr(Count('*')), "Count('*', distinct=False)")
self.assertEqual(repr(Max('a')), "Max(F(a))")
self.assertEqual(repr(Min('a')), "Min(F(a))")
self.assertEqual(repr(StdDev('a')), "StdDev(F(a), sample=False)")
diff --git a/tests/test_runner/test_debug_sql.py b/tests/test_runner/test_debug_sql.py
index fa7c7f7401..b943e83e31 100644
--- a/tests/test_runner/test_debug_sql.py
+++ b/tests/test_runner/test_debug_sql.py
@@ -63,25 +63,25 @@ class TestDebugSQL(unittest.TestCase):
if six.PY3:
expected_outputs = [
- ('''QUERY = 'SELECT COUNT(%s) AS "__count" '''
+ ('''QUERY = 'SELECT COUNT(*) AS "__count" '''
'''FROM "test_runner_person" WHERE '''
'''"test_runner_person"."first_name" = %s' '''
- '''- PARAMS = ('*', 'error');'''),
- ('''QUERY = 'SELECT COUNT(%s) AS "__count" '''
+ '''- PARAMS = ('error',);'''),
+ ('''QUERY = 'SELECT COUNT(*) AS "__count" '''
'''FROM "test_runner_person" WHERE '''
'''"test_runner_person"."first_name" = %s' '''
- '''- PARAMS = ('*', 'fail');'''),
+ '''- PARAMS = ('fail',);'''),
]
else:
expected_outputs = [
- ('''QUERY = u'SELECT COUNT(%s) AS "__count" '''
+ ('''QUERY = u'SELECT COUNT(*) AS "__count" '''
'''FROM "test_runner_person" WHERE '''
'''"test_runner_person"."first_name" = %s' '''
- '''- PARAMS = (u'*', u'error');'''),
- ('''QUERY = u'SELECT COUNT(%s) AS "__count" '''
+ '''- PARAMS = (u'error',);'''),
+ ('''QUERY = u'SELECT COUNT(*) AS "__count" '''
'''FROM "test_runner_person" WHERE '''
'''"test_runner_person"."first_name" = %s' '''
- '''- PARAMS = (u'*', u'fail');'''),
+ '''- PARAMS = (u'fail',);'''),
]
verbose_expected_outputs = [
@@ -94,15 +94,15 @@ class TestDebugSQL(unittest.TestCase):
]
if six.PY3:
verbose_expected_outputs += [
- ('''QUERY = 'SELECT COUNT(%s) AS "__count" '''
+ ('''QUERY = 'SELECT COUNT(*) AS "__count" '''
'''FROM "test_runner_person" WHERE '''
'''"test_runner_person"."first_name" = %s' '''
- '''- PARAMS = ('*', 'pass');'''),
+ '''- PARAMS = ('pass',);'''),
]
else:
verbose_expected_outputs += [
- ('''QUERY = u'SELECT COUNT(%s) AS "__count" '''
+ ('''QUERY = u'SELECT COUNT(*) AS "__count" '''
'''FROM "test_runner_person" WHERE '''
'''"test_runner_person"."first_name" = %s' '''
- '''- PARAMS = (u'*', u'pass');'''),
+ '''- PARAMS = (u'pass',);'''),
]