def test_target_overrides_only_collected_for_valid_targets(self): lib = { "name": "lib", "target_overrides": { "*": { "target.macros": ["j"] }, "VALID_TARGET": { "target.device_has": ["k"] }, "FILTER_TARGET": { "network-default-interface-type": "ETHERNET" }, }, } expected_macro_override = Override(namespace="target", name="macros", value={"j"}, modifier=None) expected_device_has_override = Override(namespace="target", name="device_has", value={"k"}, modifier=None) conf = source.prepare(lib, target_filters=["VALID_TARGET"]) macro_override, device_has_override, *others = conf["overrides"] assert macro_override == expected_macro_override assert device_has_override == expected_device_has_override assert others == []
def test_cumulative_fields_parsed(self): lib = { "name": "lib", "target_overrides": { "*": { "macros_add": ["MAC"], "target.device_has_add": ["k"], "target.device_has_remove": ["j"] } }, } expected_device_has_add = Override(namespace="target", name="device_has", modifier="add", value={"k"}) expected_device_has_remove = Override(namespace="target", name="device_has", modifier="remove", value={"j"}) expected_macros_add = Override(namespace="lib", name="macros", modifier="add", value={"MAC"}) conf = source.prepare(lib) macros_add_override, device_has_add_override, device_has_remove_override = conf[ "overrides"] assert device_has_add_override == expected_device_has_add assert device_has_remove_override == expected_device_has_remove assert macros_add_override == expected_macros_add
def test_target_overrides_handled(self): conf = Config({ "config": [ ConfigSetting(namespace="target", name="network-default-interface-type", help_text="", value="WIFI") ], "device_has": ["TEST"], }) conf.update({ "overrides": [ Override(namespace="target", name="network-default-interface-type", value="ETHERNET"), Override(namespace="target", name="device_has", value={"OVERRIDDEN"}), ] }) network_iface, *_ = conf["config"] assert network_iface.value == "ETHERNET" assert conf["device_has"] == {"OVERRIDDEN"}
def test_cumulative_fields_can_be_modified(self): conf = Config({"device_has": {"FLASHING_LIGHTS"}, "macros": {"A"}}) conf.update({ "overrides": [ Override(namespace="target", name="device_has", modifier="add", value={"OTHER_STUFF"}), Override(namespace="target", name="device_has", modifier="remove", value={"FLASHING_LIGHTS"}), Override(namespace="lib", name="macros", modifier="remove", value={"A"}), Override(namespace="target", name="macros", modifier="add", value={"B"}), ] }) conf.update({ "overrides": [ Override(namespace="target", name="macros", modifier="add", value={"B"}) ] }) assert conf["device_has"] == {"OTHER_STUFF"} assert conf["macros"] == {"B"}
def test_target_overrides_separate_namespace(self): conf = Config({ "config": [ ConfigSetting(namespace="dontchangeme", name="network-default-interface-type", help_text="", value="WIFI"), ConfigSetting(namespace="changeme", name="network-default-interface-type", help_text="", value="WIFI"), ] }) conf.update({ "overrides": [ Override(namespace="changeme", name="network-default-interface-type", value="ETHERNET") ] }) dontchangeme, changeme, *_ = conf["config"] assert changeme.namespace == "changeme" assert changeme.value == "ETHERNET" assert dontchangeme.namespace == "dontchangeme" assert dontchangeme.value == "WIFI"
def test_lib_overrides_handled(self): conf = Config( { "config": [ ConfigSetting(namespace="lib", name="network-default-interface-type", help_text="", value="WIFI") ], } ) conf.update({"overrides": [Override(namespace="lib", name="network-default-interface-type", value="ETHERNET")]}) network_iface, *_ = conf["config"] assert network_iface.value == "ETHERNET"