From 5fa5abf1e2c2fc53edd5f52739c70b8ec998d641 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Mon, 17 Aug 2026 21:00:34 +0300 Subject: [PATCH 1/3] New test for SetOptionValueItem+SetOptionValue --- .../set_ValueItem/test_set001__common.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py b/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py index afc24c3..4574cf9 100644 --- a/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py +++ b/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py @@ -8,6 +8,7 @@ from src.implementation.v00.configuration_base import PostgresConfigurationSetOptionValueEventID as PgCfg_SetOptionEventID from src.implementation.v00.configuration_base import PostgresConfigurationFileLine_Base as PgCfg_FileLine_Base from src.implementation.v00.configuration_base import PostgresConfigurationTopLevelFile_Base as PgCfg_TopLevelFile_Base +from src.implementation.v00.configuration_base import PostgresConfigurationOption_Base as PgCfg_Option_Base from src.implementation.v00.configuration_base import PgCfgModel__ConfigurationData @@ -135,5 +136,31 @@ def test_003__set_value_item_with_bad_type(self, request: pytest.FixtureRequest) assert r1.Option.get_Value() == ["biha"] return + # -------------------------------------------------------------------- + def test_004(self, request: pytest.FixtureRequest): + assert isinstance(request, pytest.FixtureRequest) + + C_OPT_NAME = "shared_preload_libraries" + + rootTmpDir = TestServices.GetRootTmpDir() + assert type(rootTmpDir) is str + + cfg = PgCfg_Std(rootTmpDir) + assert type(cfg.m_Data) is PgCfgModel__ConfigurationData + assert cfg.m_Data.m_DataDir == rootTmpDir + + r1 = cfg.SetOptionValueItem(C_OPT_NAME, "biha") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert r1.Option.get_Value() == ["biha"] + + r1 = cfg.SetOptionValueItem(C_OPT_NAME, "proxima") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert r1.Option.get_Value() == ["biha", "proxima"] + + r1 = cfg.SetOptionValue(C_OPT_NAME, ["proxima"]) + assert isinstance(r1.Option, PgCfg_Option_Base) + assert r1.Option.get_Value() == ["proxima"] + return + # ////////////////////////////////////////////////////////////////////////////// From d4bc961c2444275a44a266f5bbd1516182edc119 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Mon, 17 Aug 2026 22:44:46 +0300 Subject: [PATCH 2/3] Allow to setup direct value into complex property (shared_preload_libraries) --- src/implementation/v00/configuration_std.py | 2 +- .../set_ValueItem/test_set001__common.py | 34 +++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/implementation/v00/configuration_std.py b/src/implementation/v00/configuration_std.py index 6b77252..fc433b5 100644 --- a/src/implementation/v00/configuration_std.py +++ b/src/implementation/v00/configuration_std.py @@ -292,7 +292,7 @@ def __init__( sm_SingleInstance__OptionHandlerToPrepareSetValue__Std__UniqueStrList, sm_SingleInstance__OptionHandlerToPrepareGetValue__Std__UniqueStrList, sm_SingleInstance__OptionHandlerToPrepareSetValueItem__Std__Str, - None, + sm_SingleInstance__OptionHandlerToSetValue__Std__Simple, sm_SingleInstance__OptionHandlerToGetValue__Std__UnionList, sm_SingleInstance__OptionHandlerToAddOption__Std, sm_SingleInstance__OptionHandlerToSetValueItem__Std__Unique, diff --git a/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py b/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py index 4574cf9..f0275e7 100644 --- a/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py +++ b/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py @@ -137,7 +137,7 @@ def test_003__set_value_item_with_bad_type(self, request: pytest.FixtureRequest) return # -------------------------------------------------------------------- - def test_004(self, request: pytest.FixtureRequest): + def test_004_set_list(self, request: pytest.FixtureRequest): assert isinstance(request, pytest.FixtureRequest) C_OPT_NAME = "shared_preload_libraries" @@ -155,12 +155,42 @@ def test_004(self, request: pytest.FixtureRequest): r1 = cfg.SetOptionValueItem(C_OPT_NAME, "proxima") assert isinstance(r1.Option, PgCfg_Option_Base) - assert r1.Option.get_Value() == ["biha", "proxima"] + assert sorted(r1.Option.get_Value()) == ["biha", "proxima"] r1 = cfg.SetOptionValue(C_OPT_NAME, ["proxima"]) assert isinstance(r1.Option, PgCfg_Option_Base) assert r1.Option.get_Value() == ["proxima"] return + # -------------------------------------------------------------------- + def test_005__set_str(self, request: pytest.FixtureRequest): + assert isinstance(request, pytest.FixtureRequest) + + C_OPT_NAME = "shared_preload_libraries" + + rootTmpDir = TestServices.GetRootTmpDir() + assert type(rootTmpDir) is str + + cfg = PgCfg_Std(rootTmpDir) + assert type(cfg.m_Data) is PgCfgModel__ConfigurationData + assert cfg.m_Data.m_DataDir == rootTmpDir + + r1 = cfg.SetOptionValueItem(C_OPT_NAME, "biha") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert r1.Option.get_Value() == ["biha"] + + r1 = cfg.SetOptionValueItem(C_OPT_NAME, "proxima") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert sorted(r1.Option.get_Value()) == ["biha", "proxima"] + + r1 = cfg.SetOptionValue(C_OPT_NAME, "proxima, proxima") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert r1.Option.get_Value() == ["proxima"] + + r1 = cfg.SetOptionValue(C_OPT_NAME, "proxima, proxima, biha") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert sorted(r1.Option.get_Value()) == ["biha", "proxima"] + return + # ////////////////////////////////////////////////////////////////////////////// From 619b715ec0d816e47ee5dd91a543ddb4253f8318 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Mon, 17 Aug 2026 23:01:19 +0300 Subject: [PATCH 3/3] test_005__set_str is updated --- .../set_ValueItem/test_set001__common.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py b/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py index f0275e7..b8952ae 100644 --- a/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py +++ b/tests/implementation/v00/configuration_std/Objects/PostgresConfigurationOption/set_ValueItem/test_set001__common.py @@ -13,6 +13,7 @@ from src.implementation.v00.configuration_base import PgCfgModel__ConfigurationData from .......TestServices import TestServices +from .......ErrorMessageBuilder import ErrorMessageBuilder # fmt: on import pytest @@ -190,6 +191,20 @@ def test_005__set_str(self, request: pytest.FixtureRequest): r1 = cfg.SetOptionValue(C_OPT_NAME, "proxima, proxima, biha") assert isinstance(r1.Option, PgCfg_Option_Base) assert sorted(r1.Option.get_Value()) == ["biha", "proxima"] + + r1 = cfg.SetOptionValueItem(C_OPT_NAME, "biha") + assert isinstance(r1.Option, PgCfg_Option_Base) + assert sorted(r1.Option.get_Value()) == ["biha", "proxima"] + + with pytest.raises(expected_exception=Exception) as x: + r1 = cfg.SetOptionValue(C_OPT_NAME, 123) + + assert str(x.value) == ErrorMessageBuilder.BadOptionValueType( + C_OPT_NAME, + int, + list, + ) + return