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