mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-06 00:03:16 -05:00
Add test for setting up connection string
Conflicts: python/plugins/processing/algs/gdal/ogr2ogrtopostgis.py
This commit is contained in:
parent
d63222e68e
commit
6731eaa9e5
@ -154,6 +154,28 @@ class Ogr2OgrToPostGis(GdalAlgorithm):
|
|||||||
self.addParameter(ParameterString(self.OPTIONS,
|
self.addParameter(ParameterString(self.OPTIONS,
|
||||||
self.tr('Additional creation options'), '', optional=True))
|
self.tr('Additional creation options'), '', optional=True))
|
||||||
|
|
||||||
|
def getConnectionString(self):
|
||||||
|
host = str(self.getParameterValue(self.HOST))
|
||||||
|
port = str(self.getParameterValue(self.PORT))
|
||||||
|
user = str(self.getParameterValue(self.USER))
|
||||||
|
dbname = str(self.getParameterValue(self.DBNAME))
|
||||||
|
password = str(self.getParameterValue(self.PASSWORD))
|
||||||
|
schema = str(self.getParameterValue(self.SCHEMA))
|
||||||
|
arguments = []
|
||||||
|
if host:
|
||||||
|
arguments.append('host=' + host)
|
||||||
|
if port:
|
||||||
|
arguments.append('port=' + port)
|
||||||
|
if dbname:
|
||||||
|
arguments.append('dbname=' + dbname)
|
||||||
|
if password:
|
||||||
|
arguments.append('password=' + password)
|
||||||
|
if schema:
|
||||||
|
arguments.append('active_schema=' + schema)
|
||||||
|
if user:
|
||||||
|
arguments.append('user=' + user)
|
||||||
|
return GdalUtils.escapeAndJoin(arguments)
|
||||||
|
|
||||||
def getConsoleCommands(self):
|
def getConsoleCommands(self):
|
||||||
inLayer = self.getParameterValue(self.INPUT_LAYER)
|
inLayer = self.getParameterValue(self.INPUT_LAYER)
|
||||||
ogrLayer = ogrConnectionString(inLayer)[1:-1]
|
ogrLayer = ogrConnectionString(inLayer)[1:-1]
|
||||||
@ -161,12 +183,6 @@ class Ogr2OgrToPostGis(GdalAlgorithm):
|
|||||||
ssrs = str(self.getParameterValue(self.S_SRS))
|
ssrs = str(self.getParameterValue(self.S_SRS))
|
||||||
tsrs = str(self.getParameterValue(self.T_SRS))
|
tsrs = str(self.getParameterValue(self.T_SRS))
|
||||||
asrs = str(self.getParameterValue(self.A_SRS))
|
asrs = str(self.getParameterValue(self.A_SRS))
|
||||||
host = str(self.getParameterValue(self.HOST))
|
|
||||||
port = str(self.getParameterValue(self.PORT))
|
|
||||||
user = str(self.getParameterValue(self.USER))
|
|
||||||
dbname = str(self.getParameterValue(self.DBNAME))
|
|
||||||
password = str(self.getParameterValue(self.PASSWORD))
|
|
||||||
schema = str(self.getParameterValue(self.SCHEMA))
|
|
||||||
table = str(self.getParameterValue(self.TABLE))
|
table = str(self.getParameterValue(self.TABLE))
|
||||||
pk = str(self.getParameterValue(self.PK))
|
pk = str(self.getParameterValue(self.PK))
|
||||||
pkstring = "-lco FID=" + pk
|
pkstring = "-lco FID=" + pk
|
||||||
@ -204,18 +220,7 @@ class Ogr2OgrToPostGis(GdalAlgorithm):
|
|||||||
arguments.append('-f')
|
arguments.append('-f')
|
||||||
arguments.append('PostgreSQL')
|
arguments.append('PostgreSQL')
|
||||||
arguments.append('PG:"')
|
arguments.append('PG:"')
|
||||||
if host:
|
arguments.append(self.getConnectionString())
|
||||||
arguments.append(' host=' + host)
|
|
||||||
if port:
|
|
||||||
arguments.append('port=' + port)
|
|
||||||
if dbname:
|
|
||||||
arguments.append('dbname=' + dbname)
|
|
||||||
if password:
|
|
||||||
arguments.append('password=' + password)
|
|
||||||
if schema:
|
|
||||||
arguments.append('active_schema=' + schema)
|
|
||||||
if user:
|
|
||||||
arguments.append('user=' + user)
|
|
||||||
arguments.append('"')
|
arguments.append('"')
|
||||||
arguments.append(dimstring)
|
arguments.append(dimstring)
|
||||||
arguments.append(ogrLayer)
|
arguments.append(ogrLayer)
|
||||||
|
|||||||
@ -26,6 +26,7 @@ __copyright__ = '(C) 2016, Matthias Kuhn'
|
|||||||
__revision__ = ':%H$'
|
__revision__ = ':%H$'
|
||||||
|
|
||||||
import AlgorithmsTestBase
|
import AlgorithmsTestBase
|
||||||
|
from processing.algs.gdal.ogr2ogrtopostgis import Ogr2OgrToPostGis
|
||||||
|
|
||||||
import nose2
|
import nose2
|
||||||
import shutil
|
import shutil
|
||||||
@ -54,5 +55,52 @@ class TestGdalAlgorithms(unittest.TestCase, AlgorithmsTestBase.AlgorithmsTest):
|
|||||||
return 'gdal_algorithm_tests.yaml'
|
return 'gdal_algorithm_tests.yaml'
|
||||||
|
|
||||||
|
|
||||||
|
class TestGdalOgr2OgrToPostgis(unittest.TestCase):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
#start_app()
|
||||||
|
pass
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def tearDownClass(cls):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# See http://hub.qgis.org/issues/15706
|
||||||
|
def test_getConnectionString(self):
|
||||||
|
|
||||||
|
obj = Ogr2OgrToPostGis()
|
||||||
|
|
||||||
|
cs = obj.getConnectionString()
|
||||||
|
# NOTE: defaults are debatable, see
|
||||||
|
# https://github.com/qgis/QGIS/pull/3607#issuecomment-253971020
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"host=localhost port=5432 active_schema=public")
|
||||||
|
|
||||||
|
obj.setParameterValue('HOST', 'remote')
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"host=remote port=5432 active_schema=public")
|
||||||
|
|
||||||
|
obj.setParameterValue('HOST', '')
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"port=5432 active_schema=public")
|
||||||
|
|
||||||
|
obj.setParameterValue('PORT', '5555')
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"port=5555 active_schema=public")
|
||||||
|
|
||||||
|
obj.setParameterValue('PORT', '')
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"active_schema=public")
|
||||||
|
|
||||||
|
obj.setParameterValue('USER', 'usr')
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"active_schema=public user=usr")
|
||||||
|
|
||||||
|
obj.setParameterValue('PASSWORD', 'pwd')
|
||||||
|
self.assertEquals(obj.getConnectionString(),
|
||||||
|
"password=pwd active_schema=public user=usr")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
nose2.main()
|
nose2.main()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user