From 0f542670f25d24ecaef8b5b9f81052e13eab3a27 Mon Sep 17 00:00:00 2001 From: aartoni Date: Mon, 12 May 2025 23:18:52 +0200 Subject: [PATCH] tests: revise "env vars from files" tests --- .../env_vars_from_files.bats | 66 ++++++++++--------- 1 file changed, 35 insertions(+), 31 deletions(-) diff --git a/test/tests/parallel/set3/container_configuration/env_vars_from_files.bats b/test/tests/parallel/set3/container_configuration/env_vars_from_files.bats index fadaffd2..562fd349 100644 --- a/test/tests/parallel/set3/container_configuration/env_vars_from_files.bats +++ b/test/tests/parallel/set3/container_configuration/env_vars_from_files.bats @@ -6,57 +6,61 @@ export CONTAINER2_NAME='dms-test_env-files_warning' export CONTAINER3_NAME='dms-test_env-files_error' setup_file() { + export CONTAINER_NAME export TEST__FILE - TEST__FILE=$(mktemp) - export NON_EXISTENT__FILE="/tmp/non_existent_secret" + export TEST__FILE_SUCCESS + export NON_EXISTENT__FILE + CONTAINER_NAME=${CONTAINER1_NAME} + _init_with_defaults + TEST__FILE=${TEST_TMP_CONFIG}/test_secret echo 1 > "${TEST__FILE}" -} - -teardown_file() { - rm -f "${TEST__FILE}" - docker rm -f "${CONTAINER1_NAME}" "${CONTAINER2_NAME}" "${CONTAINER3_NAME}" -} - -@test "Environment variables are loaded from files" { - export CONTAINER_NAME="${CONTAINER1_NAME}" + TEST__FILE_SUCCESS=${TEST__FILE} local CUSTOM_SETUP_ARGUMENTS=( --env ENABLE_POP3__FILE="${TEST__FILE}" -v "${TEST__FILE}:${TEST__FILE}" ) - _init_with_defaults _common_container_setup 'CUSTOM_SETUP_ARGUMENTS' - run docker logs "${CONTAINER_NAME}" - assert_success - assert_line --partial "Getting secret ENABLE_POP3 from ${TEST__FILE}" - _exec_in_container [ -f /etc/dovecot/protocols.d/pop3d.protocol ] - assert_success -} - -@test "Existing environment variables take precedence over __FILE variants" { - export CONTAINER_NAME="${CONTAINER2_NAME}" + CONTAINER_NAME=${CONTAINER2_NAME} + _init_with_defaults + TEST__FILE=${TEST_TMP_CONFIG}/test_secret local CUSTOM_SETUP_ARGUMENTS=( --env TEST="manual-secret" --env TEST__FILE="${TEST__FILE}" ) - _init_with_defaults _common_container_setup 'CUSTOM_SETUP_ARGUMENTS' - run docker logs "${CONTAINER_NAME}" + CONTAINER_NAME=${CONTAINER3_NAME} + _init_with_defaults + NON_EXISTENT__FILE="/tmp/non_existent_secret" + local CUSTOM_SETUP_ARGUMENTS=( + --env TEST__FILE="${NON_EXISTENT__FILE}" + ) + _common_container_setup 'CUSTOM_SETUP_ARGUMENTS' +} + +teardown_file() { + rm -f "${TEST__FILE_SUCCESS}" "${TEST__FILE_WARNING}" + docker rm -f "${CONTAINER1_NAME}" "${CONTAINER2_NAME}" "${CONTAINER3_NAME}" +} + +@test "Environment variables are loaded from files" { + run docker logs "${CONTAINER1_NAME}" + assert_success + assert_line --partial "Getting secret ENABLE_POP3 from ${TEST__FILE_SUCCESS}" + _exec_in_container_explicit "${CONTAINER1_NAME}" [ -f /etc/dovecot/protocols.d/pop3d.protocol ] + assert_success +} + +@test "Existing environment variables take precedence over __FILE variants" { + run docker logs "${CONTAINER2_NAME}" assert_success assert_line --partial "Ignoring TEST since TEST__FILE is also set" } @test "Non-existent file triggers an error" { - export CONTAINER_NAME="${CONTAINER3_NAME}" - local CUSTOM_SETUP_ARGUMENTS=( - --env TEST__FILE="${NON_EXISTENT__FILE}" - ) - _init_with_defaults - _common_container_setup 'CUSTOM_SETUP_ARGUMENTS' - run docker logs "${CONTAINER_NAME}" - + run docker logs "${CONTAINER3_NAME}" assert_success assert_line --partial "File ${NON_EXISTENT__FILE} does not exist" }