No project description provided
Project description
pytest_apiver
Pytest plugin helping to test packages implementing ApiVer.
Usage
Assuming your package exposes v1
, v2
, ... ApiVer interfaces, i.e. has structure like this:
my_package/
__init__.py
v1/
__init__.py
...
_v3/
__init__.py
You can configure to run apiver-aware tests against it using pyproject.toml
:
[tool.pytest.ini_options]
target_package_name = "my_package"
Then you can write tests like this:
@pytest.mark.apiver(from_ver=2, to_ver=3)
def test_run_for_apiver_ver_2_3(apiver_module):
assert apiver_module.func()
Which will run test against my_package.v2.func()
and my_package.v3.func()
respectively.
For non-flat package structure, you can use auto-magical getter doing imports of submodules built into apiver_module
fixture, e.g.:
@pytest.mark.apiver(from_ver=2, to_ver=2)
def test_func__v2(apiver_module):
assert apiver_module.utils.func() # equivalent to my_package.v2.utils.func()
Versioning
This package uses Semantic Versioning.
TL;DR you are safe to use compatible release version specifier ~=MAJOR.MINOR
in your pyproject.toml
or requirements.txt
.
Internal packages, i.e. prefixed by pytest_apiver._
do not share these guarantees and may change in a backwards-incompatible way at any time even in patch releases.
Development
Pre-requisites:
Ideally, you should run nox -t format lint
before every commit to ensure that the code is properly formatted and linted.
Before submitting a PR, make sure that tests pass as well, you can do so using:
nox -t check # equivalent to `nox -t format lint test`
If you wish to install dependencies into .venv
so your IDE can pick them up, you can do so using:
pdm install --dev
Release process
Run nox -s make_release -- X.Y.Z
where X.Y.Z
is the version you're releasing and follow the printed instructions.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_apiver-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f94c960d545871497d2ff2325028a3dbf9c03627aa1fb148a1099e31ee45c44b |
|
MD5 | 42588dfc9cd5cf86fc9342cd7161b115 |
|
BLAKE2b-256 | 3e40a7cb507f8e8cbf4f4dace9a6e93891cba35603101d3f6166527e12eb3063 |