[tox] envlist = py312-{unit,registry,e2e,mysql,psql} skipsdist = True [pytest] norecursedirs = node_modules testpaths = ./ python_files = **/test/test*.py log_cli = 0 log_cli_level = INFO [testenv] deps = -r{toxinidir}/requirements-dev.txt setenv = PYTHONDONTWRITEBYTECODE = 1 PYTHONPATH={toxinidir}{:}{toxinidir} TEST=true MARKERS="not e2e" registry: FILE=test/registry/registry_tests.py e2e: MARKERS="e2e" # TODO(kleesc): Re-enable buildman tests after buildman rewrite commands = python --version alembic upgrade head pytest --timeout=3600 -n auto -m {env:MARKERS} --exitfirst --ignore=buildman/test/test_buildman.py -vv {env:FILE:} {posargs} [docker:mysql] image = mysql:5.7 healthcheck_cmd = mysql -uroot -D information_schema -e "SELECT * FROM plugins LIMIT 0;" healthcheck_interval = 25 healthcheck_timeout = 10 healthcheck_retries = 3 healthcheck_start_period = 25 ports = 3306:3306/tcp environment = MYSQL_DATABASE=quay_ci MYSQL_PASSWORD=quay MYSQL_ALLOW_EMPTY_PASSWORD=1 MYSQL_USER=quay [testenv:py312-unit] setenv = PYTHONDONTWRITEBYTECODE = 1 PYTHONPATH={toxinidir}{:}{toxinidir} TEST=true SKIP_DB_SCHEMA=true MARKERS="not e2e" TEST_DATABASE_URI=sqlite:///test/data/sqlite_test.db commands = python --version alembic upgrade head pytest --timeout=3600 -m {env:MARKERS} --exitfirst --ignore=buildman/test/test_buildman.py -vv {env:FILE:} {posargs} [testenv:py312-mysql] setenv = PYTHONDONTWRITEBYTECODE = 1 PYTHONPATH={toxinidir}{:}{toxinidir} TEST=true SKIP_DB_SCHEMA=true MARKERS="not e2e" docker = mysql whitelist_internals = /bin/sh allowlist_externals = /bin/sh # TODO(kleesc): Re-enable buildman tests after buildman rewrite commands = python --version /bin/sh -c "TEST_DATABASE_URI=mysql+pymysql://quay:quay@127.0.0.1:$MYSQL_3306_TCP_PORT/quay_ci alembic upgrade head" /bin/sh -c 'TEST_DATABASE_URI=mysql+pymysql://quay:quay@127.0.0.1:$MYSQL_3306_TCP_PORT/quay_ci pytest --timeout=3600 -n auto -m {env:MARKERS} --exitfirst --ignore=buildman/test/test_buildman.py -vv {env:FILE:} {posargs}' [docker:postgres] image = postgres:12.1 healthcheck_cmd = PGPASSWORD=root pg_isready -U postgres healthcheck_interval = 5 healthcheck_timeout = 10 healthcheck_retries = 3 healthcheck_start_period = 10 environment = POSTGRES_DB=quay_ci POSTGRES_PASSWORD=quay POSTGRES_USER=quay [testenv:py312-psql] # TODO(kleesc): Re-enable buildman tests after buildman rewrite setenv = PYTHONDONTWRITEBYTECODE = 1 PYTHONPATH={toxinidir}{:}{toxinidir} TEST=true SKIP_DB_SCHEMA=true MARKERS="not e2e" docker = postgres whitelist_internals = /bin/sh allowlist_externals = /bin/sh # TODO(kleesc): Re-enable buildman tests after buildman rewrite commands = python --version /bin/sh -c "docker exec $(docker ps -q -n 1) psql -U quay -d quay_ci -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;'" /bin/sh -c "TEST_DATABASE_URI=postgresql://quay:quay@127.0.0.1:$POSTGRES_5432_TCP_PORT/quay_ci alembic upgrade head" /bin/sh -c 'TEST_DATABASE_URI=postgresql://quay:quay@127.0.0.1:$POSTGRES_5432_TCP_PORT/quay_ci pytest --timeout=3600 -n auto -m {env:MARKERS} --exitfirst --ignore=buildman/test/test_buildman.py -vv {env:FILE:} {posargs}'