Skip to content

Commit

Permalink
Improve more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nyalldawson committed Jan 13, 2024
1 parent c7b36cb commit 4dca98c
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 45 deletions.
4 changes: 2 additions & 2 deletions tests/src/python/test_authmanager_ogr.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ def testQuotesAndComma(self):
auth_config.setConfig('username', 'qgis,\"rocks\"')
auth_config.setConfig('password', '\"quoted\"')
auth_config.setName('test_basic_auth_config_quoted')
assert (authm.storeAuthenticationConfig(auth_config)[0])
assert auth_config.isValid()
self.assertTrue(authm.storeAuthenticationConfig(auth_config)[0])
self.assertTrue(auth_config.isValid())
authcfg = auth_config.id()
pr = QgsProviderRegistry.instance().createProvider('ogr', '')
uri = 'MySQL:hostname authcfg=\'%s\''
Expand Down
6 changes: 3 additions & 3 deletions tests/src/python/test_layer_dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,11 @@ def test_signalConnection(self):
QgsProject.instance().removeAllMapLayers()
# set dependencies and add back layers
self.pointsLayer = QgsVectorLayer(f"dbname='{self.fn}' table=\"node\" (geom) sql=", "points", "spatialite")
assert (self.pointsLayer.isValid())
self.assertTrue(self.pointsLayer.isValid())
self.linesLayer = QgsVectorLayer(f"dbname='{self.fn}' table=\"section\" (geom) sql=", "lines", "spatialite")
assert (self.linesLayer.isValid())
self.assertTrue(self.linesLayer.isValid())
self.pointsLayer2 = QgsVectorLayer(f"dbname='{self.fn}' table=\"node2\" (geom) sql=", "_points2", "spatialite")
assert (self.pointsLayer2.isValid())
self.assertTrue(self.pointsLayer2.isValid())
self.pointsLayer.setDependencies([QgsMapLayerDependency(self.linesLayer.id())])
self.pointsLayer2.setDependencies([QgsMapLayerDependency(self.pointsLayer.id())])
# this should update connections between layers
Expand Down
4 changes: 2 additions & 2 deletions tests/src/python/test_provider_afs.py
Original file line number Diff line number Diff line change
Expand Up @@ -936,10 +936,10 @@ def testObjectIdDifferentName(self):

# Create test layer
vl = QgsVectorLayer("url='http://" + endpoint + "' crs='epsg:4326'", 'test', 'arcgisfeatureserver')
assert vl.isValid()
self.assertTrue(vl.isValid())

f = vl.getFeature(0)
assert f.isValid()
self.assertTrue(f.isValid())

def testDateTime(self):
""" Test that datetime fields work correctly """
Expand Down
4 changes: 2 additions & 2 deletions tests/src/python/test_provider_gdal.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,12 +266,12 @@ def testSanitizeVRT(self):
vrtfilename = os.path.join(tmp_dir.path(), 'out.vrt')
ds = gdal.BuildVRT(vrtfilename, [tmpfilename])
ds = None
assert 'OverviewList' in open(vrtfilename).read()
self.assertIn('OverviewList', open(vrtfilename).read())

raster_layer = QgsRasterLayer(vrtfilename, 'test')
del raster_layer

assert 'OverviewList' not in open(vrtfilename).read()
self.assertNotIn('OverviewList', open(vrtfilename).read())

@unittest.skipIf(int(gdal.VersionInfo('VERSION_NUM')) < GDAL_COMPUTE_VERSION(3, 7, 0), "GDAL 3.7.0 required")
def testInt8(self):
Expand Down
2 changes: 1 addition & 1 deletion tests/src/python/test_provider_hana.py
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ def testFilterRectOutsideSrsExtent(self):
extent = QgsRectangle(-103, 46, -25, 97)
result = {f[self.pk_name] for f in self.source.getFeatures(QgsFeatureRequest().setFilterRect(extent))}
expected = {1, 2, 4, 5}
assert set(expected) == result, f'Expected {expected} and got {result} when testing setFilterRect {extent}'
self.assertEqual(set(expected), result)

def testEncodeDecodeUri(self):
"""Test HANA encode/decode URI"""
Expand Down
42 changes: 13 additions & 29 deletions tests/src/python/test_provider_memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ def testCtors(self):
testVectors = ["Point", "LineString", "Polygon", "MultiPoint", "MultiLineString", "MultiPolygon", "None"]
for v in testVectors:
layer = QgsVectorLayer(v, "test", "memory")
assert layer.isValid(), f"Failed to create valid {v} memory layer"
self.assertTrue(layer.isValid(), f"Failed to create valid {v} memory layer")

def testLayerGeometry(self):
testVectors = [("Point", QgsWkbTypes.PointGeometry, QgsWkbTypes.Point),
Expand Down Expand Up @@ -172,11 +172,8 @@ def testLayerGeometry(self):
for v in testVectors:
layer = QgsVectorLayer(v[0], "test", "memory")

myMessage = f'Expected: {v[1]}\nGot: {layer.geometryType()}\n'
assert layer.geometryType() == v[1], myMessage

myMessage = f'Expected: {v[2]}\nGot: {layer.wkbType()}\n'
assert layer.wkbType() == v[2], myMessage
self.assertEqual(layer.geometryType(), v[1])
self.assertEqual(layer.wkbType(), v[2])

def testAddFeatures(self):
layer = QgsVectorLayer("Point", "test", "memory")
Expand All @@ -185,11 +182,9 @@ def testAddFeatures(self):
res = provider.addAttributes([QgsField("name", QVariant.String),
QgsField("age", QVariant.Int),
QgsField("size", QVariant.Double)])
assert res, "Failed to add attributes"

myMessage = f'Expected: {3}\nGot: {len(provider.fields())}\n'
self.assertTrue(res)

assert len(provider.fields()) == 3, myMessage
self.assertEqual(len(provider.fields()), 3)

ft = QgsFeature()
ft.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(10, 10)))
Expand All @@ -198,29 +193,18 @@ def testAddFeatures(self):
0.3])
res, t = provider.addFeatures([ft])

assert res, "Failed to add feature"
self.assertTrue(res)

myMessage = f'Expected: {1}\nGot: {provider.featureCount()}\n'
assert provider.featureCount() == 1, myMessage
self.assertEqual(provider.featureCount(), 1)

for f in provider.getFeatures(QgsFeatureRequest()):
myMessage = f"Expected: {'Johny'}\nGot: {f[0]}\n"

assert f[0] == "Johny", myMessage

myMessage = f'Expected: {20}\nGot: {f[1]}\n'

assert f[1] == 20, myMessage

myMessage = f'Expected: {0.3}\nGot: {f[2]}\n'

assert (f[2] - 0.3) < 0.0000001, myMessage
self.assertEqual(f[0], "Johny")
self.assertEqual(f[1], 20)
self.assertLess(f[2] - 0.3, 0.0000001)

geom = f.geometry()

myMessage = f"Expected: {'Point (10 10)'}\nGot: {str(geom.asWkt())}\n"

assert compareWkt(str(geom.asWkt()), "Point (10 10)"), myMessage
self.assertTrue(compareWkt(str(geom.asWkt()), "Point (10 10)"))

def testCloneFeatures(self):
"""
Expand Down Expand Up @@ -446,7 +430,7 @@ def testSaveFields(self):
QgsField("geom", QVariant.UserType, typeName="geometry")]
self.assertTrue(myMemoryLayer.startEditing())
for f in myFields:
assert myMemoryLayer.addAttribute(f)
self.assertTrue(myMemoryLayer.addAttribute(f))
self.assertTrue(myMemoryLayer.commitChanges())
myMemoryLayer.updateFields()

Expand Down Expand Up @@ -504,7 +488,7 @@ def testRenameAttributes(self):
QgsField("age", QVariant.Int),
QgsField("size", QVariant.Double)])
layer.updateFields()
assert res, "Failed to add attributes"
self.assertTrue(res)
ft = QgsFeature()
ft.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(10, 10)))
ft.setAttributes(["Johny",
Expand Down
2 changes: 1 addition & 1 deletion tests/src/python/test_provider_mssql.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ def testOrderByCompiled(self):
def testDateTimeTypes(self):
vl = QgsVectorLayer('%s table="qgis_test"."date_times" sql=' %
(self.dbconn), "testdatetimes", "mssql")
assert (vl.isValid())
self.assertTrue(vl.isValid())

fields = vl.dataProvider().fields()
self.assertEqual(fields.at(fields.indexFromName(
Expand Down
10 changes: 5 additions & 5 deletions tests/src/python/test_provider_ogr.py
Original file line number Diff line number Diff line change
Expand Up @@ -1395,7 +1395,7 @@ def testHTTPRequestsOverrider(self):
with mockedwebserver.install_http_handler(handler):
QgsVectorLayer("OAPIF:http://127.0.0.1:%d/collections/foo" % port, 'test', 'ogr')
# Error coming from Qt network stack, not GDAL/CURL one
assert 'server replied: Not Found' in gdal.GetLastErrorMsg()
self.assertIn('server replied: Not Found', gdal.GetLastErrorMsg())

# Test a nominal case
handler = mockedwebserver.SequentialHandler()
Expand All @@ -1409,7 +1409,7 @@ def testHTTPRequestsOverrider(self):
'{ "type": "FeatureCollection", "features": [] }')
with mockedwebserver.install_http_handler(handler):
vl = QgsVectorLayer("OAPIF:http://127.0.0.1:%d/collections/foo" % port, 'test', 'ogr')
assert vl.isValid()
self.assertTrue(vl.isValid())

# More complicated test using an anthentication configuration
authm = QgsApplication.authManager()
Expand Down Expand Up @@ -1666,7 +1666,7 @@ def test_provider_editorWidgets(self):

editor_widget_type = 'Color'
factory = QgsGui.instance().editorWidgetRegistry().factory(editor_widget_type)
assert factory.name() == editor_widget_type
self.assertEqual(factory.name(), editor_widget_type)

# 1. create a vector
uri = "point?crs=epsg:4326&field=id:integer"
Expand All @@ -1685,9 +1685,9 @@ def test_provider_editorWidgets(self):
setup2 = QgsEditorWidgetSetup(editor_widget_type, {})

# 2. Add field, set editor widget after commitChanges()
assert layer.startEditing()
self.assertTrue(layer.startEditing())
layer.addAttribute(field1)
assert layer.commitChanges(stopEditing=False)
self.assertTrue(layer.commitChanges(stopEditing=False))
i = layer.fields().lookupField(field1.name())
layer.setEditorWidgetSetup(i, setup1)

Expand Down

0 comments on commit 4dca98c

Please sign in to comment.