Skip to content

Commit 6cd3382

Browse files
author
Dilyan Marinov
committed
vdk-core: add is_default() function to config
Why? There are cases where we want to know we're using the default value for a config option. One such case is configuration presets #3055 What? Add is_default() to the config object. How was this tested? Unit tests What kind of change is this? Feature/non-breaking Signed-off-by: Dilyan Marinov <mdilyan@vmware.com>
1 parent 03dde45 commit 6cd3382

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

projects/vdk-core/src/vdk/internal/core/config.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,19 @@ def is_sensitive(self, key: ConfigKey) -> bool | None:
124124
"""
125125
return self.__config_key_to_sensitive.get(key)
126126

127+
def is_default(self, key: ConfigKey) -> bool:
128+
"""
129+
Return True if the configuration value associated with a given key
130+
is the same as the default value
131+
132+
:param key: the configuration key (e.g db_host, service_uri, etc.)
133+
:return: the value corresponding to the configuration key
134+
"""
135+
key = _normalize_config_key(key)
136+
default_value = self.__config_key_to_default_value.get(key)
137+
value = self.__config_key_to_value.get(key, default_value)
138+
return value == default_value
139+
127140
def list_config_keys(self) -> list[ConfigKey]:
128141
"""
129142
List all added (defined) config keys

projects/vdk-core/tests/vdk/internal/core/test_config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def test_add(key, default_value, show_default_value, description):
2222
assert description is None or description in cfg.get_description(key)
2323
assert default_value == cfg.get_value(key)
2424
assert default_value == cfg[key]
25+
assert cfg.is_default(key)
2526

2627

2728
def test_unknown_key():
@@ -81,6 +82,7 @@ def test_set_value_overrides_default():
8182
builder.add("key", "default_value", False, "key description")
8283
cfg = builder.build()
8384
assert cfg.get_value("key") == "value"
85+
assert cfg.is_default("key") is False
8486

8587

8688
def test_set_value_overrides_default_preserve_types():

0 commit comments

Comments
 (0)