@@ -359,17 +359,27 @@ def testImportKey(self):
359359
360360 def testKey (lyr , key , kfnames ):
361361 self .execSQLCommand ('DROP TABLE IF EXISTS qgis_test.import_test' )
362- uri = '%s table="qgis_test"."import_test" (g) key=\' %s\' ' % (self .dbconn , key )
362+ uri = '%s table="qgis_test"."import_test" (g)' % self .dbconn
363+ if key is not None :
364+ uri += ' key=\' %s\' ' % key
363365 err = QgsVectorLayerImport .importLayer (lyr , uri , "postgres" , lyr .crs ())
364366 self .assertEqual (err [0 ], QgsVectorLayerImport .NoError ,
365367 'unexpected import error {0}' .format (err ))
366368 olyr = QgsVectorLayer (uri , "y" , "postgres" )
367369 self .assertTrue (olyr .isValid ())
368370 flds = lyr .fields ()
369371 oflds = olyr .fields ()
370- self .assertEquals (oflds .size (), flds .size ())
371- for i in range (0 , oflds .size ()):
372- self .assertEqual (oflds [i ].name (), flds [i ].name ())
372+ if key is None :
373+ # if the pkey was not given, it will create a pkey
374+ self .assertEquals (oflds .size (), flds .size () + 1 )
375+ self .assertEquals (oflds [0 ].name (), kfnames [0 ])
376+ for i in range (flds .size ()):
377+ self .assertEqual (oflds [i + 1 ].name (), flds [i ].name ())
378+ else :
379+ # pkey was given, no extra field generated
380+ self .assertEquals (oflds .size (), flds .size ())
381+ for i in range (oflds .size ()):
382+ self .assertEqual (oflds [i ].name (), flds [i ].name ())
373383 pks = olyr .pkAttributeList ()
374384 self .assertEquals (len (pks ), len (kfnames ))
375385 for i in range (0 , len (kfnames )):
@@ -379,6 +389,7 @@ def testKey(lyr, key, kfnames):
379389 testKey (lyr , '"f1"' , ['f1' ])
380390 testKey (lyr , '"f1","F2"' , ['f1' , 'F2' ])
381391 testKey (lyr , '"f1","F2","f3"' , ['f1' , 'F2' , 'f3' ])
392+ testKey (lyr , None , ['id' ])
382393
383394
384395if __name__ == '__main__' :
0 commit comments