From 9441be459c0fe4c84aa12e38acb14333989f7ba6 Mon Sep 17 00:00:00 2001 From: Tobias Genannt Date: Wed, 30 Nov 2022 09:52:07 +0100 Subject: [PATCH] Improved testing After the initializer scripts were removed, we didn't test the actual compose setup anymore. This adds new tests to run the database migrations. --- docker-compose.test.yml | 16 +++++++++++----- test.sh | 14 ++++++++++++-- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 2f6b24c..b8444f0 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -3,12 +3,13 @@ services: netbox: image: ${IMAGE-netboxcommunity/netbox:latest} depends_on: - - postgres - - redis - - redis-cache + postgres: + condition: service_healthy + redis: + condition: service_started + redis-cache: + condition: service_started env_file: env/netbox.env - environment: - SKIP_STARTUP_SCRIPTS: ${SKIP_STARTUP_SCRIPTS-false} user: 'unit:root' volumes: - ./configuration:/etc/netbox/config:z,ro @@ -19,6 +20,11 @@ services: postgres: image: postgres:15-alpine env_file: env/postgres.env + healthcheck: + test: ["CMD-SHELL", "pg_isready"] + interval: 10s + timeout: 5s + retries: 5 redis: image: redis:7-alpine command: diff --git a/test.sh b/test.sh index ca36a8f..31b4d87 100755 --- a/test.sh +++ b/test.sh @@ -35,10 +35,14 @@ if [ -z "${IMAGE}" ]; then fi # The docker compose command to use -doco="docker-compose --file docker-compose.test.yml --project-name netbox_docker_test_${1}" +doco="docker compose --file docker-compose.test.yml --project-name netbox_docker_test" test_setup() { echo "🏗 Setup up test environment" + $doco up --detach --quiet-pull --wait --force-recreate --renew-anon-volumes --no-start + $doco start postgres + $doco start redis + $doco start redis-cache } test_netbox_unit_tests() { @@ -46,9 +50,14 @@ test_netbox_unit_tests() { $doco run --rm netbox /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py test } +test_compose_db_setup() { + echo "⏱ Running NetBox DB migrations" + $doco run --rm netbox /opt/netbox/venv/bin/python /opt/netbox/netbox/manage.py migrate +} + test_cleanup() { echo "💣 Cleaning Up" - $doco down -v + $doco down --volumes } echo "🐳🐳🐳 Start testing '${IMAGE}'" @@ -58,5 +67,6 @@ trap test_cleanup EXIT ERR test_setup test_netbox_unit_tests +test_compose_db_setup echo "🐳🐳🐳 Done testing '${IMAGE}'"