skip to navigation
skip to content

pytest-docker 0.3.0

Latest Version: 0.6.1


Simple py.test fixtures for writing integration tests based on Docker containers. Specify all containers you need and pytest-docker will use Docker Compose to spin them up for the duration of your test suite.


Here is the basic recipe for writing a test that depends on a service that responds over HTTP:

import pytest
import requests

from requests.exceptions import (

def is_responsive(url):
    """Check if something responds to ``url``."""
        response = requests.get(url)
        if response.status_code == 200:
            return True
    except ConnectionError:
        return False

def some_http_service(docker_ip, docker_services):
    """Ensure that "some service" is up and responsive."""
    url = 'http://' % (
        docker_services.port_for('abc', 123),
       timeout=30.0, pause=0.1,
       check=lambda: is_responsive(url)
    return url

def test_something(some_service):
    """Sample test."""
    response = requests.get(some_service)

By default this plugin will try to open docker-compose.yml in your tests directory. If you need to use a custom location, override the docker_compose_file fixture inside your file:

import pytest

def docker_compose_file(pytestconfig):
    return os.path.join(

You can allow this plugin to run your tests when Docker is not available. It will use the container port and localhost instead:

def docker_allow_fallback():
    return True


Version 0.3.0

  • Added --build option to docker-compose up command to automatically rebuild local containers.


This py.test plug-in and its source code are made available to your under and MIT license. It is safe to use in commercial and closed-source applications. Read the license for details!

Found a bug? Think a new feature would make this plug-in more practical? No one is paid to support this software, but we welcome pull requests!

File Type Py Version Uploaded on Size
pytest-docker-0.3.0.tar.gz (md5) Source 2017-04-21 3KB
pytest_docker-0.3.0-py2-none-any.whl (md5) Python Wheel 2.7 2017-04-21 4KB
pytest_docker-0.3.0-py3-none-any.whl (md5) Python Wheel 3.5 2017-04-21 4KB