@@ -275,6 +275,16 @@ def testLengthPrecisionFromUri(self):
275
275
self .assertEqual (myMemoryLayer .fields ().field ('size' ).length (), 12 )
276
276
self .assertEqual (myMemoryLayer .fields ().field ('size' ).precision (), 9 )
277
277
278
+ def testFromUriWithEncodedField (self ):
279
+ """Test we can construct the mem provider from a uri when a field name is encoded"""
280
+ layer = QgsVectorLayer (
281
+ ('Point?crs=epsg:4326&field=name:string(20)&'
282
+ 'field=test%2Ffield:integer' ),
283
+ 'test' ,
284
+ 'memory' )
285
+ self .assertTrue (layer .isValid ())
286
+ self .assertEqual ([f .name () for f in layer .fields ()], ['name' , 'test/field' ])
287
+
278
288
def testSaveFields (self ):
279
289
# Create a new memory layer with no fields
280
290
myMemoryLayer = QgsVectorLayer (
@@ -398,6 +408,8 @@ def testCreateMemoryLayer(self):
398
408
fields .append (QgsField ("date" , QVariant .Date ))
399
409
fields .append (QgsField ("datetime" , QVariant .DateTime ))
400
410
fields .append (QgsField ("time" , QVariant .Time ))
411
+ fields .append (QgsField ("#complex_name" , QVariant .String ))
412
+ fields .append (QgsField ("complex/name" , QVariant .String ))
401
413
layer = QgsMemoryProviderUtils .createMemoryLayer ('my name' , fields )
402
414
self .assertTrue (layer .isValid ())
403
415
self .assertFalse (layer .fields ().isEmpty ())
0 commit comments