test_hydrators.py 4.1 KB

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