1
1

test_validator.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. from src.validation.validator import validator
  2. from src.errors.argument_exception import argument_exception
  3. import unittest
  4. class test_validator(unittest.TestCase):
  5. def test_validator_lambda(self):
  6. """Проверить работоспособность validator.check()"""
  7. # Подготовка
  8. vtor = validator()
  9. # Действие
  10. # Проверка
  11. assert vtor.check(10, lambda x: x > 9)
  12. self.assertRaises(argument_exception, lambda: vtor.check(10, lambda x: x < 9))
  13. def test_validator_typeguard(self):
  14. """Проверить работоспособность validator.check_type()"""
  15. # Подготовка
  16. vtor = validator()
  17. # Действие
  18. # Проверка
  19. assert vtor.check_type("", str)
  20. self.assertRaises(argument_exception, lambda: vtor.check_type("", int))
  21. def test_validator_len_exact(self):
  22. """Проверить работоспособность validator.check_length()"""
  23. # Подготовка
  24. vtor = validator()
  25. # Действие
  26. # Проверка
  27. assert vtor.check_length("aa", 2)
  28. self.assertRaises(argument_exception, lambda: vtor.check_length("aa", 1))
  29. self.assertRaises(argument_exception, lambda: vtor.check_length("aa", 3))
  30. def test_validator_len_int(self):
  31. """Проверить работоспособность validator.check_length() при передаче int"""
  32. # Подготовка
  33. vtor = validator()
  34. # Действие
  35. # Проверка
  36. assert vtor.check_length(10, 2)
  37. self.assertRaises(argument_exception, lambda: vtor.check_length(10, 1))
  38. self.assertRaises(argument_exception, lambda: vtor.check_length(10, 3))
  39. def test_validator_len_bound(self):
  40. """Проверить работоспособность validator.check_length_bound()"""
  41. # Подготовка
  42. vtor = validator()
  43. # Действие
  44. # Проверка
  45. # Вхождение в минимум
  46. assert vtor.check_length_bound("abc", 3, 10)
  47. # Вхождение в максимум
  48. assert vtor.check_length_bound("abc", 1, 3)
  49. # Невхождение в максимум
  50. self.assertRaises(
  51. argument_exception, lambda: vtor.check_length_bound("abc", 1, 2)
  52. )
  53. # Невхождение в минимум
  54. self.assertRaises(
  55. argument_exception, lambda: vtor.check_length_bound("abc", 4, 5)
  56. )
  57. # Невхождение в исключительный минимум
  58. self.assertRaises(
  59. argument_exception,
  60. lambda: vtor.check_length_bound("abc", 3, 5, inclusive_min=False),
  61. )
  62. # Невхождение в исключительный максимум
  63. self.assertRaises(
  64. argument_exception,
  65. lambda: vtor.check_length_bound("abc", 1, 3, inclusive_max=False),
  66. )
  67. def test_validator_value_in(self):
  68. """Проверить работоспособность validator.check_value_in()"""
  69. # Подготовка
  70. vtor = validator()
  71. exp = ["alpha", "test", "beta"]
  72. # Действие
  73. # Проверка
  74. # Вхождение в список допустимых
  75. assert vtor.check_value_in("test", exp)
  76. # Невхождение в список допустимых
  77. self.assertRaises(argument_exception, lambda: vtor.check_value_in("gamma", exp))
  78. def test_validator_regex(self):
  79. """Проверить работоспособность validator.check_regex()"""
  80. # Подготовка
  81. vtor = validator()
  82. # Действие
  83. # Проверка
  84. assert vtor.check_regex("abc", ".*b[c]+")
  85. self.assertRaises(
  86. argument_exception, lambda: vtor.check_regex("abc", ".*b[c]+[a]+")
  87. )
  88. def test_validator_collection_all(self):
  89. """Проверить работоспособность validator.check_collection_all()"""
  90. # Подготовка
  91. vtor = validator()
  92. col1 = [5, 6, 7]
  93. col2 = [4, 5, 6]
  94. # Действие
  95. # Проверка
  96. assert vtor.check_collection_all(col1, lambda x: x > 4)
  97. self.assertRaises(
  98. argument_exception, lambda: vtor.check_collection_all(col2, lambda x: x > 4)
  99. )
  100. def test_validator_collection_types_all(self):
  101. """Проверить работоспособность validator.check_collection_types_all()"""
  102. # Подготовка
  103. vtor = validator()
  104. col1 = ["a", "b", "c"]
  105. col2 = ["a", 2, None]
  106. # Действие
  107. # Проверка
  108. assert vtor.check_collection_types_all(col1, str)
  109. self.assertRaises(
  110. argument_exception, lambda: vtor.check_collection_types_all(col2, str)
  111. )