summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2009-05-10 09:22:53 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2009-05-10 09:22:53 +0000
commit8c2db4ab0f87643765b6bffac7c524f5e2e54d65 (patch)
tree66cb0eeaad734f7b2add43a292fb3ceddce40a45 /tests/regressiontests
parentb97178f7ec311da7c885a122a2ccc1036bacf0d3 (diff)
Fixed #10906 -- Added a check for PostgreSQL pre 8.2 when using StdDev/Variance aggregates. Thanks to Richard Davies for the report and patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10731 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/aggregation_regress/models.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/tests/regressiontests/aggregation_regress/models.py b/tests/regressiontests/aggregation_regress/models.py
index 2a23b922b4..4476b86d64 100644
--- a/tests/regressiontests/aggregation_regress/models.py
+++ b/tests/regressiontests/aggregation_regress/models.py
@@ -1,7 +1,7 @@
# coding: utf-8
import pickle
-from django.db import models
+from django.db import connection, models
from django.conf import settings
try:
@@ -321,10 +321,26 @@ FieldError: Cannot compute Avg('mean_age'): 'mean_age' is an aggregate
"""
}
-if settings.DATABASE_ENGINE != 'sqlite3':
- __test__['API_TESTS'] += """
-# Stddev and Variance are not guaranteed to be available for SQLite.
+def run_stddev_tests():
+ """Check to see if StdDev/Variance tests should be run.
+
+ Stddev and Variance are not guaranteed to be available for SQLite, and
+ are not available for PostgreSQL before 8.2.
+ """
+ if settings.DATABASE_ENGINE == 'sqlite3':
+ return False
+
+ class StdDevPop(object):
+ sql_function = 'STDDEV_POP'
+ try:
+ connection.ops.check_aggregate_support(StdDevPop())
+ except:
+ return False
+ return True
+
+if run_stddev_tests():
+ __test__['API_TESTS'] += """
>>> Book.objects.aggregate(StdDev('pages'))
{'pages__stddev': 311.46...}