def test_filter_value_dict(self):
        setting = ContextSetting({})
        setting.name = "value"

        def test_filter(before_value, after_value):
            data = dict(value=before_value)
            self.handler.filter_value(setting, data, *self.args)
            self.assertEqual(data.get("value", None), after_value)

        # filter list values
        test_filter({}, {})
        # When list contains attributes asa tuple of (name, type),
        # Attributes not present in domain should be filtered out
        test_filter(
            {
                ("d1", Discrete): 1,
                ("d1", Continuous): 2,
                ("c1", Continuous): 3,
                ("c1", Discrete): 4
            }, {
                ("d1", Discrete): 1,
                ("c1", Continuous): 3
            })
        # All other values in list should remain
        test_filter([0, [1, 2, 3], "abcd", 5.4], [0, [1, 2, 3], "abcd", 5.4])
Beispiel #2
0
    def test_deprecated_str_as_var(self):
        if LooseVersion(Orange.__version__) >= LooseVersion("3.26"):
            # pragma: no cover
            self.fail("Remove support for variables stored as string settings "
                      "and this test.")

        context = Mock()
        context.attributes = {"foo": 2}
        context.metas = {}
        setting = ContextSetting("")
        setting.name = "setting_name"
        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")
            DomainContextHandler.encode_setting(context, setting, "foo")
            self.assertIn("setting_name", w[0].message.args[0])
    def test_filter_value(self):
        setting = ContextSetting([])
        setting.name = "value"

        def test_filter(before_value, after_value):
            data = dict(value=before_value)
            self.handler.filter_value(setting, data, *self.args)
            self.assertEqual(data.get("value", None), after_value)

        # filter list values
        test_filter([], [])
        # When list contains attributes asa tuple of (name, type),
        # Attributes not present in domain should be filtered out
        test_filter([("d1", Discrete), ("d1", Continuous),
                     ("c1", Continuous), ("c1", Discrete)],
                    [("d1", Discrete), ("c1", Continuous)])
        # All other values in list should remain
        test_filter([0, [1, 2, 3], "abcd", 5.4], [0, [1, 2, 3], "abcd", 5.4])