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)
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)
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"]))
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"])
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)
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)))
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)
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"])
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)
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)