Commit 46c7707e authored by Claude Paroz's avatar Claude Paroz
Browse files

Replaced HAS_SPATIALREFSYS by a database feature

parent c7fa27d7
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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):
+1 −1
Original line number Diff line number Diff line
@@ -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):
+5 −8
Original line number Diff line number Diff line
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
+0 −2
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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)