QgsDataSourceUri::uri(): do not write empty table= and sql=

This commit is contained in:
Even Rouault 2019-10-15 13:37:32 +02:00 committed by Nyall Dawson
parent 6d682a002b
commit 239ef6f5ef
2 changed files with 13 additions and 6 deletions

View File

@ -576,10 +576,17 @@ QString QgsDataSourceUri::uri( bool expandAuthConfig ) const
columnName.replace( '\\', QLatin1String( "\\\\" ) );
columnName.replace( ')', QLatin1String( "\\)" ) );
uri += QStringLiteral( " table=%1%2 sql=%3" )
.arg( quotedTablename(),
mGeometryColumn.isNull() ? QString() : QStringLiteral( " (%1)" ).arg( columnName ),
mSql );
if ( !mTable.isEmpty() )
{
uri += QStringLiteral( " table=%1%2" )
.arg( quotedTablename(),
mGeometryColumn.isNull() ? QString() : QStringLiteral( " (%1)" ).arg( columnName ) );
}
if ( !mSql.isEmpty() )
{
uri += QStringLiteral( " sql=" ) + mSql;
}
return uri;
}

View File

@ -220,7 +220,7 @@ class TestPyQgsWFSProviderGUI(unittest.TestCase):
self.addWfsLayer_layer_name = None
main_dialog.addVectorLayer.connect(self.slotAddWfsLayer)
QTest.mouseClick(buttonAdd, Qt.LeftButton)
self.assertEqual(self.addWfsLayer_uri, ' pagingEnabled=\'true\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' table="" sql=')
self.assertEqual(self.addWfsLayer_uri, ' pagingEnabled=\'true\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\'')
self.assertEqual(self.addWfsLayer_layer_name, 'my:typename')
# Click on Build Query
@ -293,7 +293,7 @@ class TestPyQgsWFSProviderGUI(unittest.TestCase):
self.addWfsLayer_layer_name = None
main_dialog.addVectorLayer.connect(self.slotAddWfsLayer)
QTest.mouseClick(buttonAdd, Qt.LeftButton)
self.assertEqual(self.addWfsLayer_uri, ' pagingEnabled=\'true\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' table="" sql=SELECT * FROM typename WHERE 1 = 1')
self.assertEqual(self.addWfsLayer_uri, ' pagingEnabled=\'true\' restrictToRequestBBOX=\'1\' srsname=\'EPSG:4326\' typename=\'my:typename\' url=\'' + "http://" + expected_endpoint + '\' version=\'auto\' sql=SELECT * FROM typename WHERE 1 = 1')
self.assertEqual(self.addWfsLayer_layer_name, 'my:typename')
# main_dialog.setProperty("hideDialogs", None)