Made GDAL proj test less fragile

The WGS84 proj string can differ depending on installed libs.
Refs #26592.
This commit is contained in:
Claude Paroz 2016-05-07 19:43:28 +02:00
parent dbd99de6fa
commit 72ff70fba5
1 changed files with 13 additions and 12 deletions

View File

@ -13,6 +13,8 @@ class TestSRS:
for key, value in kwargs.items(): for key, value in kwargs.items():
setattr(self, key, value) setattr(self, key, value)
WGS84_proj = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs '
# Some Spatial Reference examples # Some Spatial Reference examples
srlist = ( srlist = (
TestSRS( TestSRS(
@ -20,7 +22,6 @@ srlist = (
'AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],' 'AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],'
'PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",' 'PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",'
'0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]', '0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',
proj='+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs ',
epsg=4326, projected=False, geographic=True, local=False, epsg=4326, projected=False, geographic=True, local=False,
lin_name='unknown', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199, lin_name='unknown', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199,
auth={'GEOGCS': ('EPSG', '4326'), 'spheroid': ('EPSG', '7030')}, auth={'GEOGCS': ('EPSG', '4326'), 'spheroid': ('EPSG', '7030')},
@ -38,7 +39,7 @@ srlist = (
'PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],' 'PARAMETER["central_meridian",-99],PARAMETER["false_easting",600000],'
'PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],' 'PARAMETER["false_northing",4000000],UNIT["metre",1,AUTHORITY["EPSG","9001"]],'
'AUTHORITY["EPSG","32140"]]', 'AUTHORITY["EPSG","32140"]]',
proj=None, epsg=32140, projected=True, geographic=False, local=False, epsg=32140, projected=True, geographic=False, local=False,
lin_name='metre', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199, lin_name='metre', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199,
auth={'PROJCS': ('EPSG', '32140'), 'spheroid': ('EPSG', '7019'), 'unit': ('EPSG', '9001')}, auth={'PROJCS': ('EPSG', '32140'), 'spheroid': ('EPSG', '7019'), 'unit': ('EPSG', '9001')},
attr=( attr=(
@ -56,7 +57,7 @@ srlist = (
'PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],' 'PARAMETER["Central_Meridian",-99.0],PARAMETER["Standard_Parallel_1",28.38333333333333],'
'PARAMETER["Standard_Parallel_2",30.28333333333334],PARAMETER["Latitude_Of_Origin",27.83333333333333],' 'PARAMETER["Standard_Parallel_2",30.28333333333334],PARAMETER["Latitude_Of_Origin",27.83333333333333],'
'UNIT["Foot_US",0.3048006096012192]]', 'UNIT["Foot_US",0.3048006096012192]]',
proj=None, epsg=None, projected=True, geographic=False, local=False, epsg=None, projected=True, geographic=False, local=False,
lin_name='Foot_US', ang_name='Degree', lin_units=0.3048006096012192, ang_units=0.0174532925199, lin_name='Foot_US', ang_name='Degree', lin_units=0.3048006096012192, ang_units=0.0174532925199,
auth={'PROJCS': (None, None)}, auth={'PROJCS': (None, None)},
attr=(('PROJCS|GeOgCs|spheroid', 'GRS_1980'), (('projcs', 9), 'UNIT'), (('projcs', 11), None),), attr=(('PROJCS|GeOgCs|spheroid', 'GRS_1980'), (('projcs', 9), 'UNIT'), (('projcs', 11), None),),
@ -64,7 +65,7 @@ srlist = (
# This is really ESRI format, not WKT -- but the import should work the same # This is really ESRI format, not WKT -- but the import should work the same
TestSRS( TestSRS(
'LOCAL_CS["Non-Earth (Meter)",LOCAL_DATUM["Local Datum",0],UNIT["Meter",1.0],AXIS["X",EAST],AXIS["Y",NORTH]]', 'LOCAL_CS["Non-Earth (Meter)",LOCAL_DATUM["Local Datum",0],UNIT["Meter",1.0],AXIS["X",EAST],AXIS["Y",NORTH]]',
esri=True, proj=None, epsg=None, projected=False, geographic=False, local=True, esri=True, epsg=None, projected=False, geographic=False, local=True,
lin_name='Meter', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199, lin_name='Meter', ang_name='degree', lin_units=1.0, ang_units=0.0174532925199,
attr=(('LOCAL_DATUM', 'Local Datum'), ('unit', 'Meter')), attr=(('LOCAL_DATUM', 'Local Datum'), ('unit', 'Meter')),
), ),
@ -173,11 +174,13 @@ class SpatialRefTest(unittest.TestCase):
def test04_proj(self): def test04_proj(self):
"Test PROJ.4 import and export." "Test PROJ.4 import and export."
for s in srlist: proj_parts = [
if s.proj: '+proj=longlat', '+ellps=WGS84', '+towgs84=0,0,0,0,0,0,0', '+datum=WGS84', '+no_defs'
srs1 = SpatialReference(s.wkt) ]
srs2 = SpatialReference(s.proj) srs1 = SpatialReference(srlist[0].wkt)
self.assertEqual(srs1.proj, srs2.proj) srs2 = SpatialReference(WGS84_proj)
self.assertTrue(all([part in proj_parts for part in srs1.proj.split()]))
self.assertTrue(all([part in proj_parts for part in srs2.proj.split()]))
def test05_epsg(self): def test05_epsg(self):
"Test EPSG import." "Test EPSG import."
@ -242,9 +245,7 @@ class SpatialRefTest(unittest.TestCase):
def test12_coordtransform(self): def test12_coordtransform(self):
"Testing initialization of a CoordTransform." "Testing initialization of a CoordTransform."
target = SpatialReference('WGS84') target = SpatialReference('WGS84')
for s in srlist: CoordTransform(SpatialReference(srlist[0].wkt), target)
if s.proj:
CoordTransform(SpatialReference(s.wkt), target)
def test13_attr_value(self): def test13_attr_value(self):
"Testing the attr_value() method." "Testing the attr_value() method."