@@ -158,8 +158,7 @@ def test_unique(features, num_features):
158
158
159
159
# See http://hub.qgis.org/issues/14262
160
160
def testSignedIdentifiers (self ):
161
- def test_query_attribute (dbconn , query , att , val , fidval ):
162
- ql = QgsVectorLayer ('%s table="%s" (g) key=\' %s\' sql=' % (dbconn , query .replace ('"' , '\\ "' ), att ), "testgeom" , "postgres" )
161
+ def test_layer (ql , att , val , fidval ):
163
162
self .assertTrue (ql .isValid ())
164
163
features = ql .getFeatures ()
165
164
att_idx = ql .fieldNameIndex (att )
@@ -169,9 +168,18 @@ def test_query_attribute(dbconn, query, att, val, fidval):
169
168
self .assertEqual (f .attributes ()[att_idx ], val )
170
169
self .assertEqual (f .id (), fidval )
171
170
self .assertEqual (count , 1 )
172
- test_query_attribute (self .dbconn , '(SELECT -1::int4 i, NULL::geometry(Point) g)' , 'i' , - 1 , 4294967295 )
173
- test_query_attribute (self .dbconn , '(SELECT -2::int2 i, NULL::geometry(Point) g)' , 'i' , - 2 , 4294967294 )
174
- test_query_attribute (self .dbconn , '(SELECT -3::int8 i, NULL::geometry(Point) g)' , 'i' , - 3 , 1 )
171
+
172
+ def test (dbconn , query , att , val , fidval ):
173
+ table = query .replace ('"' , '\\ "' )
174
+ uri = '%s table="%s" (g) key=\' %s\' ' % (dbconn , table , att )
175
+ ql = QgsVectorLayer (uri , "t" , "postgres" )
176
+ test_layer (ql , att , val , fidval )
177
+ # now with estimated metadata
178
+ uri += ' estimatedmetadata="true"'
179
+ test_layer (ql , att , val , fidval )
180
+ test (self .dbconn , '(SELECT -1::int4 i, NULL::geometry(Point) g)' , 'i' , - 1 , 4294967295 )
181
+ test (self .dbconn , '(SELECT -2::int2 i, NULL::geometry(Point) g)' , 'i' , - 2 , 4294967294 )
182
+ test (self .dbconn , '(SELECT -3::int8 i, NULL::geometry(Point) g)' , 'i' , - 3 , 1 )
175
183
176
184
def testPktIntInsert (self ):
177
185
vl = QgsVectorLayer ('{} table="qgis_test"."{}" key="pk" sql=' .format (self .dbconn , 'bikes_view' ), "bikes_view" , "postgres" )
0 commit comments