test_validator.py 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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(argument_exception, lambda: vtor.check_length_bound("abc", 1, 2))
  51. # Невхождение в минимум
  52. self.assertRaises(argument_exception, lambda: vtor.check_length_bound("abc", 4, 5))
  53. # Невхождение в исключительный минимум
  54. self.assertRaises(argument_exception, lambda: vtor.check_length_bound("abc", 3, 5, inclusive_min=False))
  55. # Невхождение в исключительный максимум
  56. self.assertRaises(argument_exception, lambda: vtor.check_length_bound("abc", 1, 3, inclusive_max=False))
  57. def test_validator_regex(self):
  58. """Проверить работоспособность validator.check_regex()"""
  59. # Подготовка
  60. vtor = validator()
  61. # Действие
  62. # Проверка
  63. assert vtor.check_regex("abc", ".*b[c]+")
  64. self.assertRaises(argument_exception, lambda: vtor.check_regex("abc", ".*b[c]+[a]+"))
  65. def test_validator_collection_all(self):
  66. """Проверить работоспособность validator.check_collection_all()"""
  67. # Подготовка
  68. vtor = validator()
  69. col1 = [5, 6, 7]
  70. col2 = [4, 5, 6]
  71. # Действие
  72. # Проверка
  73. assert vtor.check_collection_all(col1, lambda x: x > 4)
  74. self.assertRaises(argument_exception, lambda: vtor.check_collection_all(col2, lambda x: x > 4))
  75. def test_validator_collection_types_all(self):
  76. """Проверить работоспособность validator.check_collection_types_all()"""
  77. # Подготовка
  78. vtor = validator()
  79. col1 = ["a", "b", "c"]
  80. col2 = ["a", 2, None]
  81. # Действие
  82. # Проверка
  83. assert vtor.check_collection_types_all(col1, str)
  84. self.assertRaises(argument_exception, lambda: vtor.check_collection_types_all(col2, str))