Fixed an aggregation test failure on MySQL.

This commit is contained in:
Simon Charette 2013-08-19 20:39:30 -04:00 committed by Andrew Godwin
parent eadecf0cdb
commit 77478d84ad
1 changed files with 11 additions and 1 deletions

View File

@ -2,6 +2,7 @@ from __future__ import unicode_literals
import datetime import datetime
from decimal import Decimal from decimal import Decimal
import re
from django.db import connection from django.db import connection
from django.db.models import Avg, Sum, Count, Max, Min from django.db.models import Avg, Sum, Count, Max, Min
@ -640,5 +641,14 @@ class BaseAggregateTestCase(TestCase):
self.assertEqual(len(captured_queries), 1) self.assertEqual(len(captured_queries), 1)
qstr = captured_queries[0]['sql'].lower() qstr = captured_queries[0]['sql'].lower()
self.assertNotIn('for update', qstr) self.assertNotIn('for update', qstr)
self.assertNotIn('order by', qstr) forced_ordering = connection.ops.force_no_ordering()
if forced_ordering:
# If the backend needs to force an ordering we make sure it's
# the only "ORDER BY" clause present in the query.
self.assertEqual(
re.findall(r'order by (\w+)', qstr),
[', '.join(forced_ordering).lower()]
)
else:
self.assertNotIn('order by', qstr)
self.assertEqual(qstr.count(' join '), 0) self.assertEqual(qstr.count(' join '), 0)