Я пытаюсь реализовать класс, у которого есть метод для создания нового файла на основе ввода с клавиатуры. У меня есть файл с именем FileManipulator.py , который содержит класс + метод:
class FileManipulator:
def __init__(self):
pass
def fileChecker(self):
print("+++ EXECUTING FILE CREATION METHOD +++")
new_custom_filename = input("Give filename: ")
custom_file_path = input("Give path where to create file: ")
print(custom_file_path)
try:
new_file = open(custom_file_path + "/" + new_custom_filename + ".ttcn3", "x+")
except OSError:
print("Creation of the file %s failed" % new_custom_filename)
else:
print("Successfully created the file %s" % new_custom_filename)
Выполнение таким образом:
fm_obj = FileManipulator()
result = fm_obj.fileChecker()
Я вижу "file_name_give_as_input.ttcn3" создан на пути, который я также указываю в качестве ввода.
Проблема в том, что результат будет иметь тип NONE
В этом случае я не могу правильно проверить мой метод. Я создал python unittest как это:
from unittest import TestCase
from FileManipulator import FileManipulator
import os
class FileManipulatorTest(TestCase):
def test_fileChecker(self):
FM = FileManipulator()
result = FM.fileChecker()
self.assertEqual(os.path.abspath(result, "ut_testing.ttcn3"))
if __name__ == '__main__':
unittest.main()
И тест не пройден, потому что:
Ожидается: Нет
Факт:. \ Test_cases \ ut \ ut_testing.ttcn3
Мой вопрос: Как я могу создать unittest, который будет проверять, "file.ttcn3" "физически" создан в указанном c местоположении?
Может быть, я неправильно тестирую, поскольку запускаю метод, который будет ожидать ввода данных пользователем, что нарушает автоматизацию данного конкретного теста и может привести к зависанию теста при выполнении.