test_overridding_dynamic_settings.py 2.6 KB

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