Changelog¶
Next Release¶
Breaking changes:
Improvements and new features:
Documentation:
Internal changes:
0.4.4 (June 30 2025)¶
Breaking changes:
Remove intermediate dataclass
runtime._OciRuntimeBase(gh#238)PodmanRuntimeandDockerRuntimenow raise exceptions if the runtime is not functional (gh#238)
Improvements and new features:
Documentation:
Internal changes:
Drop poetry as the build system and fallback to setuptools
0.4.3 (December 4 2024)¶
Breaking changes:
Change addition of SELinux flags to volumes: SELinux flags are only added if
flagsisNone.
Improvements and new features:
Tolerate already deleted lockfiles (gh#233)
Add the function
read_container_logs()to get access to the logs of the running containerExpose the working directory via
workingdirDon’t use non-FIPS hashes for generating the lockfile (gh#213)
Don’t wait for crashed/stopped containers to become healthy (gh#207)
Improve logging and error messages involving
HEALTHCHECK
Documentation:
Internal changes:
0.4.2 (10 April 2024)¶
Breaking changes:
Improvements and new features:
Add compatibility with podman 5
Documentation:
Internal changes:
0.4.1 (2 April 2024)¶
Breaking changes:
Improvements and new features:
Documentation:
Internal changes:
fix imports for older pytest releases
0.4.0 (27 March 2024)¶
Breaking changes:
add the parameter
container_runtimetoprepare_container()andprepare_build().deprecate the function
pytest_container.container_from_pytest_param, please usecontainer_and_marks_from_pytest_param()instead.get_base()no longer returns the recursive base but the immediate base.
Improvements and new features:
No longer depend on buildah being installed when using podman to build container images.
Allow to configure whether container images are always pulled before test runs or whether cached images can be used via the environment variable
PULL_ALWAYS(see Controlling the image pulling behavior).Add attributes
nameandip_addressexposing the container’s name & IPAdd property
extra_entrypoint_argsto support appending arguments to the container launch commandAdd support for Python 3.12
Add property
bind_ipto support binding to arbitrary IP addresses.Fix
host_portbeing ignored when picking the host port
Documentation:
Internal changes:
0.3.0 (26 September 2023)¶
Breaking changes:
Removed the function
OciRuntimeABC.get_image_id_from_stdoutas docker buildx does not print the image digest to stdout when invoking docker build.
Improvements and new features:
Add
baseurlproperty to get the registry url of the container on which any currently existing container is based on.
Documentation:
Internal changes:
use
--cidfileand--iidfileflags to get the container and image hashes from files instead of stdout.
0.2.0 - DevConf.cz edition (14 June 2023)¶
Breaking changes:
Improvements and new features:
Log the the output of $runtime logs $container using Python’s logging framework for easier debugging
Automatically set the image format to
dockerwhen using buildah if the base image is usingHEALTHCHECK(with buildah version 1.25 and later).Add support for Python 3.11
Log the container’s logs even if launching the container fails, e.g. due to a failing
HEALTHCHECK.
Documentation:
Internal changes:
0.1.1 (21 March 2023)¶
This release only fixes the README.rst formatting. There are no functional changes compared to 0.1.0.
0.1.0 (20 March 2023)¶
Breaking changes:
ContainerBase.healtcheck_timeout_msgot renamed tohealthcheck_timeoutand was changed as follows: it is now atimedeltawith the default value beingNoneand implies thatpytest_containerfigures the maximum timeout out itself. If a positive timedelta is provided, then that timeout is used instead of the inferred default and if it is negative, then no timeout is applied.entry_pointis no longer a property. It is instead a setting how the entry point for a container image is picked. Consequently, the attributeContainerBase.default_entry_pointwas removed.OciRuntimeABC.get_container_healthcheckwas removed, useinspectinstead.
Improvements and new features:
The Entrypoint is now picked automatically from the image, removing the need for setting default_entry_point=True.
Cleanup automatically created volumes from
VOLUMEdirectives inDockerfile.Allow to inspect containers via a pythonic interface via
inspectAdd support for creating podman pods for testing via the
Podclass.Add support for automatically exposing ports in containers via the
forwarded_portsattribute: Container Images can now define which ports they want to publish automatically and let the container_* fixtures automatically find the next free port for them. This allows the user to launch multiple containers from Container Images exposing the same ports in parallel without marking them assingleton=True.The attribute
containerwas added toContainerData(the datastructure that is passed to test functions via the*container*fixtures). This attribute contains theContainerBasethat was used to parametrize this test run.Add support to add tags to container images via
add_build_tags.Lock container preparation so that only a single process is pulling & building a container image.
Add the helper class
Versionfor parsing and comparing versions.Container volumes and bind mounts can now be automatically created via the
ContainerVolumeandBindMountclasses and adding them to thevolume_mountsattribute.
Documentation:
Add a tutorial how to start using
pytest_containerDocument most public and private functions, classes and modules
Internal changes:
Switch from tox to nox and nox-poetry.
Add typeguard to the test runs to check type hints.
Use context managers in the fixtures to make the code more readable and robust.
0.0.2 (01 February 2022)¶
Breaking changes:
Improvements and new features:
Support healthcheck in Container images
Add support for internal logging and make the level user configurable
Allow for singleton container images
Add support for passing run & build arguments via the pytest CLI to podman/docker
Add support for adding environment variables into containers
Documentation:
treat unresolved references as errors
enable intersphinx
Internal changes:
Provide a better error message in auto_container_parametrize
Add support for using pytest.param instead of Container classes