from src.settings import settings from src.settings_manager import settings_manager import unittest, os, random class test_settings(unittest.TestCase): projdir = os.path.dirname(__file__) + "/.." # # Провеиить корректность заполнения поля first_name # def test_check_first_name(self): # Подготовка item = settings() # Действие item.first_name = "a " # Проверка assert item.first_name == "a" # # Проверить, что settings_manager инстанциируется только один раз # def test_check_settings_manager_singleton(self): # Подготовка man1 = settings_manager() man2 = settings_manager() # Действие # Проверка assert man1 is man2 # # Проверить корректность загрузки настроек # def test_check_open_settings(self): # Подготовка man = settings_manager() # Действие result = man.open(f"{self.projdir}/config/settings.json") # Проверка assert result == True # # Проверить, что все поля настроек не пусты # def test_check_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)