from src.validation.validator import validator from src.errors.argument_exception import argument_exception import unittest class test_validator(unittest.TestCase): def test_validator_lambda(self): """Проверить работоспособность validator.check()""" # Подготовка vtor = validator() # Действие # Проверка assert vtor.check(10, lambda x: x > 9) self.assertRaises(argument_exception, lambda: vtor.check(10, lambda x: x < 9)) def test_validator_typeguard(self): """Проверить работоспособность validator.check_type()""" # Подготовка vtor = validator() # Действие # Проверка assert vtor.check_type("", str) self.assertRaises(argument_exception, lambda: vtor.check_type("", int)) def test_validator_len_exact(self): """Проверить работоспособность validator.check_length()""" # Подготовка vtor = validator() # Действие # Проверка assert vtor.check_length("aa", 2) self.assertRaises(argument_exception, lambda: vtor.check_length("aa", 1)) self.assertRaises(argument_exception, lambda: vtor.check_length("aa", 3)) def test_validator_len_int(self): """Проверить работоспособность validator.check_length() при передаче int""" # Подготовка vtor = validator() # Действие # Проверка assert vtor.check_length(10, 2) self.assertRaises(argument_exception, lambda: vtor.check_length(10, 1)) self.assertRaises(argument_exception, lambda: vtor.check_length(10, 3)) def test_validator_len_bound(self): """Проверить работоспособность validator.check_length_bound()""" # Подготовка vtor = validator() # Действие # Проверка # Вхождение в минимум assert vtor.check_length_bound("abc", 3, 10) # Вхождение в максимум assert vtor.check_length_bound("abc", 1, 3) # Невхождение в максимум self.assertRaises( argument_exception, lambda: vtor.check_length_bound("abc", 1, 2) ) # Невхождение в минимум self.assertRaises( argument_exception, lambda: vtor.check_length_bound("abc", 4, 5) ) # Невхождение в исключительный минимум self.assertRaises( argument_exception, lambda: vtor.check_length_bound("abc", 3, 5, inclusive_min=False), ) # Невхождение в исключительный максимум self.assertRaises( argument_exception, lambda: vtor.check_length_bound("abc", 1, 3, inclusive_max=False), ) def test_validator_value_in(self): """Проверить работоспособность validator.check_value_in()""" # Подготовка vtor = validator() exp = ["alpha", "test", "beta"] # Действие # Проверка # Вхождение в список допустимых assert vtor.check_value_in("test", exp) # Невхождение в список допустимых self.assertRaises(argument_exception, lambda: vtor.check_value_in("gamma", exp)) def test_validator_regex(self): """Проверить работоспособность validator.check_regex()""" # Подготовка vtor = validator() # Действие # Проверка assert vtor.check_regex("abc", ".*b[c]+") self.assertRaises( argument_exception, lambda: vtor.check_regex("abc", ".*b[c]+[a]+") ) def test_validator_collection_all(self): """Проверить работоспособность validator.check_collection_all()""" # Подготовка vtor = validator() col1 = [5, 6, 7] col2 = [4, 5, 6] # Действие # Проверка assert vtor.check_collection_all(col1, lambda x: x > 4) self.assertRaises( argument_exception, lambda: vtor.check_collection_all(col2, lambda x: x > 4) ) def test_validator_collection_types_all(self): """Проверить работоспособность validator.check_collection_types_all()""" # Подготовка vtor = validator() col1 = ["a", "b", "c"] col2 = ["a", 2, None] # Действие # Проверка assert vtor.check_collection_types_all(col1, str) self.assertRaises( argument_exception, lambda: vtor.check_collection_types_all(col2, str) )