chore: add missing test fixture and changelog entry

We somehow forgot to include these files in a previous commit...
This commit is contained in:
Régis Behmo 2024-02-08 11:20:59 +01:00
parent 60a5f25c9b
commit 487ca89885
2 changed files with 18 additions and 0 deletions

View File

@ -0,0 +1,2 @@
- [Bugfix] Actually update the environment on `tutor plugins enable ...`. (by @regisb)
- [Feature] Introduce a `tutor.hooks.lru_cache` decorator that is automatically cleared whenever a plugin is loaded or unloaded. This is useful, in particular when a plugin implements a costly function that depends on tutor hooks. (by @regisb)

16
tests/test_plugins.py Normal file
View File

@ -0,0 +1,16 @@
from __future__ import annotations
from tests.helpers import PluginsTestCase
from tutor import hooks, plugins
class PluginsTests(PluginsTestCase):
def test_env_patches_updated_on_new_plugin(self) -> None:
self.assertEqual([], list(plugins.iter_patches("mypatch")))
hooks.Filters.ENV_PATCHES.add_item(("mypatch", "hello!"))
# env patches cache should be cleared on new plugin
hooks.Actions.PLUGIN_LOADED.do("dummyplugin")
self.assertEqual(["hello!"], list(plugins.iter_patches("mypatch")))