From 24c1605aa0bf88b78c261210698d0ae75756cac0 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 7 Nov 2015 15:11:44 +0100 Subject: [PATCH] Fixed GIS test failures when GDAL is not installed Thanks Iacopo Spalletti for the report and testing. --- django/contrib/gis/geos/geometry.py | 6 +++--- tests/gis_tests/geos_tests/test_geos.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/django/contrib/gis/geos/geometry.py b/django/contrib/gis/geos/geometry.py index 3da1eb6ca2..82fc02667a 100644 --- a/django/contrib/gis/geos/geometry.py +++ b/django/contrib/gis/geos/geometry.py @@ -493,6 +493,9 @@ class GEOSGeometry(GEOSBase, ListMixin): else: return + if not gdal.HAS_GDAL: + raise GEOSException("GDAL library is not available to transform() geometry.") + if isinstance(ct, gdal.CoordTransform): # We don't care about SRID because CoordTransform presupposes # source SRS. @@ -500,9 +503,6 @@ class GEOSGeometry(GEOSBase, ListMixin): elif srid is None or srid < 0: raise GEOSException("Calling transform() with no SRID set is not supported") - if not gdal.HAS_GDAL: - raise GEOSException("GDAL library is not available to transform() geometry.") - # Creating an OGR Geometry, which is then transformed. g = gdal.OGRGeometry(self.wkb, srid) g.transform(ct) diff --git a/tests/gis_tests/geos_tests/test_geos.py b/tests/gis_tests/geos_tests/test_geos.py index 5ad884da62..b0f3a80ac4 100644 --- a/tests/gis_tests/geos_tests/test_geos.py +++ b/tests/gis_tests/geos_tests/test_geos.py @@ -989,6 +989,7 @@ class GEOSTest(unittest.TestCase, TestDataMixin): self.assertEqual(g1.srid, 4326) self.assertIsNot(g1, g, "Clone didn't happen") + @skipUnless(HAS_GDAL, "GDAL is required.") def test_transform_nosrid(self): """ Testing `transform` method (no SRID or negative SRID) """