Browse Source

Merge branch 'feature/settings_validator' of 1ffy/sp-1 into master

1ffy 1 year ago
parent
commit
a963fea548
3 changed files with 14 additions and 40 deletions
  1. 2 28
      src/settings.py
  2. 1 1
      src/validator.py
  3. 11 11
      tests/test_settings.py

+ 2 - 28
src/settings.py

@@ -1,4 +1,4 @@
-from src.settings_validator import settings_validator
+from src.validator import validator
 
 
 class settings:
@@ -22,32 +22,7 @@ class settings:
     __vtor = None
 
     def __init__(self):
-        self.__vtor = settings_validator()
-
-
-    def __validate(value, exp_type=None, length=None):
-        """
-            Валидация аргумента по типу и/или длине
-        Args:
-            value (any): Передаваемый аргумент
-            type (object): Ожидаемый тип
-            length (int): Ожидаемая длина
-        Raises:
-            TypeError: Некорректный тип аргумента
-            ValueError: Некорректная длина аргумента
-        Returns:
-            True или Exception взависимости от результата валидации
-        """
-
-        # Проверяем соответствие типа
-        if exp_type is not None and not isinstance(value, exp_type):
-            raise TypeError("Некорректный тип аргумента")
-        
-        # Проверяем соответствие длины
-        if length is not None and len(str(value)) != length:
-            raise ValueError("Некорректная длина аргумента")
-        
-        return True
+        self.__vtor = validator()
     
     @property
     def first_name(self):
@@ -105,7 +80,6 @@ class settings:
             ValueError: Некорректная длина аргумента
         """
 
-        settings.__validate(value, int, 9)
         self.__vtor.check_type(value, int)
         self.__vtor.check_length(value, 9)
 

+ 1 - 1
src/settings_validator.py → src/validator.py

@@ -1,6 +1,6 @@
 import re
 
-class settings_validator:
+class validator:
     def check_type(self, value, exp_type):
         """
             Валидация аргумента по типу

+ 11 - 11
tests/test_settings.py

@@ -1,6 +1,6 @@
 from src.settings import settings
 from src.settings_manager import settings_manager
-from src.settings_validator import settings_validator
+from src.validator import validator as settings_validator
 import unittest, os, random
     
 
@@ -8,7 +8,7 @@ class test_settings(unittest.TestCase):
     projdir = os.path.dirname(__file__) + "/.."
     
     
-    def first_name_setter(self):
+    def test_first_name_setter(self):
         """Проверить корректность заполнения поля first_name"""
         # Подготовка
         item = settings()
@@ -19,7 +19,7 @@ class test_settings(unittest.TestCase):
         # Проверка
         assert item.first_name == "a"
 
-    def settings_manager_singleton(self):
+    def test_settings_manager_singleton(self):
         """Проверить, что settings_manager имплементирует singleton"""
         # Подготовка
         man1 = settings_manager()
@@ -30,7 +30,7 @@ class test_settings(unittest.TestCase):
         # Проверка
         assert man1 is man2
 
-    def open_settings(self):
+    def test_open_settings(self):
         """Проверить корректность загрузки настроек"""
         # Подготовка
         man = settings_manager()
@@ -41,7 +41,7 @@ class test_settings(unittest.TestCase):
         # Проверка
         assert result == True
 
-    def settings_fields_nonempty(self):
+    def test_settings_fields_nonempty(self):
         """Проверить, что все поля настроек не пусты после считывания настроек"""
         # Подготовка
         man = settings_manager()
@@ -56,7 +56,7 @@ class test_settings(unittest.TestCase):
         for key in dict.keys():
             assert len(str(dict[key])) != 0
             
-    def settings_any_filename(self):
+    def test_settings_any_filename(self):
         """Проверить, что менеджер настроек может открыть файл с любым названием и в любой папке"""
         # Подготовка
         if not os.path.exists(f"{self.projdir}/.test_data"):
@@ -86,7 +86,7 @@ class test_settings(unittest.TestCase):
         os.removedirs(dirname)
 
 
-    def settings_validator_typeguard(self):
+    def test_settings_validator_typeguard(self):
         """Проверить работоспособность settings_validation.check_type()"""
         # Подготовка
         validator = settings_validator()
@@ -97,7 +97,7 @@ class test_settings(unittest.TestCase):
         assert validator.check_type("", str)
         self.assertRaises(TypeError, lambda: validator.check_type("", int))
 
-    def settings_validator_len_exact(self):
+    def test_settings_validator_len_exact(self):
         """Проверить работоспособность settings_validator.check_length()"""
         # Подготовка
         validator = settings_validator()
@@ -109,7 +109,7 @@ class test_settings(unittest.TestCase):
         self.assertRaises(ValueError, lambda: validator.check_length("aa", 1))
         self.assertRaises(ValueError, lambda: validator.check_length("aa", 3))
 
-    def settings_validator_len_int(self):
+    def test_settings_validator_len_int(self):
         """Проверить работоспособность settings_validator.check_length() при передаче int"""
         # Подготовка
         validator = settings_validator()
@@ -121,7 +121,7 @@ class test_settings(unittest.TestCase):
         self.assertRaises(ValueError, lambda: validator.check_length(10, 1))
         self.assertRaises(ValueError, lambda: validator.check_length(10, 3))
 
-    def settings_validator_len_bound(self):
+    def test_settings_validator_len_bound(self):
         """Проверить работоспособность settings_validator.check_length_bound()"""
         # Подготовка
         validator = settings_validator()
@@ -143,7 +143,7 @@ class test_settings(unittest.TestCase):
         # Невхождение в исключительный максимум
         self.assertRaises(ValueError, lambda: validator.check_length_bound("abc", 1, 3, inclusive_max=False))
 
-    def settings_validator_regex(self):
+    def test_settings_validator_regex(self):
         """Проверить работоспособность settings_validator.check_regex()"""
         # Подготовка
         validator = settings_validator()