1
1

test_settings.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. from settings import settings
  2. from 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. a = settings_manager()
  21. b = settings_manager()
  22. # Действие
  23. # Проверка
  24. assert a is b
  25. #
  26. # Проверить корректность загрузки настроек
  27. #
  28. def test_check_open_settings(self):
  29. # Подготовка
  30. item = settings_manager()
  31. # Действие
  32. result = item.open("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("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.curdir}/.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. f = open(filename, "w")
  65. f2 = open(f"{os.curdir}/settings.json")
  66. f.write(f2.read())
  67. f.close()
  68. f2.close()
  69. # Действие
  70. man = settings_manager()
  71. man.open(filename)
  72. # Проверка
  73. assert settings is not None
  74. # Очистка
  75. os.remove(filename)
  76. os.removedirs(dirname)