test_settings.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. from django.apps import apps
  2. from django.conf import settings as dj_settings
  3. from django.test import TestCase
  4. from misago.core import threadstore
  5. from misago.core.cache import cache
  6. from misago.conf.gateway import settings as gateway
  7. from misago.conf.dbsettings import db_settings
  8. from misago.conf.migrationutils import migrate_settings_group
  9. from misago.conf.models import SettingsGroup, Setting
  10. class DBSettingsTests(TestCase):
  11. def test_get_existing_setting(self):
  12. """forum_name is defined"""
  13. self.assertEqual(db_settings.forum_name, 'Misago')
  14. with self.assertRaises(AttributeError):
  15. db_settings.MISAGO_MAILER_BATCH_SIZE
  16. class GatewaySettingsTests(TestCase):
  17. def tearDown(self):
  18. cache.clear()
  19. threadstore.clear()
  20. def test_get_existing_setting(self):
  21. """forum_name is defined"""
  22. self.assertEqual(gateway.forum_name, db_settings.forum_name)
  23. self.assertEqual(gateway.MISAGO_MAILER_BATCH_SIZE,
  24. dj_settings.MISAGO_MAILER_BATCH_SIZE)
  25. with self.assertRaises(AttributeError):
  26. gateway.LoremIpsum
  27. def test_setting_lazy(self):
  28. test_group = {
  29. 'key': 'test_group',
  30. 'name': "Test settings",
  31. 'description': "Those are test settings.",
  32. 'settings': (
  33. {
  34. 'setting': 'fish_name',
  35. 'name': "Fish's name",
  36. 'value': "Greedy Eric",
  37. 'field_extra': {
  38. 'min_length': 2,
  39. 'max_length': 255
  40. },
  41. 'is_lazy': False
  42. },
  43. {
  44. 'setting': 'lazy_fish_name',
  45. 'name': "Fish's name",
  46. 'value': "Lazy Eric",
  47. 'field_extra': {
  48. 'min_length': 2,
  49. 'max_length': 255
  50. },
  51. 'is_lazy': True
  52. },
  53. {
  54. 'setting': 'lazy_empty_setting',
  55. 'name': "Fish's name",
  56. 'field_extra': {
  57. 'min_length': 2,
  58. 'max_length': 255
  59. },
  60. 'is_lazy': True
  61. },
  62. )
  63. }
  64. migrate_settings_group(apps, test_group)
  65. self.assertTrue(gateway.lazy_fish_name)
  66. self.assertTrue(db_settings.lazy_fish_name)
  67. self.assertTrue(gateway.lazy_fish_name)
  68. self.assertEqual(gateway.get_lazy_setting('lazy_fish_name'),
  69. 'Lazy Eric')
  70. self.assertTrue(db_settings.lazy_fish_name)
  71. self.assertEqual(db_settings.get_lazy_setting('lazy_fish_name'),
  72. 'Lazy Eric')
  73. self.assertTrue(gateway.lazy_empty_setting is None)
  74. self.assertTrue(db_settings.lazy_empty_setting is None)
  75. with self.assertRaises(ValueError):
  76. db_settings.get_lazy_setting('fish_name')