|
@@ -1,5 +1,6 @@
|
|
|
from src.settings import settings
|
|
|
from src.settings_manager import settings_manager
|
|
|
+from src.settings_validator import settings_validator
|
|
|
import unittest, os, random
|
|
|
|
|
|
|
|
@@ -7,10 +8,8 @@ class test_settings(unittest.TestCase):
|
|
|
projdir = os.path.dirname(__file__) + "/.."
|
|
|
|
|
|
|
|
|
- #
|
|
|
- # Провеиить корректность заполнения поля first_name
|
|
|
- #
|
|
|
- def test_check_first_name(self):
|
|
|
+ def first_name_setter(self):
|
|
|
+ """Проверить корректность заполнения поля first_name"""
|
|
|
# Подготовка
|
|
|
item = settings()
|
|
|
|
|
@@ -20,10 +19,8 @@ class test_settings(unittest.TestCase):
|
|
|
# Проверка
|
|
|
assert item.first_name == "a"
|
|
|
|
|
|
- #
|
|
|
- # Проверить, что settings_manager инстанциируется только один раз
|
|
|
- #
|
|
|
- def test_check_settings_manager_singleton(self):
|
|
|
+ def settings_manager_singleton(self):
|
|
|
+ """Проверить, что settings_manager имплементирует singleton"""
|
|
|
# Подготовка
|
|
|
man1 = settings_manager()
|
|
|
man2 = settings_manager()
|
|
@@ -33,11 +30,8 @@ class test_settings(unittest.TestCase):
|
|
|
# Проверка
|
|
|
assert man1 is man2
|
|
|
|
|
|
-
|
|
|
- #
|
|
|
- # Проверить корректность загрузки настроек
|
|
|
- #
|
|
|
- def test_check_open_settings(self):
|
|
|
+ def open_settings(self):
|
|
|
+ """Проверить корректность загрузки настроек"""
|
|
|
# Подготовка
|
|
|
man = settings_manager()
|
|
|
|
|
@@ -47,11 +41,8 @@ class test_settings(unittest.TestCase):
|
|
|
# Проверка
|
|
|
assert result == True
|
|
|
|
|
|
-
|
|
|
- #
|
|
|
- # Проверить, что все поля настроек не пусты
|
|
|
- #
|
|
|
- def test_check_settings_fields_nonempty(self):
|
|
|
+ def settings_fields_nonempty(self):
|
|
|
+ """Проверить, что все поля настроек не пусты после считывания настроек"""
|
|
|
# Подготовка
|
|
|
man = settings_manager()
|
|
|
settings = None
|
|
@@ -64,13 +55,9 @@ class test_settings(unittest.TestCase):
|
|
|
# Проверка
|
|
|
for key in dict.keys():
|
|
|
assert len(str(dict[key])) != 0
|
|
|
-
|
|
|
-
|
|
|
- #
|
|
|
- # Проверить, что менеджер настроек может открыть файл
|
|
|
- # с любым названием и в любой папке
|
|
|
- #
|
|
|
- def test_settings_any_filename(self):
|
|
|
+
|
|
|
+ def settings_any_filename(self):
|
|
|
+ """Проверить, что менеджер настроек может открыть файл с любым названием и в любой папке"""
|
|
|
# Подготовка
|
|
|
if not os.path.exists(f"{self.projdir}/.test_data"):
|
|
|
os.mkdir(f"{self.projdir}/.test_data")
|
|
@@ -96,4 +83,73 @@ class test_settings(unittest.TestCase):
|
|
|
|
|
|
# Очистка
|
|
|
os.remove(filename)
|
|
|
- os.removedirs(dirname)
|
|
|
+ os.removedirs(dirname)
|
|
|
+
|
|
|
+
|
|
|
+ def settings_validator_typeguard(self):
|
|
|
+ """Проверить работоспособность settings_validation.check_type()"""
|
|
|
+ # Подготовка
|
|
|
+ validator = settings_validator()
|
|
|
+
|
|
|
+ # Действие
|
|
|
+
|
|
|
+ # Проверка
|
|
|
+ assert validator.check_type("", str)
|
|
|
+ self.assertRaises(TypeError, lambda: validator.check_type("", int))
|
|
|
+
|
|
|
+ def settings_validator_len_exact(self):
|
|
|
+ """Проверить работоспособность settings_validator.check_length()"""
|
|
|
+ # Подготовка
|
|
|
+ validator = settings_validator()
|
|
|
+
|
|
|
+ # Действие
|
|
|
+
|
|
|
+ # Проверка
|
|
|
+ assert validator.check_length("aa", 2)
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length("aa", 1))
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length("aa", 3))
|
|
|
+
|
|
|
+ def settings_validator_len_int(self):
|
|
|
+ """Проверить работоспособность settings_validator.check_length() при передаче int"""
|
|
|
+ # Подготовка
|
|
|
+ validator = settings_validator()
|
|
|
+
|
|
|
+ # Действие
|
|
|
+
|
|
|
+ # Проверка
|
|
|
+ assert validator.check_length(10, 2)
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length(10, 1))
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length(10, 3))
|
|
|
+
|
|
|
+ def settings_validator_len_bound(self):
|
|
|
+ """Проверить работоспособность settings_validator.check_length_bound()"""
|
|
|
+ # Подготовка
|
|
|
+ validator = settings_validator()
|
|
|
+
|
|
|
+ # Действие
|
|
|
+
|
|
|
+ # Проверка
|
|
|
+
|
|
|
+ # Вхождение в минимум
|
|
|
+ assert validator.check_length_bound("abc", 3, 10)
|
|
|
+ # Вхождение в максимум
|
|
|
+ assert validator.check_length_bound("abc", 1, 3)
|
|
|
+ # Невхождение в максимум
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length_bound("abc", 1, 2))
|
|
|
+ # Невхождение в минимум
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length_bound("abc", 4, 5))
|
|
|
+ # Невхождение в исключительный минимум
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length_bound("abc", 3, 5, inclusive_min=False))
|
|
|
+ # Невхождение в исключительный максимум
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_length_bound("abc", 1, 3, inclusive_max=False))
|
|
|
+
|
|
|
+ def settings_validator_regex(self):
|
|
|
+ """Проверить работоспособность settings_validator.check_regex()"""
|
|
|
+ # Подготовка
|
|
|
+ validator = settings_validator()
|
|
|
+
|
|
|
+ # Действие
|
|
|
+
|
|
|
+ # Проверка
|
|
|
+ assert validator.check_regex("abc", ".*b[c]+")
|
|
|
+ self.assertRaises(ValueError, lambda: validator.check_regex("abc", ".*b[c]+[a]+"))
|