From fdbf492946a030bdf394aae8896bbad9a446e0fd Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Mon, 19 Aug 2013 20:39:30 -0400 Subject: [PATCH] Fixed an aggregation test failure on MySQL. --- tests/aggregation/tests.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/aggregation/tests.py b/tests/aggregation/tests.py index 7d2490a77c..ce7f4e9b9d 100644 --- a/tests/aggregation/tests.py +++ b/tests/aggregation/tests.py @@ -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)