Skip to content

Commit

Permalink
HANA: fix python test testEncodeDecodeUri
Browse files Browse the repository at this point in the history
  • Loading branch information
mrylov authored and nyalldawson committed Oct 20, 2022
1 parent 0024956 commit 843db09
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 16 deletions.
14 changes: 6 additions & 8 deletions src/providers/hana/qgshanaprovider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1881,7 +1881,6 @@ QVariantMap QgsHanaProviderMetadata::decodeUri( const QString &uri ) const

setUriPart( QStringLiteral( "connectionType" ) );
setUriPart( QStringLiteral( "dsn" ) );

if ( ! dsUri.driver().isEmpty() )
uriParts[ QStringLiteral( "driver" ) ] = dsUri.driver();
if ( ! dsUri.database().isEmpty() )
Expand Down Expand Up @@ -1942,10 +1941,14 @@ QString QgsHanaProviderMetadata::encodeUri( const QVariantMap &parts ) const
dsUri.setParam( key, parts.value( key ).toString() );
};

setUriParam( QStringLiteral( "connectionType" ) );
setUriParam( QStringLiteral( "dsn" ) );
if ( parts.contains( QStringLiteral( "driver" ) ) )
dsUri.setDriver( parts.value( QStringLiteral( "driver" ) ).toString() );
if ( parts.contains( QStringLiteral( "dbname" ) ) )
dsUri.setDatabase( parts.value( QStringLiteral( "dbname" ) ).toString() );
setUriParam( QStringLiteral( "host" ) );
setUriParam( QStringLiteral( "port" ) );
if ( parts.contains( QStringLiteral( "username" ) ) )
dsUri.setUsername( parts.value( QStringLiteral( "username" ) ).toString() );
if ( parts.contains( QStringLiteral( "password" ) ) )
Expand All @@ -1958,15 +1961,10 @@ QString QgsHanaProviderMetadata::encodeUri( const QVariantMap &parts ) const
dsUri.setSchema( parts.value( QStringLiteral( "schema" ) ).toString() );
if ( parts.contains( QStringLiteral( "table" ) ) )
dsUri.setTable( parts.value( QStringLiteral( "table" ) ).toString() );
if ( parts.contains( QStringLiteral( "srid" ) ) )
dsUri.setSrid( parts.value( QStringLiteral( "srid" ) ).toString() );
if ( parts.contains( QStringLiteral( "key" ) ) )
dsUri.setKeyColumn( parts.value( QStringLiteral( "key" ) ).toString() );

setUriParam( QStringLiteral( "connectionType" ) );
setUriParam( QStringLiteral( "dsn" ) );
setUriParam( QStringLiteral( "host" ) );
setUriParam( QStringLiteral( "port" ) );
if ( parts.contains( QStringLiteral( "srid" ) ) )
dsUri.setSrid( parts.value( QStringLiteral( "srid" ) ).toString() );
setUriParam( QStringLiteral( "selectatid" ) );

// SSL parameters
Expand Down
16 changes: 8 additions & 8 deletions tests/src/python/test_provider_hana.py
Original file line number Diff line number Diff line change
Expand Up @@ -538,14 +538,15 @@ def testFilterRectOutsideSrsExtent(self):
def testEncodeDecodeUri(self):
"""Test HANA encode/decode URI"""
md = QgsProviderRegistry.instance().providerMetadata('hana')
self.maxDiff = None
self.assertEqual(md.decodeUri(
"connectionType=0 dsn='HANADB1' "
"driver='/usr/sap/hdbclient/libodbcHDB.so' dbname='qgis_tests' host=localhost port=30015 "
"user='myuser' password='mypwd' srid=2016 table=\"public\".\"gis\" (geom) type=MultiPolygon key='id' "
"sslEnabled='true' sslCryptoProvider='commoncrypto' sslValidateCertificate='false' "
"sslHostNameInCertificate='hostname.domain.com' sslKeyStore='mykey.pem' "
"sslTrustStore='server_root.crt' "
"proxyEnabled='true' proxyHttp='false' proxyHost='h' proxyPort=2 proxyUsername='u' proxyPassword='p' "),
"proxyEnabled='true' proxyHttp='true' proxyHost='h' proxyPort=2 proxyUsername='u' proxyPassword='p' "),
{
'connectionType': '0',
'dsn': 'HANADB1',
Expand All @@ -571,7 +572,7 @@ def testEncodeDecodeUri(self):
'proxyEnabled': 'true',
'proxyHttp': 'true',
'proxyHost': 'h',
'proxyPort': 2,
'proxyPort': '2',
'proxyUsername': 'u',
'proxyPassword': 'p'})

Expand Down Expand Up @@ -602,14 +603,13 @@ def testEncodeDecodeUri(self):
'proxyPort': '3',
'proxyUsername': 'u',
'proxyPassword': 'p'}),
"connectionType='0' dsn='HANADB1' "
"dbname='qgis_tests' driver='/usr/sap/hdbclient/libodbcHDB.so' user='myuser' password='mypwd' "
"srid=2016 host='localhost' key='id' port='30015' selectatid='false' "
"sslCryptoProvider='commoncrypto' sslEnabled='true' "
"key='id' srid=2016 connectionType='0' dsn='HANADB1' host='localhost' port='30015' "
"proxyEnabled='true' proxyHost='h' proxyHttp='false' proxyPassword='p' proxyPort='3' "
"proxyUsername='u' selectatid='false' sslCryptoProvider='commoncrypto' sslEnabled='true' "
"sslHostNameInCertificate='hostname.domain.com' sslKeyStore='mykey.pem' "
"sslTrustStore='server_root.crt' sslValidateCertificate='false' "
"proxyEnabled='true' proxyHttp='false' proxyHost='h' proxyPort='3' proxyUsername='u' proxyPassword='p' "
"type='MultiPolygon' table=\"public\".\"gis\" (geom)")
"sslTrustStore='server_root.crt' sslValidateCertificate='false' type='MultiPolygon' "
"table=\"public\".\"gis\" (geom)")


if __name__ == '__main__':
Expand Down

0 comments on commit 843db09

Please sign in to comment.