From 9bdd837ecde5c84763b3126d2ed48dfffb429b2a Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 27 Feb 2023 11:40:14 +0100 Subject: [PATCH] Jenkinsfile: use pg_virtualenv to isolate the postgres database (#74887) --- Jenkinsfile | 2 +- tests/__init__.py | 0 tests/settings.py | 8 ++++++++ tox.ini | 4 +++- 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/settings.py diff --git a/Jenkinsfile b/Jenkinsfile index 9f5542e..762787f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,7 +5,7 @@ pipeline { stages { stage('Unit Tests') { steps { - sh 'tox -rv' + sh 'pg_virtualenv -o fsync=off tox -rv' } post { always { diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/settings.py b/tests/settings.py new file mode 100644 index 0000000..f23310e --- /dev/null +++ b/tests/settings.py @@ -0,0 +1,8 @@ +import os + +from zoo.settings import * + +# integrate with pg_virtualenv by getting pg configuration from environment variables +for key in ('PGPORT', 'PGHOST', 'PGUSER', 'PGPASSWORD'): + if key in os.environ: + DATABASES['default'][key[2:]] = os.environ[key] diff --git a/tox.ini b/tox.ini index db393d2..9d0caac 100644 --- a/tox.ini +++ b/tox.ini @@ -10,8 +10,10 @@ envlist = py3-dj32 [testenv] +passenv= + PG* setenv = - DJANGO_SETTINGS_MODULE=zoo.settings + DJANGO_SETTINGS_MODULE=tests.settings SETUPTOOLS_USE_DISTUTILS=stdlib JUNIT={tty::--junitxml=junit-{envname}.xml} COVERAGE={tty::--cov-report xml --cov-report html --cov=zoo/}