Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/implementation/v00/configuration_std.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,12 @@
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

from .......TestServices import TestServices
from .......ErrorMessageBuilder import ErrorMessageBuilder
# fmt: on

import pytest
Expand Down Expand Up @@ -135,5 +137,75 @@ def test_003__set_value_item_with_bad_type(self, request: pytest.FixtureRequest)
assert r1.Option.get_Value() == ["biha"]
return

# --------------------------------------------------------------------
def test_004_set_list(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"])
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"]

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


# //////////////////////////////////////////////////////////////////////////////