11# -*- coding: utf-8 -*-
2- """QGIS Unit tests for the python layer provider .
2+ """QGIS Unit tests for the python dataprovider .
33
44.. note:: This program is free software; you can redistribute it and/or modify
55it under the terms of the GNU General Public License as published by
@@ -144,13 +144,13 @@ def getEditableLayer(self):
144144 return self .createLayer ()
145145
146146 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
148148 its features as direct copies (due to implicit sharing of QgsFeature)
149149 """
150150 pass
151151
152152 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
154154 its features as direct copies (due to implicit sharing of QgsFeature)
155155 """
156156 pass
@@ -163,8 +163,8 @@ def testGetFeaturesDestinationCrs(self):
163163 def testCtors (self ):
164164 testVectors = ["Point" , "LineString" , "Polygon" , "MultiPoint" , "MultiLineString" , "MultiPolygon" , "None" ]
165165 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 )
168168
169169 def testLayerGeometry (self ):
170170 testVectors = [("Point" , QgsWkbTypes .PointGeometry , QgsWkbTypes .Point ),
@@ -199,7 +199,7 @@ def testLayerGeometry(self):
199199 ("MultiPolygon25D" , QgsWkbTypes .PolygonGeometry , QgsWkbTypes .MultiPolygon25D ),
200200 ("None" , QgsWkbTypes .NullGeometry , QgsWkbTypes .NoGeometry )]
201201 for v in testVectors :
202- layer = QgsVectorLayer (v [0 ], "test" , "memory " )
202+ layer = QgsVectorLayer (v [0 ], "test" , "pythonprovider " )
203203
204204 myMessage = ('Expected: %s\n Got: %s\n ' %
205205 (v [1 ], layer .geometryType ()))
@@ -210,7 +210,7 @@ def testLayerGeometry(self):
210210 assert layer .wkbType () == v [2 ], myMessage
211211
212212 def testAddFeatures (self ):
213- layer = QgsVectorLayer ("Point" , "test" , "memory " )
213+ layer = QgsVectorLayer ("Point" , "test" , "pythonprovider " )
214214 provider = layer .dataProvider ()
215215
216216 res = provider .addAttributes ([QgsField ("name" , QVariant .String ),
@@ -260,7 +260,7 @@ def testAddFeatures(self):
260260 assert compareWkt (str (geom .asWkt ()), "Point (10 10)" ), myMessage
261261
262262 def testGetFields (self ):
263- layer = QgsVectorLayer ("Point" , "test" , "memory " )
263+ layer = QgsVectorLayer ("Point" , "test" , "pythonprovider " )
264264 provider = layer .dataProvider ()
265265
266266 provider .addAttributes ([QgsField ("name" , QVariant .String ),
@@ -345,7 +345,7 @@ def testSaveFields(self):
345345 assert f == importedFields .field (f .name ())
346346
347347 def testRenameAttributes (self ):
348- layer = QgsVectorLayer ("Point" , "test" , "memory " )
348+ layer = QgsVectorLayer ("Point" , "test" , "pythonprovider " )
349349 provider = layer .dataProvider ()
350350
351351 res = provider .addAttributes ([QgsField ("name" , QVariant .String ),
@@ -382,71 +382,6 @@ def testRenameAttributes(self):
382382 self .assertEqual (fet .fields ()[1 ].name (), 'mapinfo_is_the_stone_age' )
383383 self .assertEqual (fet .fields ()[2 ].name (), 'super_size' )
384384
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-
450385 def testThreadSafetyWithIndex (self ):
451386 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' ,
452387 'test' , 'pythonprovider' )
0 commit comments