1
1
# -*- coding: utf-8 -*-
2
- """QGIS Unit tests for the python layer provider .
2
+ """QGIS Unit tests for the python dataprovider .
3
3
4
4
.. note:: This program is free software; you can redistribute it and/or modify
5
5
it under the terms of the GNU General Public License as published by
@@ -144,13 +144,13 @@ def getEditableLayer(self):
144
144
return self .createLayer ()
145
145
146
146
def testGetFeaturesSubsetAttributes2 (self ):
147
- """ Override and skip this test for memory provider, as it's actually more efficient for the memory provider to return
147
+ """ Override and skip this test for pythonprovider provider, as it's actually more efficient for the pythonprovider provider to return
148
148
its features as direct copies (due to implicit sharing of QgsFeature)
149
149
"""
150
150
pass
151
151
152
152
def testGetFeaturesNoGeometry (self ):
153
- """ Override and skip this test for memory provider, as it's actually more efficient for the memory provider to return
153
+ """ Override and skip this test for pythonprovider provider, as it's actually more efficient for the pythonprovider provider to return
154
154
its features as direct copies (due to implicit sharing of QgsFeature)
155
155
"""
156
156
pass
@@ -163,8 +163,8 @@ def testGetFeaturesDestinationCrs(self):
163
163
def testCtors (self ):
164
164
testVectors = ["Point" , "LineString" , "Polygon" , "MultiPoint" , "MultiLineString" , "MultiPolygon" , "None" ]
165
165
for v in testVectors :
166
- layer = QgsVectorLayer (v , "test" , "memory " )
167
- assert layer .isValid (), "Failed to create valid %s memory layer" % (v )
166
+ layer = QgsVectorLayer (v , "test" , "pythonprovider " )
167
+ assert layer .isValid (), "Failed to create valid %s pythonprovider layer" % (v )
168
168
169
169
def testLayerGeometry (self ):
170
170
testVectors = [("Point" , QgsWkbTypes .PointGeometry , QgsWkbTypes .Point ),
@@ -199,7 +199,7 @@ def testLayerGeometry(self):
199
199
("MultiPolygon25D" , QgsWkbTypes .PolygonGeometry , QgsWkbTypes .MultiPolygon25D ),
200
200
("None" , QgsWkbTypes .NullGeometry , QgsWkbTypes .NoGeometry )]
201
201
for v in testVectors :
202
- layer = QgsVectorLayer (v [0 ], "test" , "memory " )
202
+ layer = QgsVectorLayer (v [0 ], "test" , "pythonprovider " )
203
203
204
204
myMessage = ('Expected: %s\n Got: %s\n ' %
205
205
(v [1 ], layer .geometryType ()))
@@ -210,7 +210,7 @@ def testLayerGeometry(self):
210
210
assert layer .wkbType () == v [2 ], myMessage
211
211
212
212
def testAddFeatures (self ):
213
- layer = QgsVectorLayer ("Point" , "test" , "memory " )
213
+ layer = QgsVectorLayer ("Point" , "test" , "pythonprovider " )
214
214
provider = layer .dataProvider ()
215
215
216
216
res = provider .addAttributes ([QgsField ("name" , QVariant .String ),
@@ -260,7 +260,7 @@ def testAddFeatures(self):
260
260
assert compareWkt (str (geom .asWkt ()), "Point (10 10)" ), myMessage
261
261
262
262
def testGetFields (self ):
263
- layer = QgsVectorLayer ("Point" , "test" , "memory " )
263
+ layer = QgsVectorLayer ("Point" , "test" , "pythonprovider " )
264
264
provider = layer .dataProvider ()
265
265
266
266
provider .addAttributes ([QgsField ("name" , QVariant .String ),
@@ -345,7 +345,7 @@ def testSaveFields(self):
345
345
assert f == importedFields .field (f .name ())
346
346
347
347
def testRenameAttributes (self ):
348
- layer = QgsVectorLayer ("Point" , "test" , "memory " )
348
+ layer = QgsVectorLayer ("Point" , "test" , "pythonprovider " )
349
349
provider = layer .dataProvider ()
350
350
351
351
res = provider .addAttributes ([QgsField ("name" , QVariant .String ),
@@ -382,71 +382,6 @@ def testRenameAttributes(self):
382
382
self .assertEqual (fet .fields ()[1 ].name (), 'mapinfo_is_the_stone_age' )
383
383
self .assertEqual (fet .fields ()[2 ].name (), 'super_size' )
384
384
385
- def testUniqueSource (self ):
386
- """
387
- Similar memory layers should have unique source - some code checks layer source to identify
388
- matching layers
389
- """
390
- layer = QgsVectorLayer ("Point" , "test" , "memory" )
391
- layer2 = QgsVectorLayer ("Point" , "test2" , "memory" )
392
- self .assertNotEqual (layer .source (), layer2 .source ())
393
-
394
- def testCreateMemoryLayer (self ):
395
- """
396
- Test QgsMemoryProviderUtils.createMemoryLayer()
397
- """
398
-
399
- # no fields
400
- layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , QgsFields ())
401
- self .assertTrue (layer .isValid ())
402
- self .assertEqual (layer .name (), 'my name' )
403
- self .assertTrue (layer .fields ().isEmpty ())
404
-
405
- # similar layers should have unique sources
406
- layer2 = QgsMemoryProviderUtils .createMemoryLayer ('my name' , QgsFields ())
407
- self .assertNotEqual (layer .source (), layer2 .source ())
408
-
409
- # geometry type
410
- layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , QgsFields (), QgsWkbTypes .Point )
411
- self .assertTrue (layer .isValid ())
412
- self .assertEqual (layer .wkbType (), QgsWkbTypes .Point )
413
- layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , QgsFields (), QgsWkbTypes .PolygonZM )
414
- self .assertTrue (layer .isValid ())
415
- self .assertEqual (layer .wkbType (), QgsWkbTypes .PolygonZM )
416
-
417
- # crs
418
- layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , QgsFields (), QgsWkbTypes .PolygonZM , QgsCoordinateReferenceSystem .fromEpsgId (3111 ))
419
- self .assertTrue (layer .isValid ())
420
- self .assertEqual (layer .wkbType (), QgsWkbTypes .PolygonZM )
421
- self .assertTrue (layer .crs ().isValid ())
422
- self .assertEqual (layer .crs ().authid (), 'EPSG:3111' )
423
-
424
- # fields
425
- fields = QgsFields ()
426
- fields .append (QgsField ("string" , QVariant .String ))
427
- fields .append (QgsField ("long" , QVariant .LongLong ))
428
- fields .append (QgsField ("double" , QVariant .Double ))
429
- fields .append (QgsField ("integer" , QVariant .Int ))
430
- fields .append (QgsField ("date" , QVariant .Date ))
431
- fields .append (QgsField ("datetime" , QVariant .DateTime ))
432
- fields .append (QgsField ("time" , QVariant .Time ))
433
- layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , fields )
434
- self .assertTrue (layer .isValid ())
435
- self .assertFalse (layer .fields ().isEmpty ())
436
- self .assertEqual (len (layer .fields ()), len (fields ))
437
- for i in range (len (fields )):
438
- self .assertEqual (layer .fields ()[i ].name (), fields [i ].name ())
439
- self .assertEqual (layer .fields ()[i ].type (), fields [i ].type ())
440
-
441
- # unsupported field type
442
- fields = QgsFields ()
443
- fields .append (QgsField ("rect" , QVariant .RectF ))
444
- layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , fields )
445
- self .assertTrue (layer .isValid ())
446
- self .assertFalse (layer .fields ().isEmpty ())
447
- self .assertEqual (layer .fields ()[0 ].name (), 'rect' )
448
- self .assertEqual (layer .fields ()[0 ].type (), QVariant .String ) # should be mapped to string
449
-
450
385
def testThreadSafetyWithIndex (self ):
451
386
layer = QgsVectorLayer ('Point?crs=epsg:4326&index=yes&field=pk:integer&field=cnt:int8&field=name:string(0)&field=name2:string(0)&field=num_char:string&key=pk' ,
452
387
'test' , 'pythonprovider' )
0 commit comments