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.
This commit is contained in:
Tobias Genannt 2022-11-30 09:52:07 +01:00
parent 1779ba790d
commit 9441be459c
2 changed files with 23 additions and 7 deletions

View File

@ -3,12 +3,13 @@ services:
netbox: netbox:
image: ${IMAGE-netboxcommunity/netbox:latest} image: ${IMAGE-netboxcommunity/netbox:latest}
depends_on: depends_on:
- postgres postgres:
- redis condition: service_healthy
- redis-cache redis:
condition: service_started
redis-cache:
condition: service_started
env_file: env/netbox.env env_file: env/netbox.env
environment:
SKIP_STARTUP_SCRIPTS: ${SKIP_STARTUP_SCRIPTS-false}
user: 'unit:root' user: 'unit:root'
volumes: volumes:
- ./configuration:/etc/netbox/config:z,ro - ./configuration:/etc/netbox/config:z,ro
@ -19,6 +20,11 @@ services:
postgres: postgres:
image: postgres:15-alpine image: postgres:15-alpine
env_file: env/postgres.env env_file: env/postgres.env
healthcheck:
test: ["CMD-SHELL", "pg_isready"]
interval: 10s
timeout: 5s
retries: 5
redis: redis:
image: redis:7-alpine image: redis:7-alpine
command: command:

14
test.sh
View File

@ -35,10 +35,14 @@ if [ -z "${IMAGE}" ]; then
fi fi
# The docker compose command to use # 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() { test_setup() {
echo "🏗 Setup up test environment" 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() { 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 $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() { test_cleanup() {
echo "💣 Cleaning Up" echo "💣 Cleaning Up"
$doco down -v $doco down --volumes
} }
echo "🐳🐳🐳 Start testing '${IMAGE}'" echo "🐳🐳🐳 Start testing '${IMAGE}'"
@ -58,5 +67,6 @@ trap test_cleanup EXIT ERR
test_setup test_setup
test_netbox_unit_tests test_netbox_unit_tests
test_compose_db_setup
echo "🐳🐳🐳 Done testing '${IMAGE}'" echo "🐳🐳🐳 Done testing '${IMAGE}'"