Skip to content

Testcontainers is a Python library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.

License

Notifications You must be signed in to change notification settings

solute/testcontainers-python

Repository files navigation

PoetryRuffPyPI - VersionPyPI - LicensePyPI - Python VersioncodecovCore TestsCommunity TestsDocs

Codespace

Testcontainers Python

testcontainers-python facilitates the use of Docker containers for functional and integration testing.

For more information, see the docs.

Getting Started

>>> from testcontainers.postgres import PostgresContainer >>> import sqlalchemy >>> with PostgresContainer("postgres:16") as postgres: ... engine = sqlalchemy.create_engine(postgres.get_connection_url()) ... with engine.begin() as connection: ... result = connection.execute(sqlalchemy.text("select version()")) ... version, = result.fetchone() >>> version 'PostgreSQL 16...'

The snippet above will spin up a postgres database in a container. The get_connection_url() convenience method returns a sqlalchemy compatible url we use to connect to the database and retrieve the database version.

Contributing / Development / Release

See CONTRIBUTING.md for more details.

Configuration

Env VariableExampleDescription
TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE/var/run/docker.sockPath to Docker's socket used by ryuk
TESTCONTAINERS_RYUK_PRIVILEGEDfalseRun ryuk as a privileged container
TESTCONTAINERS_RYUK_DISABLEDfalseDisable ryuk
RYUK_CONTAINER_IMAGEtestcontainers/ryuk:0.8.1Custom image for ryuk
RYUK_RECONNECTION_TIMEOUT10sReconnection timeout for Ryuk TCP socket before Ryuk reaps all dangling containers

About

Testcontainers is a Python library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python98.8%
  • Other1.2%