Skip to content

Commit 44e32e1

Browse files
committed
Fix tests for new QgsVectorFileWriter python API
1 parent 37e522e commit 44e32e1

File tree

2 files changed

+36
-38
lines changed

2 files changed

+36
-38
lines changed

tests/src/python/test_qgsvectorfilewriter.py

+34-34
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,13 @@ def testDateTimeWriteShapefile(self):
115115
dest_file_name = os.path.join(str(QDir.tempPath()), 'datetime.shp')
116116
crs = QgsCoordinateReferenceSystem()
117117
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
118-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
118+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
119119
ml,
120120
dest_file_name,
121121
'utf-8',
122122
crs,
123123
'ESRI Shapefile')
124-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
124+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
125125

126126
# Open result and check
127127
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -159,11 +159,11 @@ def testWriterWithExtent(self):
159159
options.filterExtent = QgsRectangle(-111, 26, -96, 38)
160160

161161
dest_file_name = os.path.join(str(QDir.tempPath()), 'extent_no_transform.shp')
162-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
162+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
163163
source_layer,
164164
dest_file_name,
165165
options)
166-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
166+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
167167

168168
# Open result and check
169169
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -184,11 +184,11 @@ def testWriterWithExtentAndReprojection(self):
184184
options.ct = QgsCoordinateTransform(source_layer.crs(), QgsCoordinateReferenceSystem.fromEpsgId(3785))
185185

186186
dest_file_name = os.path.join(str(QDir.tempPath()), 'extent_transform.shp')
187-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
187+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
188188
source_layer,
189189
dest_file_name,
190190
options)
191-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
191+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
192192

193193
# Open result and check
194194
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -220,13 +220,13 @@ def testDateTimeWriteTabfile(self):
220220
dest_file_name = os.path.join(str(QDir.tempPath()), 'datetime.tab')
221221
crs = QgsCoordinateReferenceSystem()
222222
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
223-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
223+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
224224
ml,
225225
dest_file_name,
226226
'utf-8',
227227
crs,
228228
'MapInfo File')
229-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
229+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
230230

231231
# Open result and check
232232
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -274,14 +274,14 @@ def testWriteShapefileWithZ(self):
274274
dest_file_name = os.path.join(str(QDir.tempPath()), 'point_{}.shp'.format(QgsWkbTypes.displayString(t)))
275275
crs = QgsCoordinateReferenceSystem()
276276
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
277-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
277+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
278278
ml,
279279
dest_file_name,
280280
'utf-8',
281281
crs,
282282
'ESRI Shapefile',
283283
overrideGeometryType=t)
284-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
284+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
285285

286286
# Open result and check
287287
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -299,13 +299,13 @@ def testWriteShapefileWithZ(self):
299299
'point_{}_copy.shp'.format(QgsWkbTypes.displayString(t)))
300300
crs = QgsCoordinateReferenceSystem()
301301
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
302-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
302+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
303303
created_layer,
304304
dest_file_name,
305305
'utf-8',
306306
crs,
307307
'ESRI Shapefile')
308-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
308+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
309309

310310
# Open result and check
311311
created_layer_from_shp = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -337,14 +337,14 @@ def testWriteShapefileWithMultiConversion(self):
337337
dest_file_name = os.path.join(str(QDir.tempPath()), 'to_multi.shp')
338338
crs = QgsCoordinateReferenceSystem()
339339
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
340-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
340+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
341341
ml,
342342
dest_file_name,
343343
'utf-8',
344344
crs,
345345
'ESRI Shapefile',
346346
forceMulti=True)
347-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
347+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
348348

349349
# Open result and check
350350
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -379,14 +379,14 @@ def testWriteShapefileWithAttributeSubsets(self):
379379
dest_file_name = os.path.join(str(QDir.tempPath()), 'all_attributes.shp')
380380
crs = QgsCoordinateReferenceSystem()
381381
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
382-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
382+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
383383
ml,
384384
dest_file_name,
385385
'utf-8',
386386
crs,
387387
'ESRI Shapefile',
388388
attributes=[])
389-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
389+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
390390

391391
# Open result and check
392392
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -399,14 +399,14 @@ def testWriteShapefileWithAttributeSubsets(self):
399399

400400
# now test writing out only a subset of attributes
401401
dest_file_name = os.path.join(str(QDir.tempPath()), 'subset_attributes.shp')
402-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
402+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
403403
ml,
404404
dest_file_name,
405405
'utf-8',
406406
crs,
407407
'ESRI Shapefile',
408408
attributes=[1, 3])
409-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
409+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
410410

411411
# Open result and check
412412
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -417,14 +417,14 @@ def testWriteShapefileWithAttributeSubsets(self):
417417

418418
# finally test writing no attributes
419419
dest_file_name = os.path.join(str(QDir.tempPath()), 'no_attributes.shp')
420-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
420+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
421421
ml,
422422
dest_file_name,
423423
'utf-8',
424424
crs,
425425
'ESRI Shapefile',
426426
skipAttributeCreation=True)
427-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
427+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
428428

429429
# Open result and check
430430
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -463,15 +463,15 @@ def testValueConverter(self):
463463

464464
dest_file_name = os.path.join(str(QDir.tempPath()), 'value_converter.shp')
465465
converter = TestFieldValueConverter(ml)
466-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
466+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
467467
ml,
468468
dest_file_name,
469469
'utf-8',
470470
QgsCoordinateReferenceSystem(),
471471
'ESRI Shapefile',
472472
attributes=[0, 2],
473473
fieldValueConverter=converter)
474-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
474+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
475475

476476
# Open result and check
477477
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -501,13 +501,13 @@ def testInteger64WriteTabfile(self):
501501
dest_file_name = os.path.join(str(QDir.tempPath()), 'integer64.tab')
502502
crs = QgsCoordinateReferenceSystem()
503503
crs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
504-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
504+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
505505
ml,
506506
dest_file_name,
507507
'utf-8',
508508
crs,
509509
'MapInfo File')
510-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
510+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
511511

512512
# Open result and check
513513
created_layer = QgsVectorLayer('{}|layerid=0'.format(dest_file_name), 'test', 'ogr')
@@ -558,11 +558,11 @@ def testOverwriteLayer(self):
558558
options.driverName = 'GPKG'
559559
options.layerName = 'test'
560560
filename = '/vsimem/out.gpkg'
561-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
561+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
562562
ml,
563563
filename,
564564
options)
565-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
565+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
566566

567567
ds = ogr.Open(filename, update=1)
568568
lyr = ds.GetLayerByName('test')
@@ -597,11 +597,11 @@ def testOverwriteLayer(self):
597597
options.layerName = 'test'
598598
options.actionOnExistingFile = QgsVectorFileWriter.CreateOrOverwriteLayer
599599
filename = '/vsimem/out.gpkg'
600-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
600+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
601601
ml,
602602
filename,
603603
options)
604-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
604+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
605605

606606
ds = ogr.Open(filename)
607607
lyr = ds.GetLayerByName('test')
@@ -626,11 +626,11 @@ def testOverwriteLayer(self):
626626
options.driverName = 'GPKG'
627627
options.layerName = 'test'
628628
filename = '/vsimem/out.gpkg'
629-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
629+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
630630
ml,
631631
filename,
632632
options)
633-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
633+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
634634

635635
ds = ogr.Open(filename)
636636
lyr = ds.GetLayerByName('test')
@@ -658,11 +658,11 @@ def testOverwriteLayer(self):
658658
options.layerName = 'test'
659659
options.actionOnExistingFile = QgsVectorFileWriter.AppendToLayerNoNewFields
660660
filename = '/vsimem/out.gpkg'
661-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
661+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
662662
ml,
663663
filename,
664664
options)
665-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
665+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
666666

667667
ds = ogr.Open(filename)
668668
lyr = ds.GetLayerByName('test')
@@ -691,11 +691,11 @@ def testOverwriteLayer(self):
691691
options.layerName = 'test'
692692
options.actionOnExistingFile = QgsVectorFileWriter.AppendToLayerAddFields
693693
filename = '/vsimem/out.gpkg'
694-
write_result = QgsVectorFileWriter.writeAsVectorFormat(
694+
write_result, error_message = QgsVectorFileWriter.writeAsVectorFormat(
695695
ml,
696696
filename,
697697
options)
698-
self.assertEqual(write_result, QgsVectorFileWriter.NoError)
698+
self.assertEqual(write_result, QgsVectorFileWriter.NoError, error_message)
699699

700700
ds = ogr.Open(filename)
701701
lyr = ds.GetLayerByName('test')

tests/src/python/utilities.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -105,25 +105,23 @@ def writeShape(theMemoryLayer, theFileName):
105105
myFileName = os.path.join(str(QDir.tempPath()), theFileName)
106106
print(myFileName)
107107
# Explicitly giving all options, not really needed but nice for clarity
108-
myErrorMessage = ''
109108
myOptions = []
110109
myLayerOptions = []
111110
mySelectedOnlyFlag = False
112111
mySkipAttributesFlag = False
113112
myGeoCrs = QgsCoordinateReferenceSystem()
114113
myGeoCrs.createFromId(4326, QgsCoordinateReferenceSystem.EpsgCrsId)
115-
myResult = QgsVectorFileWriter.writeAsVectorFormat(
114+
myResult, myErrorMessage = QgsVectorFileWriter.writeAsVectorFormat(
116115
theMemoryLayer,
117116
myFileName,
118117
'utf-8',
119118
myGeoCrs,
120119
'ESRI Shapefile',
121120
mySelectedOnlyFlag,
122-
myErrorMessage,
123121
myOptions,
124122
myLayerOptions,
125123
mySkipAttributesFlag)
126-
assert myResult == QgsVectorFileWriter.NoError
124+
self.assertEqual(myResult, QgsVectorFileWriter.NoError, myErrorMessage)
127125

128126

129127
def doubleNear(a, b, tol=0.0000000001):

0 commit comments

Comments
 (0)