Skip to content

Commit af956f6

Browse files
authored
Merge pull request #151 from opengisch/second_dbparams
Store dbparam map in baseconfig instead of the importconfig,
2 parents 89bd57a + e79ead6 commit af956f6

File tree

4 files changed

+21
-17
lines changed

4 files changed

+21
-17
lines changed

modelbaker/db_factory/pg_command_config_manager.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,6 @@ def save_config_in_qsettings(self) -> None:
188188
settings.setValue(
189189
self._settings_base_path + "sslmode", self.configuration.sslmode
190190
)
191-
settings.setValue(
192-
self._settings_base_path + "dbparam_map", self.configuration.dbparam_map
193-
)
194191

195192
def load_config_from_qsettings(self) -> None:
196193
settings = QSettings()
@@ -219,6 +216,3 @@ def load_config_from_qsettings(self) -> None:
219216
self.configuration.sslmode = settings.value(
220217
self._settings_base_path + "sslmode"
221218
)
222-
self.configuration.dbparam_map = settings.value(
223-
self._settings_base_path + "dbparam_map", {}
224-
)

modelbaker/iliwrapper/ili2dbargs.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,19 @@ def _get_db_args(configuration, hide_password=False):
9595
db_args += ["--dbschema", configuration.dbschema or configuration.database]
9696

9797
if configuration.sslmode:
98-
if "sslmode" not in configuration.dbparam_map:
99-
configuration.dbparam_map["sslmode"] = configuration.sslmode
100-
if configuration.dbparam_map:
98+
if "sslmode" not in configuration.base_configuration.dbparam_map:
99+
configuration.base_configuration.dbparam_map[
100+
"sslmode"
101+
] = configuration.sslmode
102+
if configuration.base_configuration.dbparam_map:
101103
temporary_filename = "{}/modelbaker-dbargs.conf".format(QDir.tempPath())
102104
temporary_file = QFile(temporary_filename)
103105
if temporary_file.open(QFile.OpenModeFlag.WriteOnly):
104-
if configuration.dbparam_map:
105-
for key in configuration.dbparam_map.keys():
106+
if configuration.base_configuration.dbparam_map:
107+
for key in configuration.base_configuration.dbparam_map.keys():
106108
temporary_file.write(
107109
"{}={}\n".format(
108-
key, configuration.dbparam_map[key]
110+
key, configuration.base_configuration.dbparam_map[key]
109111
).encode("utf-8")
110112
)
111113
temporary_file.close()

modelbaker/iliwrapper/ili2dbconfig.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class BaseConfiguration:
2828
def __init__(self):
2929
self.super_pg_user = "postgres"
3030
self.super_pg_password = "postgres"
31+
self.dbparam_map = {}
3132

3233
self.custom_model_directories_enabled = False
3334
self.custom_model_directories = ""
@@ -39,6 +40,7 @@ def __init__(self):
3940
def save(self, settings):
4041
settings.setValue("SuperUser", self.super_pg_user)
4142
settings.setValue("SuperPassword", self.super_pg_password)
43+
settings.setValue("CustomDbParameters", self.dbparam_map)
4244
settings.setValue(
4345
"CustomModelDirectoriesEnabled", self.custom_model_directories_enabled
4446
)
@@ -50,6 +52,7 @@ def save(self, settings):
5052
def restore(self, settings):
5153
self.super_pg_user = settings.value("SuperUser", "postgres", str)
5254
self.super_pg_password = settings.value("SuperPassword", "postgres", str)
55+
self.dbparam_map = settings.value("CustomDbParameters", {}, dict)
5356
self.custom_model_directories_enabled = settings.value(
5457
"CustomModelDirectoriesEnabled", False, bool
5558
)
@@ -127,7 +130,6 @@ def __init__(self, other=None):
127130
self.dbfile = ""
128131
self.dbservice = None
129132
self.sslmode = None
130-
self.dbparam_map = {}
131133
self.tool = None
132134
self.ilifile = ""
133135
self.ilimodels = ""

tests/test_import_dbparams.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,25 @@ def test_postgis_withandwithout_params(self):
5353
assert importer.run() == iliimporter.Importer.SUCCESS
5454

5555
# now we add the sslmode "require" by dbparams and it should fail
56-
importer.configuration.dbparam_map = {"sslmode": "require"}
56+
importer.configuration.base_configuration.dbparam_map = {"sslmode": "require"}
5757
assert importer.run() == iliimporter.Importer.ERROR
5858

5959
# change sslmode to "disable" by dbparams and it should succeed again
60-
importer.configuration.dbparam_map = {"sslmode": "disable"}
60+
importer.configuration.base_configuration.dbparam_map = {"sslmode": "disable"}
6161
assert importer.run() == iliimporter.Importer.SUCCESS
6262

6363
# now we add the readonly "true" by dbparams and it should fail
64-
importer.configuration.dbparam_map = {"sslmode": "disable", "readOnly": "true"}
64+
importer.configuration.base_configuration.dbparam_map = {
65+
"sslmode": "disable",
66+
"readOnly": "true",
67+
}
6568
assert importer.run() == iliimporter.Importer.ERROR
6669

6770
# change readonly to "false" by dbparams and it should succeed again
68-
importer.configuration.dbparam_map = {"sslmode": "disable", "readOnly": "false"}
71+
importer.configuration.base_configuration.dbparam_map = {
72+
"sslmode": "disable",
73+
"readOnly": "false",
74+
}
6975
assert importer.run() == iliimporter.Importer.SUCCESS
7076

7177
def print_info(self, text):

0 commit comments

Comments
 (0)