diff options
| author | Adam Chainz <adam@adamj.eu> | 2015-09-10 17:07:09 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-09-14 14:07:32 -0400 |
| commit | 3c2c74f58f9261feaa5ad9dfb596213a654c2e25 (patch) | |
| tree | 214f85dc22ca5f5dbb6c2be965111e6e4f38ea44 /tests | |
| parent | 69017bade0bcce0671e7d64c5a78626efa82a4ff (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.py | 6 | ||||
| -rw-r--r-- | tests/expressions/tests.py | 1 | ||||
| -rw-r--r-- | tests/test_runner/test_debug_sql.py | 24 |
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',);'''), ] |
