在 pytest 中维护两个 pyfakefs 文件系统以及附加文件
我正在尝试使用 pytest 为配置系统编写单元测试,该系统应该在几个不同的位置查找配置文件。我可以通过 fs
插件使用 pyfakefs 创建一个提供一组文件的固定装置,包括一个位置的配置文件,但我想进行单元测试检查两个位置并选择正确的位置。
我最初的想法是我可以创建第一个固定装置,然后添加一个文件:
@pytest.fixture()
def fake_files(fs):
fs.create_file('/path/to/datafile', contents="Foo")
yield fs
@pytest.fixture()
def user_config(fake_files):
fake_files.create_file('/path/to/user/config', contents="Bar")
yield fake_files
这背后的想法是任何使用 fake_files
的测试都找不到配置,但使用 user_config
> 会的。但是,使用该 user_config
固定装置的单元测试找不到该文件。这可能吗?
实际上,第一个固定装置中添加了很多内容,因此将两个系统维护为两个完全独立的固定装置会重复代码,而且我不清楚底层的 fs 对象是否可以并行使用。
I'm trying to write unit tests using pytest
for a configuration system that should look in a couple of different places for config files. I can use pyfakefs
via the fs
plugin to create a fixture that provides a set of files, including a config file in one location, but I'd like to have unit testing that both locations are checked and that the correct one is preferred.
My initial thought was that I could create the first fixture and then add a file:
@pytest.fixture()
def fake_files(fs):
fs.create_file('/path/to/datafile', contents="Foo")
yield fs
@pytest.fixture()
def user_config(fake_files):
fake_files.create_file('/path/to/user/config', contents="Bar")
yield fake_files
The idea behind this is that any test using fake_files
would not find the config, but that using user_config
would. However, unit tests using that user_config
fixture do not find the file. Is this possible?
There is quite a lot more added in the first fixture in reality, so maintaining the two systems as two completely separate fixtures duplicates code and I am unclear if the underlying fs object can even be used in parallel.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论