Library provides lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container
Python port for testcontainers-java that allows using docker containers for functional and integration testing. Testcontainers-python provides capabilities to spin up docker containers (such as a database, Selenium web browser, or any other container) for testing.
Currently available features:
- Selenium Grid containers
- Selenium Standalone containers
- MySql Db container
- MariaDb container
- Neo4j container
- OracleDb container
- PostgreSQL Db container
- Microsoft SQL Server container
- Generic docker containers
# Install without extras pip install testcontainers # Install with one or more extras pip install testcontainers[mysql] pip install testcontainers[mysql,oracle]
import sqlalchemy from testcontainers.mysql import MySqlContainer with MySqlContainer('mysql:5.7.17') as mysql: engine = sqlalchemy.create_engine(mysql.get_connection_url()) version, = engine.execute("select version()").fetchone() print(version) # 5.7.17
The snippet above will spin up a MySql 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.
More extensive documentation can be found at Read The Docs.
Usage within Docker (i.e. in a CI)
When trying to launch a testcontainer from within a Docker container two things have to be provided:
- The container has to provide a docker client installation. Either use an image that has docker pre-installed (e.g. the [official docker images](https://hub.docker.com/_/docker)) or install the client from within the Dockerfile specification.
- The container has to have access to the docker daemon which can be achieved by mounting /var/run/docker.sock or setting the DOCKER_HOST environment variable as part of your docker run command.
Setting up a development environment
We recommend you use a virtual environment for development. Note that a python version
>=3.6 is required. After setting up your virtual environment, you can install all dependencies and test the installation by running the following snippet.
pip install -r requirements/$(python -c 'import sys; print("%d.%d" % sys.version_info[:2])').txt pytest -s
pip-tools to resolve and manage dependencies. If you need to add a dependency to testcontainers or one of the extras, run
pip install pip-tools followed by
make requirements to update the requirements files.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size testcontainers-3.4.1-py2.py3-none-any.whl (31.4 kB)||File type Wheel||Python version py2.py3||Upload date||Hashes View|
Hashes for testcontainers-3.4.1-py2.py3-none-any.whl