from functools import wraps from .dynamicsettings import DynamicSettings class override_dynamic_settings: def __init__(self, **settings): self._overrides = settings def __enter__(self): DynamicSettings.override_settings(self._overrides) def __exit__(self, *_): DynamicSettings.remove_overrides() def __call__(self, f): @wraps(f) def test_function_wrapper(*args, **kwargs): with self: return f(*args, **kwargs) return test_function_wrapper