summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2014-08-19 18:11:10 +0200
committerClaude Paroz <claude@2xlibre.net>2014-08-23 15:41:13 +0200
commit46c7707e50400e237cbd774a31ad801669ca3905 (patch)
tree4424681ddeb55470d6962a1fa4ecc323bb8d2e6c
parentc7fa27d702fc3988feae57f663779b31bfe8f340 (diff)
Replaced HAS_SPATIALREFSYS by a database feature
-rw-r--r--django/contrib/gis/db/backends/base.py1
-rw-r--r--django/contrib/gis/db/backends/mysql/base.py2
-rw-r--r--django/contrib/gis/tests/test_spatialrefsys.py13
-rw-r--r--django/contrib/gis/tests/utils.py2
-rw-r--r--django/test/testcases.py4
5 files changed, 9 insertions, 13 deletions
diff --git a/django/contrib/gis/db/backends/base.py b/django/contrib/gis/db/backends/base.py
index 663179e6e6..e281ba073e 100644
--- a/django/contrib/gis/db/backends/base.py
+++ b/django/contrib/gis/db/backends/base.py
@@ -11,6 +11,7 @@ from django.utils.encoding import python_2_unicode_compatible
class BaseSpatialFeatures(object):
gis_enabled = True
+ has_spatialrefsys_table = True
class BaseSpatialOperations(object):
diff --git a/django/contrib/gis/db/backends/mysql/base.py b/django/contrib/gis/db/backends/mysql/base.py
index 38632f1401..077a8a1dc1 100644
--- a/django/contrib/gis/db/backends/mysql/base.py
+++ b/django/contrib/gis/db/backends/mysql/base.py
@@ -9,7 +9,7 @@ from django.contrib.gis.db.backends.mysql.operations import MySQLOperations
class DatabaseFeatures(BaseSpatialFeatures, MySQLDatabaseFeatures):
- pass
+ has_spatialrefsys_table = False
class DatabaseWrapper(MySQLDatabaseWrapper):
diff --git a/django/contrib/gis/tests/test_spatialrefsys.py b/django/contrib/gis/tests/test_spatialrefsys.py
index 968942ec07..1209e940f0 100644
--- a/django/contrib/gis/tests/test_spatialrefsys.py
+++ b/django/contrib/gis/tests/test_spatialrefsys.py
@@ -1,9 +1,10 @@
import unittest
from django.contrib.gis.gdal import HAS_GDAL
-from django.contrib.gis.tests.utils import (no_mysql, oracle, postgis,
- spatialite, HAS_SPATIALREFSYS, SpatialRefSys)
+from django.contrib.gis.tests.utils import (oracle, postgis, spatialite,
+ SpatialRefSys)
from django.db import connection
+from django.test import skipUnlessDBFeature
from django.utils import six
@@ -34,11 +35,10 @@ test_srs = ({'srid': 4326,
)
-@unittest.skipUnless(HAS_GDAL and HAS_SPATIALREFSYS,
- "SpatialRefSysTest needs gdal support and a spatial database")
+@unittest.skipUnless(HAS_GDAL, "SpatialRefSysTest needs gdal support")
+@skipUnlessDBFeature("has_spatialrefsys_table")
class SpatialRefSysTest(unittest.TestCase):
- @no_mysql
def test_retrieve(self):
"""
Test retrieval of SpatialRefSys model objects.
@@ -61,7 +61,6 @@ class SpatialRefSysTest(unittest.TestCase):
self.assertTrue(srs.wkt.startswith(sd['srtext']))
six.assertRegex(self, srs.proj4text, sd['proj4_re'])
- @no_mysql
def test_osr(self):
"""
Test getting OSR objects from SpatialRefSys model objects.
@@ -85,7 +84,6 @@ class SpatialRefSysTest(unittest.TestCase):
if not spatialite or connection.ops.spatial_version[0] >= 4:
self.assertTrue(srs.wkt.startswith(sd['srtext']))
- @no_mysql
def test_ellipsoid(self):
"""
Test the ellipsoid property.
@@ -102,7 +100,6 @@ class SpatialRefSysTest(unittest.TestCase):
for i in range(3):
self.assertAlmostEqual(ellps1[i], ellps2[i], prec[i])
- @no_mysql
def test_add_entry(self):
"""
Test adding a new entry in the SpatialRefSys model using the
diff --git a/django/contrib/gis/tests/utils.py b/django/contrib/gis/tests/utils.py
index 72dd669872..29e17e7113 100644
--- a/django/contrib/gis/tests/utils.py
+++ b/django/contrib/gis/tests/utils.py
@@ -39,7 +39,6 @@ postgis = _default_db == 'postgis'
mysql = _default_db == 'mysql'
spatialite = _default_db == 'spatialite'
-HAS_SPATIALREFSYS = True
if oracle and 'gis' in settings.DATABASES[DEFAULT_DB_ALIAS]['ENGINE']:
from django.contrib.gis.db.backends.oracle.models import OracleSpatialRefSys as SpatialRefSys
elif postgis:
@@ -47,5 +46,4 @@ elif postgis:
elif spatialite:
from django.contrib.gis.db.backends.spatialite.models import SpatialiteSpatialRefSys as SpatialRefSys
else:
- HAS_SPATIALREFSYS = False
SpatialRefSys = None
diff --git a/django/test/testcases.py b/django/test/testcases.py
index e982706784..260d7c8af7 100644
--- a/django/test/testcases.py
+++ b/django/test/testcases.py
@@ -980,7 +980,7 @@ def skipIfDBFeature(feature):
"""
Skip a test if a database has the named feature
"""
- return _deferredSkip(lambda: getattr(connection.features, feature),
+ return _deferredSkip(lambda: getattr(connection.features, feature, False),
"Database has feature %s" % feature)
@@ -988,7 +988,7 @@ def skipUnlessDBFeature(feature):
"""
Skip a test unless a database has the named feature
"""
- return _deferredSkip(lambda: not getattr(connection.features, feature),
+ return _deferredSkip(lambda: not getattr(connection.features, feature, False),
"Database doesn't support feature %s" % feature)