Exemple #1
0
    def test_configure(self) -> None:
        plugins_v0.DictPlugin({
            "name": "plugin1",
            "config": {
                "add": {
                    "PARAM1": "value1",
                    "PARAM2": "value2"
                },
                "set": {
                    "PARAM3": "value3"
                },
                "defaults": {
                    "PARAM4": "value4"
                },
            },
        })
        plugins.load("plugin1")

        base = tutor_config.get_base()
        defaults = tutor_config.get_defaults()

        self.assertEqual(base["PARAM3"], "value3")
        self.assertEqual(base["PLUGIN1_PARAM1"], "value1")
        self.assertEqual(base["PLUGIN1_PARAM2"], "value2")
        self.assertEqual(defaults["PLUGIN1_PARAM4"], "value4")
    def test_configure(self) -> None:
        class plugin1:
            config: 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)],
        ):
            base = tutor_config.get_base({})
            defaults = tutor_config.get_defaults({})

        self.assertEqual(base["PARAM3"], "value3")
        self.assertEqual(base["PLUGIN1_PARAM1"], "value1")
        self.assertEqual(base["PLUGIN1_PARAM2"], "value2")
        self.assertEqual(defaults["PLUGIN1_PARAM4"], "value4")
Exemple #3
0
    def test_merge_not_render(self) -> None:
        config: Config = {}
        base = tutor_config.get_base({})
        with patch.object(tutor_config.utils,
                          "random_string",
                          return_value="abcd"):
            tutor_config.merge(config, base)

        # Check that merge does not perform a rendering
        self.assertNotEqual("abcd", config["MYSQL_ROOT_PASSWORD"])
    def test_configure_set_random_string(self) -> None:
        class plugin1:
            config: Config = {"set": {"PARAM1": "{{ 128|random_string }}"}}

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

        self.assertEqual(128, len(get_typed(config, "PARAM1", str)))
Exemple #5
0
    def test_configure_set_random_string(self) -> None:
        plugins_v0.DictPlugin({
            "name": "plugin1",
            "config": {
                "set": {
                    "PARAM1": "{{ 128|random_string }}"
                }
            },
        })
        plugins.load("plugin1")
        config = tutor_config.get_base()
        tutor_config.render_full(config)

        self.assertEqual(128, len(get_typed(config, "PARAM1", str)))