diff --git a/tests/gis_tests/test_spatialrefsys.py b/tests/gis_tests/test_spatialrefsys.py index e4638baa31..bd24aaed00 100644 --- a/tests/gis_tests/test_spatialrefsys.py +++ b/tests/gis_tests/test_spatialrefsys.py @@ -1,8 +1,10 @@ import re +from django.db import connection from django.test import TestCase, skipUnlessDBFeature +from django.utils.functional import cached_property -from .utils import SpatialRefSys, oracle, postgis, spatialite +from .utils import oracle, postgis, spatialite test_srs = ({ 'srid': 4326, @@ -51,9 +53,13 @@ test_srs = ({ @skipUnlessDBFeature("has_spatialrefsys_table") class SpatialRefSysTest(TestCase): + @cached_property + def SpatialRefSys(self): + return connection.ops.connection.ops.spatial_ref_sys() + def test_get_units(self): epsg_4326 = next(f for f in test_srs if f['srid'] == 4326) - unit, unit_name = SpatialRefSys().get_units(epsg_4326['wkt']) + unit, unit_name = self.SpatialRefSys().get_units(epsg_4326['wkt']) self.assertEqual(unit_name, 'degree') self.assertAlmostEqual(unit, 0.01745329251994328) @@ -62,7 +68,7 @@ class SpatialRefSysTest(TestCase): Test retrieval of SpatialRefSys model objects. """ for sd in test_srs: - srs = SpatialRefSys.objects.get(srid=sd['srid']) + srs = self.SpatialRefSys.objects.get(srid=sd['srid']) self.assertEqual(sd['srid'], srs.srid) # Some of the authority names are borked on Oracle, e.g., SRID=32140. @@ -84,7 +90,7 @@ class SpatialRefSysTest(TestCase): Test getting OSR objects from SpatialRefSys model objects. """ for sd in test_srs: - sr = SpatialRefSys.objects.get(srid=sd['srid']) + sr = self.SpatialRefSys.objects.get(srid=sd['srid']) self.assertTrue(sr.spheroid.startswith(sd['spheroid'])) self.assertEqual(sd['geographic'], sr.geographic) self.assertEqual(sd['projected'], sr.projected) @@ -110,7 +116,7 @@ class SpatialRefSysTest(TestCase): prec = sd['eprec'] # Getting our spatial reference and its ellipsoid - srs = SpatialRefSys.objects.get(srid=sd['srid']) + srs = self.SpatialRefSys.objects.get(srid=sd['srid']) ellps2 = srs.ellipsoid for i in range(3): @@ -126,9 +132,9 @@ class SpatialRefSysTest(TestCase): add_srs_entry(3857) self.assertTrue( - SpatialRefSys.objects.filter(srid=3857).exists() + self.SpatialRefSys.objects.filter(srid=3857).exists() ) - srs = SpatialRefSys.objects.get(srid=3857) + srs = self.SpatialRefSys.objects.get(srid=3857) self.assertTrue( - SpatialRefSys.get_spheroid(srs.wkt).startswith('SPHEROID[') + self.SpatialRefSys.get_spheroid(srs.wkt).startswith('SPHEROID[') ) diff --git a/tests/gis_tests/utils.py b/tests/gis_tests/utils.py index 857a608f48..7eb61701f8 100644 --- a/tests/gis_tests/utils.py +++ b/tests/gis_tests/utils.py @@ -52,21 +52,6 @@ spatialite = _default_db == 'spatialite' # MySQL spatial indices can't handle NULL geometries. gisfield_may_be_null = not mysql -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: - from django.contrib.gis.db.backends.postgis.models import ( - PostGISSpatialRefSys as SpatialRefSys, - ) -elif spatialite: - from django.contrib.gis.db.backends.spatialite.models import ( - SpatialiteSpatialRefSys as SpatialRefSys, - ) -else: - SpatialRefSys = None - class FuncTestMixin: """Assert that Func expressions aren't mutated during their as_sql()."""