update to support consistently retrieving the last set configuration
This commit is contained in:
parent
52bfd1edf4
commit
044e7de5e3
2 changed files with 29 additions and 2 deletions
|
@ -154,6 +154,8 @@ class ConfigurableManager(object):
|
||||||
def set_configs(self, config, node_id=_default_node, config_type=_default_type):
|
def set_configs(self, config, node_id=_default_node, config_type=_default_type):
|
||||||
logger.debug("setting config for node(%s) type(%s): %s", node_id, config_type, config)
|
logger.debug("setting config for node(%s) type(%s): %s", node_id, config_type, config)
|
||||||
node_configs = self.get_all_configs(node_id)
|
node_configs = self.get_all_configs(node_id)
|
||||||
|
if config_type in node_configs:
|
||||||
|
node_configs.pop(config_type)
|
||||||
node_configs[config_type] = config
|
node_configs[config_type] = config
|
||||||
|
|
||||||
def get_config(self, _id, node_id=_default_node, config_type=_default_type):
|
def get_config(self, _id, node_id=_default_node, config_type=_default_type):
|
||||||
|
@ -168,4 +170,4 @@ class ConfigurableManager(object):
|
||||||
|
|
||||||
def get_all_configs(self, node_id=_default_node):
|
def get_all_configs(self, node_id=_default_node):
|
||||||
logger.debug("getting all configs for node(%s)", node_id)
|
logger.debug("getting all configs for node(%s)", node_id)
|
||||||
return self._configuration_maps.setdefault(node_id, {})
|
return self._configuration_maps.setdefault(node_id, OrderedDict())
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
from core.conf import ConfigurableManager, ConfigurableOptions, Configuration
|
from random import shuffle
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from core.conf import ConfigurableManager
|
||||||
|
from core.conf import ConfigurableOptions
|
||||||
|
from core.conf import Configuration
|
||||||
from core.enumerations import ConfigDataTypes
|
from core.enumerations import ConfigDataTypes
|
||||||
|
|
||||||
|
|
||||||
|
@ -148,3 +154,22 @@ class TestConf:
|
||||||
assert len(node_all_configs) == 2
|
assert len(node_all_configs) == 2
|
||||||
assert config_one in node_all_configs
|
assert config_one in node_all_configs
|
||||||
assert config_two in node_all_configs
|
assert config_two in node_all_configs
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("_", xrange(10))
|
||||||
|
def test_config_last_key(self, _):
|
||||||
|
# given
|
||||||
|
config_manager = ConfigurableManager()
|
||||||
|
config = {1: 2}
|
||||||
|
node_id = 1
|
||||||
|
config_types = [1, 2, 3]
|
||||||
|
shuffle(config_types)
|
||||||
|
config_manager.set_configs(config, node_id=node_id, config_type=config_types[0])
|
||||||
|
config_manager.set_configs(config, node_id=node_id, config_type=config_types[1])
|
||||||
|
config_manager.set_configs(config, node_id=node_id, config_type=config_types[2])
|
||||||
|
|
||||||
|
# when
|
||||||
|
keys = config_manager.get_all_configs(node_id=node_id).keys()
|
||||||
|
|
||||||
|
# then
|
||||||
|
assert keys
|
||||||
|
assert keys[-1] == config_types[2]
|
||||||
|
|
Loading…
Reference in a new issue