コード例 #1
0
    def test_configure(self):
        config = {"ID": "id"}
        defaults = {}

        class plugin1:
            config = {
                "add": {
                    "PARAM1": "value1",
                    "PARAM2": "value2"
                },
                "set": {
                    "PARAM3": "value3"
                },
                "defaults": {
                    "PARAM4": "value4"
                },
            }

        with unittest.mock.patch.object(plugins.Plugins,
                                        "iter_enabled",
                                        return_value=[("plugin1", plugin1)]):
            tutor_config.load_plugins(config, defaults)

        self.assertEqual(
            {
                "ID": "id",
                "PARAM3": "value3",
                "PLUGIN1_PARAM1": "value1",
                "PLUGIN1_PARAM2": "value2",
            },
            config,
        )
        self.assertEqual({"PLUGIN1_PARAM4": "value4"}, defaults)
コード例 #2
0
ファイル: test_plugins.py プロジェクト: jimmyhu4/tutor
    def test_configure(self) -> None:
        config = {"ID": "id"}
        defaults: Dict[str, Any] = {}

        class plugin1:
            config = {
                "add": {
                    "PARAM1": "value1",
                    "PARAM2": "value2"
                },
                "set": {
                    "PARAM3": "value3"
                },
                "defaults": {
                    "PARAM4": "value4"
                },
            }

        with patch.object(
                plugins.Plugins,
                "iter_enabled",
                return_value=[plugins.BasePlugin("plugin1", plugin1)],
        ):
            tutor_config.load_plugins(config, defaults)

        self.assertEqual(
            {
                "ID": "id",
                "PARAM3": "value3",
                "PLUGIN1_PARAM1": "value1",
                "PLUGIN1_PARAM2": "value2",
            },
            config,
        )
        self.assertEqual({"PLUGIN1_PARAM4": "value4"}, defaults)
コード例 #3
0
    def test_configure_set_random_string(self):
        config = {}

        class plugin1:
            config = {"set": {"PARAM1": "{{ 128|random_string }}"}}

        with unittest.mock.patch.object(plugins.Plugins,
                                        "iter_enabled",
                                        return_value=[("plugin1", plugin1)]):
            tutor_config.load_plugins(config, {})
        self.assertEqual(128, len(config["PARAM1"]))
コード例 #4
0
    def test_configure_default_value_with_previous_definition(self):
        config = {}
        defaults = {"PARAM1": "value"}

        class plugin1:
            config = {"defaults": {"PARAM2": "{{ PARAM1 }}"}}

        with unittest.mock.patch.object(plugins.Plugins,
                                        "iter_enabled",
                                        return_value=[("plugin1", plugin1)]):
            tutor_config.load_plugins(config, defaults)
        self.assertEqual("{{ PARAM1 }}", defaults["PLUGIN1_PARAM2"])
コード例 #5
0
    def test_configure_set_does_not_override(self):
        config = {"ID": "oldid"}

        class plugin1:
            config = {"set": {"ID": "newid"}}

        with unittest.mock.patch.object(plugins.Plugins,
                                        "iter_enabled",
                                        return_value=[("plugin1", plugin1)]):
            tutor_config.load_plugins(config, {})

        self.assertEqual({"ID": "oldid"}, config)
コード例 #6
0
ファイル: test_plugins.py プロジェクト: wey-gu/tutor
    def test_configure_set_random_string(self) -> None:
        config: Config = {}

        class plugin1:
            config: Config = {"set": {"PARAM1": "{{ 128|random_string }}"}}

        with patch.object(
                plugins.Plugins,
                "iter_enabled",
                return_value=[plugins.BasePlugin("plugin1", plugin1)],
        ):
            tutor_config.load_plugins(config, {})
        self.assertEqual(128, len(get_typed(config, "PARAM1", str)))
コード例 #7
0
ファイル: test_plugins.py プロジェクト: wey-gu/tutor
    def test_configure_set_does_not_override(self) -> None:
        config: Config = {"ID": "oldid"}

        class plugin1:
            config: Config = {"set": {"ID": "newid"}}

        with patch.object(
                plugins.Plugins,
                "iter_enabled",
                return_value=[plugins.BasePlugin("plugin1", plugin1)],
        ):
            tutor_config.load_plugins(config, {})

        self.assertEqual({"ID": "oldid"}, config)
コード例 #8
0
ファイル: test_plugins.py プロジェクト: jimmyhu4/tutor
    def test_configure_default_value_with_previous_definition(self) -> None:
        config: Dict[str, Any] = {}
        defaults = {"PARAM1": "value"}

        class plugin1:
            config = {"defaults": {"PARAM2": "{{ PARAM1 }}"}}

        with patch.object(
                plugins.Plugins,
                "iter_enabled",
                return_value=[plugins.BasePlugin("plugin1", plugin1)],
        ):
            tutor_config.load_plugins(config, defaults)
        self.assertEqual("{{ PARAM1 }}", defaults["PLUGIN1_PARAM2"])
コード例 #9
0
    def test_configure_add_twice(self):
        config = {}

        class plugin1:
            config = {"add": {"PARAM1": "{{ 10|random_string }}"}}

        with unittest.mock.patch.object(plugins.Plugins,
                                        "iter_enabled",
                                        return_value=[("plugin1", plugin1)]):
            tutor_config.load_plugins(config, {})
        value1 = config["PLUGIN1_PARAM1"]
        with unittest.mock.patch.object(plugins.Plugins,
                                        "iter_enabled",
                                        return_value=[("plugin1", plugin1)]):
            tutor_config.load_plugins(config, {})
        value2 = config["PLUGIN1_PARAM1"]

        self.assertEqual(10, len(value1))
        self.assertEqual(10, len(value2))
        self.assertEqual(value1, value2)
コード例 #10
0
ファイル: test_plugins.py プロジェクト: wey-gu/tutor
    def test_configure_add_twice(self) -> None:
        config: Config = {}

        class plugin1:
            config: Config = {"add": {"PARAM1": "{{ 10|random_string }}"}}

        with patch.object(
                plugins.Plugins,
                "iter_enabled",
                return_value=[plugins.BasePlugin("plugin1", plugin1)],
        ):
            tutor_config.load_plugins(config, {})
        value1 = get_typed(config, "PLUGIN1_PARAM1", str)
        with patch.object(
                plugins.Plugins,
                "iter_enabled",
                return_value=[plugins.BasePlugin("plugin1", plugin1)],
        ):
            tutor_config.load_plugins(config, {})
        value2 = get_typed(config, "PLUGIN1_PARAM1", str)

        self.assertEqual(10, len(value1))
        self.assertEqual(10, len(value2))
        self.assertEqual(value1, value2)