test_settings.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from src.settings import settings
  2. from src.settings_manager import settings_manager
  3. import unittest, os, random
  4. class test_settings(unittest.TestCase):
  5. #
  6. # Провеиить корректность заполнения поля first_name
  7. #
  8. def test_check_first_name(self):
  9. # Подготовка
  10. item = settings()
  11. # Действие
  12. item.first_name = "a "
  13. # Проверка
  14. assert item.first_name == "a"
  15. #
  16. # Проверить, что settings_manager инстанциируется только один раз
  17. #
  18. def test_check_settings_manager_singleton(self):
  19. # Подготовка
  20. man1 = settings_manager()
  21. man2 = settings_manager()
  22. # Действие
  23. # Проверка
  24. assert man1 is man2
  25. #
  26. # Проверить корректность загрузки настроек
  27. #
  28. def test_check_open_settings(self):
  29. # Подготовка
  30. man = settings_manager()
  31. # Действие
  32. result = man.open(f"{os.curdir}/../cfg/settings.json")
  33. # Проверка
  34. assert result == True
  35. #
  36. # Проверить, что все поля настроек не пусты
  37. #
  38. def test_check_settings_fields_nonempty(self):
  39. # Подготовка
  40. man = settings_manager()
  41. settings = None
  42. # Действие
  43. man.open(f"{os.curdir}/../cfg/settings.json")
  44. man.convert()
  45. settings = man.settings
  46. dict = settings.__dict__
  47. # Проверка
  48. for key in dict.keys():
  49. assert len(str(dict[key])) != 0
  50. #
  51. # Проверить, что менеджер настроек может открыть файл
  52. # с любым названием и в любой папке
  53. #
  54. def test_settings_any_filename(self):
  55. # Подготовка
  56. if not os.path.exists("..\\.test_data"):
  57. os.mkdir("..\\.test_data")
  58. alp = "abcdefghijklmnopqrstuvwxyz"
  59. dirname = f"{os.getcwd()}\\..\\.test_data\\"
  60. dirname += ''.join(random.choice(alp) for _ in range(6))
  61. filename = f"{dirname}\\"
  62. filename += ''.join(random.choice(alp) for _ in range(6)) + ".json"
  63. os.mkdir(dirname)
  64. print(filename)
  65. f = open(filename, "w", encoding="UTF-8")
  66. f2 = open(f"{os.getcwd()}\\cfg\\settings.json", encoding="UTF-8")
  67. f.write(f2.read())
  68. f.close()
  69. f2.close()
  70. # Действие
  71. man = settings_manager()
  72. man.open(filename)
  73. # Проверка
  74. assert settings is not None
  75. # Очистка
  76. os.remove(filename)
  77. os.removedirs(dirname)