pytest servers
项目描述
pytest servers
特性
在以下文件系统上创建临时目录
本地文件系统
内存文件系统
S3,使用模拟S3远程(https://github.com/spulec/moto)和真实S3远程
Azure,使用通过Docker的模拟Azure远程(https://github.com/Azure/Azurite)和真实Azure存储远程
Google Cloud Storage,使用通过Docker的模拟GCS远程(https://github.com/fsouza/fake-gcs-server)和真实Google存储远程
安装
您可以通过pip从PyPI安装pytest servers。
$ pip install pytest-servers
使用临时S3路径
$ pip install pytest-servers[s3]
使用临时Azure路径
$ pip install pytest-servers[azure]
使用临时Google Cloud Storage路径
$ pip install pytest-servers[gcs]
安装所有附加组件
$ pip install pytest-servers[all]
用法
pytest-servers提供的主要固定件是tmp_upath_factory,它可以用于在不同的(模拟的)文件系统上生成临时路径
def test_something_on_s3(tmp_upath_factory):
path = tmp_upath_factory.mktemp("s3")
foo = path / "foo"
foo.write_text("foo")
...
mktemp支持以下文件系统类型
local(本地文件系统)
memory(内存文件系统)
s3(Amazon S3)
gcs(Google Cloud Storage)
azure(Azure存储)
一些便利的固定件封装了tmp_upath_factory.mktemp,并返回这些文件系统上的路径,也是可用的
tmp_local_path
tmp_memory_path
tmp_s3_path
tmp_gcs_path
tmp_azure_path
tmp_upath固定件可用于使用pytest的间接参数化对路径进行参数化
@pytest.mark.parametrize("tmp_upath", ["local", "s3", "gcs", "gs"], indirect=True)
def test_something(tmp_upath):
pass
为了使用真实的远程而不是模拟的远程,请使用以下方法与tmp_upath_factory
tmp_upath_factory.s3(region_name, client_kwargs)其中client_kwargs传递给底层的S3FileSystem/boto客户端
tmp_upath_factory.gcs(endpoint_url)
tmp_upath_factory.azure(connection_string)
可以通过使用versioning固定件来使用版本控制支持。这目前支持s3和gcs远程
# using mktemp
def test_something_on_s3_versioned(tmp_upath_factory):
path = tmp_upath_factory.mktemp("s3", version_aware=True)
assert path.fs.version_aware # bucket has versioning enabled
# or, using remote-specific fixtures
def test_something_on_s3_versioned(tmp_s3_path, versioning):
assert tmp_s3_path.fs.version_aware # bucket has versioning enabled
贡献
欢迎贡献。要了解更多信息,请参阅贡献指南。
许可证
在Apache 2.0许可证的条款下分发,pytest servers是免费和开源软件。
问题
如果您遇到任何问题,请附上详细描述后提交问题。
项目详情
下载文件
下载适用于您平台文件。如果您不确定要选择哪个,请了解有关安装软件包的更多信息。