diff --git a/src/pytest_mock_resources/cli.py b/src/pytest_mock_resources/cli.py index 54e7ca43..46f9a5a5 100644 --- a/src/pytest_mock_resources/cli.py +++ b/src/pytest_mock_resources/cli.py @@ -2,6 +2,12 @@ import enum import subprocess # nosec +from pytest_mock_resources.config import get_env_config + +postgres_image = get_env_config("postgres", "image") or "postgres:9.6.10-alpine" +mysql_image = get_env_config("mysql", "image") or "mysql:5.6" +mongo_image = get_env_config("mongo", "image") or "mongo:3.6" + @enum.unique class FixtureBase(enum.Enum): @@ -28,9 +34,9 @@ def command(self): "POSTGRES_USER=user", "-e", "POSTGRES_PASSWORD=password", - "postgres:9.6.10-alpine", + postgres_image, ] - mongo_command = ["docker", "run", "-d", "--rm", "-p", "28017:27017", "mongo:3.6"] + mongo_command = ["docker", "run", "-d", "--rm", "-p", "28017:27017", mongo_image] mysql_command = [ "docker", "run", @@ -42,7 +48,7 @@ def command(self): "MYSQL_DATABASE=dev", "-e", "MYSQL_ROOT_PASSWORD=password", - "mysql:5.6", + mysql_image, ] fixture_base_command_map = { FixtureBase.MONGO: mongo_command, diff --git a/src/pytest_mock_resources/container/mongo.py b/src/pytest_mock_resources/container/mongo.py index 7506aef5..9b099042 100644 --- a/src/pytest_mock_resources/container/mongo.py +++ b/src/pytest_mock_resources/container/mongo.py @@ -1,10 +1,13 @@ import pytest from pytest_mock_resources.compat import pymongo -from pytest_mock_resources.config import DockerContainerConfig, fallback +from pytest_mock_resources.config import DockerContainerConfig, fallback, get_env_config from pytest_mock_resources.container.base import ContainerCheckFailed, get_container +mongo_image = get_env_config("mongo", "image") or "mongo:3.6" + + class MongoConfig(DockerContainerConfig): """Define the configuration object for mongo. @@ -25,7 +28,7 @@ class MongoConfig(DockerContainerConfig): _fields = {"image", "host", "port", "ci_port", "root_database"} _fields_defaults = { - "image": "mongo:3.6", + "image": mongo_image, "port": 28017, "ci_port": 27017, "root_database": "dev-mongo", diff --git a/src/pytest_mock_resources/container/mysql.py b/src/pytest_mock_resources/container/mysql.py index ca83e108..1f8c7eaa 100644 --- a/src/pytest_mock_resources/container/mysql.py +++ b/src/pytest_mock_resources/container/mysql.py @@ -2,10 +2,13 @@ import sqlalchemy from pytest_mock_resources import compat -from pytest_mock_resources.config import DockerContainerConfig, fallback +from pytest_mock_resources.config import DockerContainerConfig, fallback, get_env_config from pytest_mock_resources.container.base import ContainerCheckFailed, get_container +mysql_image = get_env_config("mysql", "image") or "mysql:5.6" + + class MysqlConfig(DockerContainerConfig): """Define the configuration object for MySql. @@ -29,7 +32,7 @@ class MysqlConfig(DockerContainerConfig): name = "mysql" _fields = {"image", "host", "port", "ci_port", "username", "password", "root_database"} _fields_defaults = { - "image": "mysql:5.6", + "image": mysql_image, "port": 3406, "ci_port": 3306, "username": "root", diff --git a/src/pytest_mock_resources/container/postgres.py b/src/pytest_mock_resources/container/postgres.py index 1ef1fa51..fbc90593 100644 --- a/src/pytest_mock_resources/container/postgres.py +++ b/src/pytest_mock_resources/container/postgres.py @@ -1,10 +1,13 @@ import pytest import sqlalchemy -from pytest_mock_resources.config import DockerContainerConfig, fallback +from pytest_mock_resources.config import DockerContainerConfig, fallback, get_env_config from pytest_mock_resources.container.base import ContainerCheckFailed, get_container +postgres_image = get_env_config("postgres", "image") or "postgres:9.6.10-alpine" + + class PostgresConfig(DockerContainerConfig): """Define the configuration object for postgres. @@ -28,7 +31,7 @@ class PostgresConfig(DockerContainerConfig): name = "postgres" _fields = {"image", "host", "port", "ci_port", "username", "password", "root_database"} _fields_defaults = { - "image": "postgres:9.6.10-alpine", + "image": postgres_image, "port": 5532, "ci_port": 5432, "username": "user",