test_hydrators.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. from django.test import TestCase
  2. from misago.conf.hydrators import hydrate_value, dehydrate_value
  3. from misago.conf.models import Setting
  4. class HydratorsTests(TestCase):
  5. serialized_rollback = True
  6. def test_hydrate_dehydrate_string(self):
  7. """string value is correctly hydrated and dehydrated"""
  8. wet_value = 'Ni!'
  9. dry_value = dehydrate_value('string', wet_value)
  10. self.assertEqual(hydrate_value('string', dry_value), wet_value)
  11. def test_hydrate_dehydrate_bool(self):
  12. """bool values are correctly hydrated and dehydrated"""
  13. wet_value = True
  14. dry_value = dehydrate_value('bool', wet_value)
  15. self.assertEqual(hydrate_value('bool', dry_value), wet_value)
  16. wet_value = False
  17. dry_value = dehydrate_value('bool', wet_value)
  18. self.assertEqual(hydrate_value('bool', dry_value), wet_value)
  19. def test_hydrate_dehydrate_int(self):
  20. """int value is correctly hydrated and dehydrated"""
  21. wet_value = 9001
  22. dry_value = dehydrate_value('int', wet_value)
  23. self.assertEqual(hydrate_value('int', dry_value), wet_value)
  24. def test_hydrate_dehydrate_list(self):
  25. """list is correctly hydrated and dehydrated"""
  26. wet_value = ['foxtrot', 'uniform', 'hotel']
  27. dry_value = dehydrate_value('list', wet_value)
  28. self.assertEqual(hydrate_value('list', dry_value), wet_value)
  29. def test_hydrate_dehydrate_empty_list(self):
  30. """empty list is correctly hydrated and dehydrated"""
  31. wet_value = []
  32. dry_value = dehydrate_value('list', wet_value)
  33. self.assertEqual(hydrate_value('list', dry_value), wet_value)
  34. def test_value_error(self):
  35. """unsupported type raises ValueError"""
  36. with self.assertRaises(ValueError):
  37. hydrate_value('eric', None)
  38. with self.assertRaises(ValueError):
  39. dehydrate_value('eric', None)
  40. class HydratorsModelTests(TestCase):
  41. serialized_rollback = True
  42. def test_hydrate_dehydrate_string(self):
  43. """string value is correctly hydrated and dehydrated in model"""
  44. setting = Setting(python_type='string')
  45. wet_value = 'Lorem Ipsum'
  46. dry_value = dehydrate_value(setting.python_type, wet_value)
  47. setting.value = wet_value
  48. self.assertEqual(setting.value, wet_value)
  49. self.assertEqual(setting.dry_value, dry_value)
  50. def test_hydrate_dehydrate_bool(self):
  51. """bool values are correctly hydrated and dehydrated in model"""
  52. setting = Setting(python_type='bool')
  53. wet_value = True
  54. dry_value = dehydrate_value(setting.python_type, wet_value)
  55. setting.value = wet_value
  56. self.assertEqual(setting.value, wet_value)
  57. self.assertEqual(setting.dry_value, dry_value)
  58. wet_value = False
  59. dry_value = dehydrate_value(setting.python_type, wet_value)
  60. setting.value = wet_value
  61. self.assertEqual(setting.value, wet_value)
  62. self.assertEqual(setting.dry_value, dry_value)
  63. def test_hydrate_dehydrate_int(self):
  64. """int value is correctly hydrated and dehydrated in model"""
  65. setting = Setting(python_type='int')
  66. wet_value = 9001
  67. dry_value = dehydrate_value(setting.python_type, wet_value)
  68. setting.value = wet_value
  69. self.assertEqual(setting.value, wet_value)
  70. self.assertEqual(setting.dry_value, dry_value)
  71. def test_hydrate_dehydrate_list(self):
  72. """list is correctly hydrated and dehydrated in model"""
  73. setting = Setting(python_type='list')
  74. wet_value = ['Lorem', 'Ipsum', 'Dolor', 'Met']
  75. dry_value = dehydrate_value(setting.python_type, wet_value)
  76. setting.value = wet_value
  77. self.assertEqual(setting.value, wet_value)
  78. self.assertEqual(setting.dry_value, dry_value)
  79. def test_hydrate_dehydrate_empty_list(self):
  80. """empty list is correctly hydrated and dehydrated in model"""
  81. setting = Setting(python_type='list')
  82. wet_value = []
  83. dry_value = dehydrate_value(setting.python_type, wet_value)
  84. setting.value = wet_value
  85. self.assertEqual(setting.value, wet_value)
  86. self.assertEqual(setting.dry_value, dry_value)