mirror of
https://github.com/docker-mailserver/docker-mailserver.git
synced 2025-07-10 17:34:51 +02:00
tests: revise "env vars from files" tests
This commit is contained in:
parent
a5f0f67129
commit
0f542670f2
1 changed files with 35 additions and 31 deletions
|
@ -6,57 +6,61 @@ export CONTAINER2_NAME='dms-test_env-files_warning'
|
||||||
export CONTAINER3_NAME='dms-test_env-files_error'
|
export CONTAINER3_NAME='dms-test_env-files_error'
|
||||||
|
|
||||||
setup_file() {
|
setup_file() {
|
||||||
|
export CONTAINER_NAME
|
||||||
export TEST__FILE
|
export TEST__FILE
|
||||||
TEST__FILE=$(mktemp)
|
export TEST__FILE_SUCCESS
|
||||||
export NON_EXISTENT__FILE="/tmp/non_existent_secret"
|
export NON_EXISTENT__FILE
|
||||||
|
|
||||||
|
CONTAINER_NAME=${CONTAINER1_NAME}
|
||||||
|
_init_with_defaults
|
||||||
|
TEST__FILE=${TEST_TMP_CONFIG}/test_secret
|
||||||
echo 1 > "${TEST__FILE}"
|
echo 1 > "${TEST__FILE}"
|
||||||
}
|
TEST__FILE_SUCCESS=${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}"
|
|
||||||
local CUSTOM_SETUP_ARGUMENTS=(
|
local CUSTOM_SETUP_ARGUMENTS=(
|
||||||
--env ENABLE_POP3__FILE="${TEST__FILE}"
|
--env ENABLE_POP3__FILE="${TEST__FILE}"
|
||||||
-v "${TEST__FILE}:${TEST__FILE}"
|
-v "${TEST__FILE}:${TEST__FILE}"
|
||||||
)
|
)
|
||||||
_init_with_defaults
|
|
||||||
_common_container_setup 'CUSTOM_SETUP_ARGUMENTS'
|
_common_container_setup 'CUSTOM_SETUP_ARGUMENTS'
|
||||||
run docker logs "${CONTAINER_NAME}"
|
|
||||||
|
|
||||||
assert_success
|
CONTAINER_NAME=${CONTAINER2_NAME}
|
||||||
assert_line --partial "Getting secret ENABLE_POP3 from ${TEST__FILE}"
|
_init_with_defaults
|
||||||
_exec_in_container [ -f /etc/dovecot/protocols.d/pop3d.protocol ]
|
TEST__FILE=${TEST_TMP_CONFIG}/test_secret
|
||||||
assert_success
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "Existing environment variables take precedence over __FILE variants" {
|
|
||||||
export CONTAINER_NAME="${CONTAINER2_NAME}"
|
|
||||||
local CUSTOM_SETUP_ARGUMENTS=(
|
local CUSTOM_SETUP_ARGUMENTS=(
|
||||||
--env TEST="manual-secret"
|
--env TEST="manual-secret"
|
||||||
--env TEST__FILE="${TEST__FILE}"
|
--env TEST__FILE="${TEST__FILE}"
|
||||||
)
|
)
|
||||||
_init_with_defaults
|
|
||||||
_common_container_setup 'CUSTOM_SETUP_ARGUMENTS'
|
_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_success
|
||||||
assert_line --partial "Ignoring TEST since TEST__FILE is also set"
|
assert_line --partial "Ignoring TEST since TEST__FILE is also set"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "Non-existent file triggers an error" {
|
@test "Non-existent file triggers an error" {
|
||||||
export CONTAINER_NAME="${CONTAINER3_NAME}"
|
run docker logs "${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}"
|
|
||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_line --partial "File ${NON_EXISTENT__FILE} does not exist"
|
assert_line --partial "File ${NON_EXISTENT__FILE} does not exist"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue