Cómo reemplazar las referencias de acceso a archivos para un módulo bajo prueba

pyfakefs suena muy útil: se desarrolló inicialmente como una modesta implementación falsa de módulos Python centrales para admitir interacciones de sistemas de archivos moderadamente complejas, y se introdujo en todo el territorio de Google … en septiembre de 2006. Desde entonces, ha recibido muchas probado) contribuciones para ampliar su funcionalidad y utilidad, y se utiliza en más de 900 pruebas de Google Python “.

La documentación parece estar disponible actualmente solo dentro de las cadenas de documentación del propio código fuente . Explica que el módulo proporciona los siguientes elementos:

  • FakeFile: proporciona la apariencia de un archivo real.
  • FakeDirectory: proporciona la apariencia de un directorio real.
  • FakeFilesystem: proporciona la apariencia de una jerarquía de directorios real.
  • FakeOsModule: utiliza FakeFilesystem para proporcionar un reemplazo de módulo falso.
  • FakePathModule: reemplazo falso del módulo os.path.
  • FakeFileOpen: Reemplazo de archivos falsos () y de funciones open ().

Sin embargo, la documentación no explica cómo usar estos elementos de manera efectiva en las pruebas.

¿Cuál es la forma correcta de garantizar que un módulo bajo prueba acceda a un sistema de archivos falso y no al real?

Consulte http://github.com/jmcgeheeiv/pyfakefs para obtener un código que admita unittest y doctest, además de un ejemplo práctico y un tutorial.