123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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)
|