Prechádzať zdrojové kódy

Removed hardcoded paths to SpatialRefSys models in tests.

Tim Graham 4 rokov pred
rodič
commit
71ae1ab012

+ 14 - 8
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[')
         )

+ 0 - 15
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()."""