Fixed an aggregation test failure on MySQL.

This commit is contained in:
Simon Charette 2013-08-19 20:39:30 -04:00
parent ac0e41e2c4
commit fdbf492946
1 changed files with 11 additions and 1 deletions

View File

@ -2,6 +2,7 @@ from __future__ import unicode_literals
import datetime
from decimal import Decimal
import re
from django.db import connection
from django.db.models import Avg, Sum, Count, Max, Min
@ -640,5 +641,14 @@ class BaseAggregateTestCase(TestCase):
self.assertEqual(len(captured_queries), 1)
qstr = captured_queries[0]['sql'].lower()
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)