Пример #1
0
    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 == []
Пример #2
0
    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
Пример #3
0
    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"}
Пример #4
0
    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"}
Пример #5
0
    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"
Пример #6
0
    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"