跳转到主要内容

pyfakefs 实现了一个模拟 Python 文件系统模块的假文件系统。

项目描述

pyfakefs PyPI版本 Python版本 测试套件 文档状态 pre-commit.ci状态

pyfakefs实现了一个模拟文件系统,模拟Python文件系统模块。使用pyfakefs,您的测试在内存中的模拟文件系统上运行,而不接触真实磁盘。被测试的软件无需修改即可与pyfakefs一起工作。

Pyfakefs在每个测试开始时创建一个新的空内存文件系统,在测试期间替换真实文件系统。将pyfakefs视为为每个测试创建一个临时目录,但针对整个文件系统。

有几种方法可以实现这一点:在运行pytest时使用fs固定装置,在使用unittest时使用fake_filesystem_unittest.TestCase作为基类,使用fake_filesystem_unittest.Patcher实例作为上下文管理器,或使用patchfs装饰器。

pyfakefs适用于当前版本的Linux、Windows和macOS。

文档

本文件提供了pyfakefs的一般概述。还有更多内容

  • Read the Docs的文档
    • 发布文档包含pyfakefs的使用文档以及PyPI上最新版本的最相关类、方法和函数的描述
    • 开发文档包含当前主分支的相同文档
    • 3.7版本文档包含支持Python 2.7的pyfakefs最后版本的用法文档
  • 发布说明显示了最新版本中的更改列表

用法

使用pyfakefs的最简单方法是使用pytest中的fs固定装置。有关其他测试场景、测试定制和使用便利函数的信息,请参阅用法文档

功能

除了自动模拟大多数文件系统函数之外,pyfakefs还提供了一些附加功能

  • 将文件和目录从真实文件系统映射到模拟文件系统
  • 配置和跟踪文件系统大小
  • 暂停和恢复修补,以便在测试步骤中使用真实文件系统
  • 其他操作系统(Linux、macOS或Windows)的(有限)模拟
  • 配置为在以root用户运行时表现得像非root用户

兼容性

pyfakefs与CPython 3.7及以上版本兼容,在Linux、Windows和macOS上运行,并兼容PyPy3。

pyfakefs与pytest版本3.0.0或更高版本兼容,尽管推荐使用最新版本。

pyfakefs无法与使用C库访问文件系统的Python库一起工作。这是因为pyfakefs无法修补底层C库的文件访问函数--C库始终会访问真实文件系统。有关pyfakefs限制的更多信息,请参阅文档

开发

持续集成

pyfakefs目前通过GitHub Actions在Linux、macOS和Windows上自动测试,使用Python 3.7到3.12,以及Linux上的PyPy3。

运行pyfakefs单元测试

在命令行上

可以使用pytest(所有测试)或unittest(除pytest特定测试外的所有测试)来运行pyfakefs单元测试。

$ cd pyfakefs/
$ export PYTHONPATH=$PWD

$ python -m pytest pyfakefs
$ python -m pyfakefs.tests.all_tests

类似的脚本由tox和GitHub Actions调用。tox可用于在本地针对支持的Python版本运行测试。

$ tox

在Docker容器中

存储库根目录中的Dockerfile将在最新版本的Ubuntu上运行测试。构建容器

cd pyfakefs/
docker build -t pyfakefs .

在容器中运行单元测试

docker run -t pyfakefs

为pyfakefs做出贡献

我们始终欢迎对库的贡献。有关更多信息,请查看贡献指南

历史

pyfakefs.py最初由Google的Mike Bland开发,作为核心Python模块的简单模拟实现。它在2006年9月被引入到Google的各个部门。从那时起,它得到了增强,以扩展其功能和实用性。最后统计,pyfakefs在Google的超过20,000个Python测试中使用。

Google于2011年将pyfakefs作为Google Code项目pyfakefs公开发布。

在宣布关闭Google Code后,John McGehee将所有三个Google Code项目合并到了这里GitHub,在那里一个热情的社区积极支持、维护和扩展pyfakefs。2022年,存储库已转移到pytest-dev,以确保持续维护。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分发

pyfakefs-5.6.0.tar.gz (207.9 kB 查看散列)

上传时间

构建分发

pyfakefs-5.6.0-py3-none-any.whl (222.2 kB 查看散列)

上传时间 Python 3

由以下赞助商支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面