как макет файла объекта в python3 - PullRequest
1 голос
/ 11 апреля 2019

В python2 у меня есть это в моем методе теста:

mock_file = MagicMock(spec=file)

Я перехожу на python3, и я не могу понять, как сделать подобный макет. Я пробовал:

from io import IOBase
mock_file = MagicMock(spec=IOBase)

mock_file = create_autospec(IOBase)

Чего мне не хватает?

1 Ответ

2 голосов
/ 11 апреля 2019

IOBase не реализует такие важные файловые методы, как read и write, и поэтому обычно не подходит в качестве спецификации для создания объекта с поддельным файлом. В зависимости от того, хотите ли вы смоделировать необработанный поток, двоичный файл или текстовый файл, вы можете использовать RawIOBase, BufferedIOBase или TextIOBase в качестве спецификации вместо:

from io import BufferedIOBase
mock_file = MagicMock(spec=BufferedIOBase)
...