from src.settings.settings import settings from src.settings.settings_manager import settings_manager import unittest, os, random class test_settings(unittest.TestCase): projdir = os.path.dirname(__file__) + "/.." def test_first_name_setter(self): """Проверить корректность заполнения поля first_name""" # Подготовка item = settings() # Действие item.first_name = "a " # Проверка assert item.first_name == "a" def test_settings_manager_singleton(self): """Проверить, что settings_manager имплементирует singleton""" # Подготовка man1 = settings_manager() man2 = settings_manager() # Действие # Проверка assert man1 is man2 def test_open_settings(self): """Проверить корректность загрузки настроек""" # Подготовка man = settings_manager() # Действие result = man.open(f"{self.projdir}/config/settings.json") # Проверка assert result == True def test_settings_fields_nonempty(self): """Проверить, что все поля настроек не пусты после считывания настроек""" # Подготовка man = settings_manager() settings = None # Действие man.open(f"{self.projdir}/config/settings.json") settings = man.settings dict = settings.__dict__ # Проверка for key in dict.keys(): assert len(str(dict[key])) != 0 def test_settings_any_filename(self): """Проверить, что менеджер настроек может открыть файл с любым названием и в любой папке""" # Подготовка if not os.path.exists(f"{self.projdir}/.test_data"): os.mkdir(f"{self.projdir}/.test_data") alp = "abcdefghijklmnopqrstuvwxyz" dirname = f"{self.projdir}/.test_data/" dirname += ''.join(random.choice(alp) for _ in range(6)) filename = f"{dirname}/" filename += ''.join(random.choice(alp) for _ in range(6)) + ".json" os.mkdir(dirname) print(filename) f = open(filename, "w", encoding="UTF-8") f2 = open(f"{self.projdir}/config/settings.json", encoding="UTF-8") f.write(f2.read()) f.close() f2.close() # Действие man = settings_manager() man.open(filename) # Проверка assert settings is not None # Очистка os.remove(filename) os.removedirs(dirname)