test_hydrators.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import pytest
  2. from ..hydrators import dehydrate_value, hydrate_value
  3. def test_string_value_can_be_dehydrated_and_hydrated_back():
  4. assert hydrate_value("string", dehydrate_value("string", "test")) == "test"
  5. def test_int_value_is_dehydrated_to_string():
  6. assert dehydrate_value("string", 123) == "123"
  7. def test_bool_false_value_can_be_dehydrated_and_hydrated_back():
  8. assert hydrate_value("bool", dehydrate_value("bool", False)) is False
  9. def test_bool_true_value_can_be_dehydrated_and_hydrated_back():
  10. assert hydrate_value("bool", dehydrate_value("bool", True)) is True
  11. def test_bool_none_value_can_be_dehydrated_and_hydrated_back_to_false():
  12. assert hydrate_value("bool", dehydrate_value("bool", None)) is False
  13. def test_int_value_can_be_dehydrated_and_hydrated_back():
  14. assert hydrate_value("int", dehydrate_value("int", 123)) == 123
  15. def test_empty_int_value_can_be_dehydrated_and_hydrated_back():
  16. assert hydrate_value("int", dehydrate_value("int", 0)) == 0
  17. def test_none_int_value_is_dehydrated_to_zero_string():
  18. assert dehydrate_value("int", None) == "0"
  19. def test_none_int_value_is_hydrated_to_zero():
  20. assert hydrate_value("int", None) == 0
  21. def test_empty_int_value_is_hydrated_to_zero():
  22. assert hydrate_value("int", "") == 0
  23. def test_list_value_can_be_dehydrated_and_hydrated_back():
  24. assert hydrate_value("list", dehydrate_value("list", ["a", "b"])) == ["a", "b"]
  25. def test_single_item_list_value_can_be_dehydrated_and_hydrated_back():
  26. assert hydrate_value("list", dehydrate_value("list", ["a"])) == ["a"]
  27. def test_empty_list_value_can_be_dehydrated_and_hydrated_back():
  28. assert hydrate_value("list", dehydrate_value("list", [])) == []
  29. def test_none_list_value_can_be_dehydrated_and_hydrated_to_empty_list():
  30. assert hydrate_value("list", dehydrate_value("list", None)) == []
  31. def test_empty_list_value_is_hydrated_to_empty_list():
  32. assert hydrate_value("list", "") == []
  33. def test_none_list_value_is_hydrated_to_empty_list():
  34. assert hydrate_value("list", None) == []
  35. def test_none_list_value_is_dehydrated_to_empty_string():
  36. assert dehydrate_value("list", None) == ""
  37. def test_value_error_is_raised_on_unsupported_type_dehydration():
  38. with pytest.raises(ValueError):
  39. dehydrate_value("unsupported", None)
  40. def test_value_error_is_raised_on_unsupported_type_hydration():
  41. with pytest.raises(ValueError):
  42. hydrate_value("unsupported", None)