跳转到主要内容

pytest servers

项目描述

pytest servers

PyPI Status Python Version License

Tests Codecov pre-commit Black

特性

在以下文件系统上创建临时目录

安装

您可以通过pipPyPI安装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是免费和开源软件。

问题

如果您遇到任何问题,请附上详细描述后提交问题

项目详情


下载文件

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

源分布

pytest_servers-0.5.7.tar.gz (24.6 kB 查看散列

上传时间:

构建分布

pytest_servers-0.5.7-py3-none-any.whl (16.5 kB 查看散列

上传时间: Python 3

由以下支持