Skip to content

Commit b4698ad

Browse files
committed
test_provider_ogr_gpkg.py: compare geometry by wkb, and use @unittest.expectedFailure decorator
1 parent aa2014d commit b4698ad

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

tests/src/python/test_provider_ogr_gpkg.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,9 @@ def tearDownClass(cls):
4444
"""Run after all tests"""
4545
shutil.rmtree(cls.basetestpath, True)
4646

47+
@unittest.expectedFailure(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(1, 11, 0))
4748
def testSingleToMultiPolygonPromotion(self):
4849

49-
version_num = int(gdal.VersionInfo('VERSION_NUM'))
50-
if version_num < GDAL_COMPUTE_VERSION(1, 11, 0):
51-
return
52-
5350
tmpfile = os.path.join(self.basetestpath, 'testSingleToMultiPolygonPromotion.gpkg')
5451
ds = ogr.GetDriverByName('GPKG').CreateDataSource(tmpfile)
5552
lyr = ds.CreateLayer('test', geom_type=ogr.wkbMultiPolygon)
@@ -59,15 +56,14 @@ def testSingleToMultiPolygonPromotion(self):
5956
f = QgsFeature()
6057
f.setGeometry(QgsGeometry.fromWkt('POLYGON ((0 0,0 1,1 1,0 0))'))
6158
vl.dataProvider().addFeatures([f])
62-
got = [f.geometry().exportToWkt(0) for f in vl.getFeatures()][0]
63-
self.assertEqual(got, 'MultiPolygon (((0 0, 0 1, 1 1, 0 0)))')
59+
got = [f.geometry() for f in vl.getFeatures()][0]
60+
reference = QgsGeometry.fromWkt('MultiPolygon (((0 0, 0 1, 1 1, 0 0)))')
61+
# The geometries must be binarily identical
62+
self.assertEqual(got.asWkb(), reference.asWkb(), 'Expected {}, got {}'.format(reference.exportToWkt(), got.exportToWkt()))
6463

64+
@unittest.expectedFailure(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(2, 0, 0))
6565
def testCurveGeometryType(self):
6666

67-
version_num = int(gdal.VersionInfo('VERSION_NUM'))
68-
if version_num < GDAL_COMPUTE_VERSION(2, 0, 0):
69-
return
70-
7167
tmpfile = os.path.join(self.basetestpath, 'testCurveGeometryType.gpkg')
7268
ds = ogr.GetDriverByName('GPKG').CreateDataSource(tmpfile)
7369
lyr = ds.CreateLayer('test', geom_type=ogr.wkbCurvePolygon)
@@ -78,11 +74,16 @@ def testCurveGeometryType(self):
7874
f = QgsFeature()
7975
f.setGeometry(QgsGeometry.fromWkt('POLYGON ((0 0,0 1,1 1,0 0))'))
8076
vl.dataProvider().addFeatures([f])
81-
got = [f.geometry().exportToWkt(0) for f in vl.getFeatures()][0]
82-
self.assertEqual(got, 'CurvePolygon ((0 0, 0 1, 1 1, 0 0))')
77+
got = [f.geometry() for f in vl.getFeatures()][0]
78+
reference = QgsGeometry.fromWkt('CurvePolygon (((0 0, 0 1, 1 1, 0 0)))')
79+
# The geometries must be binarily identical
80+
self.assertEqual(got.asWkb(), reference.asWkb(), 'Expected {}, got {}'.format(reference.exportToWkt(), got.exportToWkt()))
8381

8482
def testFidSupport(self):
8583

84+
# We do not use @unittest.expectedFailure since the test might actually succeed
85+
# on Linux 64bit with GDAL 1.11, where "long" is 64 bit...
86+
# GDAL 2.0 is guaranteed to properly support it on all platforms
8687
version_num = int(gdal.VersionInfo('VERSION_NUM'))
8788
if version_num < GDAL_COMPUTE_VERSION(2, 0, 0):
8889
return

0 commit comments

Comments
 (0)