test_overridding_dynamic_settings.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from django.test import TestCase
  2. from misago.conf import CACHE_NAME
  3. from misago.conf.dynamicsettings import DynamicSettings
  4. from misago.conf.models import Setting, SettingsGroup
  5. from . import override_dynamic_settings
  6. cache_versions = {CACHE_NAME: "abcdefgh"}
  7. class OverrideDynamicSettingsTests(TestCase):
  8. def test_dynamic_setting_can_be_overridden_using_context_manager(self):
  9. settings = DynamicSettings(cache_versions)
  10. assert settings.forum_name == "Misago"
  11. with override_dynamic_settings(forum_name="Overrided"):
  12. assert settings.forum_name == "Overrided"
  13. assert settings.forum_name == "Misago"
  14. def test_dynamic_setting_can_be_overridden_using_decorator(self):
  15. @override_dynamic_settings(forum_name="Overrided")
  16. def decorated_function(settings):
  17. return settings.forum_name
  18. settings = DynamicSettings(cache_versions)
  19. assert settings.forum_name == "Misago"
  20. assert decorated_function(settings) == "Overrided"
  21. assert settings.forum_name == "Misago"
  22. def test_lazy_dynamic_setting_can_be_overridden_using_context_manager(self):
  23. settings_group = SettingsGroup.objects.create(key="test", name="Test")
  24. setting = Setting.objects.create(
  25. group=settings_group,
  26. setting="lazy_setting",
  27. name="Lazy setting",
  28. dry_value="Hello",
  29. is_lazy=True,
  30. field_extra={},
  31. )
  32. settings = DynamicSettings(cache_versions)
  33. assert settings.get_lazy_setting_value("lazy_setting") == "Hello"
  34. with override_dynamic_settings(lazy_setting="Overrided"):
  35. assert settings.get_lazy_setting_value("lazy_setting") == "Overrided"
  36. assert settings.get_lazy_setting_value("lazy_setting") == "Hello"
  37. def test_lazy_dynamic_setting_can_be_overridden_using_decorator(self):
  38. @override_dynamic_settings(lazy_setting="Overrided")
  39. def decorated_function(settings):
  40. return settings.get_lazy_setting_value("lazy_setting")
  41. settings_group = SettingsGroup.objects.create(key="test", name="Test")
  42. setting = Setting.objects.create(
  43. group=settings_group,
  44. setting="lazy_setting",
  45. name="Lazy setting",
  46. dry_value="Hello",
  47. is_lazy=True,
  48. field_extra={},
  49. )
  50. settings = DynamicSettings(cache_versions)
  51. assert settings.get_lazy_setting_value("lazy_setting") == "Hello"
  52. assert decorated_function(settings) == "Overrided"
  53. assert settings.get_lazy_setting_value("lazy_setting") == "Hello"