-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: Remove the Makefile
backup
target (#3000)
* chore: Remove `backup` target from Makefile - The `backup` target is no longer serving any value to us. It was made redundant with changes added in Oct 2020. - `clean` target inline docs revised. - `.gitignore` remove test lines that are no longer valid. * chore: Parallel test target split to multi-line * tests(fix): Test `setup.sh` with temporary config dir The `no_containers.bats` test has many redundant test cases already covered by `setup-cli`. They're basically identical. Removed all but one. This removes some config dirs that were being explicitly created instead of using the test helper to generate a directory that can be used to test the `-p` option instead. * ci: Ensure tests are run when `Makefile` is modified
- Loading branch information
1 parent
a7e6439
commit 1650cdf
Showing
4 changed files
with
30 additions
and
169 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,144 +1,27 @@ | ||
load "${REPOSITORY_ROOT}/test/test_helper/common" | ||
load "${REPOSITORY_ROOT}/test/helper/common" | ||
load "${REPOSITORY_ROOT}/test/helper/setup" | ||
|
||
function setup_file() { | ||
# Fail early if the test image is already running: | ||
assert_not_equal "$(docker ps | grep -o "${NAME}")" "${NAME}" | ||
# Test may fail if an existing DMS container is running, | ||
# Which can occur from a prior test failing before reaching `no_container.bats` | ||
# and that failure not properly handling teardown. | ||
} | ||
# Tests the `setup.sh` companion script. | ||
# Only test coverage below is that the config path `-p` and image `-i` options work as intended. | ||
# NOTE: Must be run in serial mode, as no existing containers should be present. | ||
BATS_TEST_NAME_PREFIX='[No Existing Container] ' | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh alias list" { | ||
mkdir -p ./test/alias/config && echo "test@example.org test@forward.com" > ./test/alias/config/postfix-virtual.cf | ||
run ./setup.sh -p ./test/alias/config alias list | ||
assert_success | ||
} | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh alias add" { | ||
mkdir -p ./test/alias/config && echo "" > ./test/alias/config/postfix-virtual.cf | ||
./setup.sh -p ./test/alias/config alias add alias@example.com target1@forward.com | ||
./setup.sh -p ./test/alias/config alias add alias@example.com target2@forward.com | ||
sleep 5 | ||
run /bin/sh -c 'cat ./test/alias/config/postfix-virtual.cf | grep "alias@example.com target1@forward.com,target2@forward.com" | wc -l | grep 1' | ||
assert_success | ||
} | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh alias del" { | ||
# start with a1 -> t1,t2 and a2 -> t1 | ||
mkdir -p ./test/alias/config && echo -e 'alias1@example.org target1@forward.com,target2@forward.com\nalias2@example.org target1@forward.com' > ./test/alias/config/postfix-virtual.cf | ||
|
||
# we remove a1 -> t1 ==> a1 -> t2 and a2 -> t1 | ||
./setup.sh -p ./test/alias/config alias del alias1@example.org target1@forward.com | ||
run grep "target1@forward.com" ./test/alias/config/postfix-virtual.cf | ||
assert_output --regexp "^alias2@example.org +target1@forward.com$" | ||
|
||
run grep "target2@forward.com" ./test/alias/config/postfix-virtual.cf | ||
assert_output --regexp "^alias1@example.org +target2@forward.com$" | ||
|
||
# we remove a1 -> t2 ==> a2 -> t1 | ||
./setup.sh -p ./test/alias/config alias del alias1@example.org target2@forward.com | ||
run grep "alias1@example.org" ./test/alias/config/postfix-virtual.cf | ||
assert_failure | ||
|
||
run grep "alias2@example.org" ./test/alias/config/postfix-virtual.cf | ||
assert_success | ||
|
||
# we remove a2 -> t1 ==> empty | ||
./setup.sh -p ./test/alias/config alias del alias2@example.org target1@forward.com | ||
run grep "alias2@example.org" ./test/alias/config/postfix-virtual.cf | ||
assert_failure | ||
} | ||
|
||
# quota | ||
@test "[No Existing Container] checking setup.sh: setup.sh setquota" { | ||
mkdir -p ./test/quota/config && echo "" > ./test/quota/config/dovecot-quotas.cf | ||
|
||
run ./setup.sh -p ./test/quota/config email add quota_user@example.com test_password | ||
run ./setup.sh -p ./test/quota/config email add quota_user2@example.com test_password | ||
|
||
run ./setup.sh -p ./test/quota/config quota set quota_user@example.com 12M | ||
assert_success | ||
run ./setup.sh -p ./test/quota/config quota set 51M quota_user@example.com | ||
assert_failure | ||
run ./setup.sh -p ./test/quota/config quota set unknown@domain.com 150M | ||
assert_failure | ||
|
||
run ./setup.sh -p ./test/quota/config quota set quota_user2 51M | ||
assert_failure | ||
|
||
run /bin/sh -c 'cat ./test/quota/config/dovecot-quotas.cf | grep -E "^quota_user@example.com\:12M\$" | wc -l | grep 1' | ||
assert_success | ||
|
||
run ./setup.sh -p ./test/quota/config quota set quota_user@example.com 26M | ||
assert_success | ||
run /bin/sh -c 'cat ./test/quota/config/dovecot-quotas.cf | grep -E "^quota_user@example.com\:26M\$" | wc -l | grep 1' | ||
assert_success | ||
|
||
run grep "quota_user2@example.com" ./test/alias/config/dovecot-quotas.cf | ||
assert_failure | ||
} | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh delquota" { | ||
mkdir -p ./test/quota/config && echo "" > ./test/quota/config/dovecot-quotas.cf | ||
|
||
run ./setup.sh -p ./test/quota/config email add quota_user@example.com test_password | ||
run ./setup.sh -p ./test/quota/config email add quota_user2@example.com test_password | ||
|
||
run ./setup.sh -p ./test/quota/config quota set quota_user@example.com 12M | ||
assert_success | ||
run /bin/sh -c 'cat ./test/quota/config/dovecot-quotas.cf | grep -E "^quota_user@example.com\:12M\$" | wc -l | grep 1' | ||
assert_success | ||
|
||
|
||
run ./setup.sh -p ./test/quota/config quota del unknown@domain.com | ||
assert_failure | ||
run /bin/sh -c 'cat ./test/quota/config/dovecot-quotas.cf | grep -E "^quota_user@example.com\:12M\$" | wc -l | grep 1' | ||
assert_success | ||
|
||
run ./setup.sh -p ./test/quota/config quota del quota_user@example.com | ||
assert_success | ||
run grep "quota_user@example.com" ./test/alias/config/dovecot-quotas.cf | ||
assert_failure | ||
} | ||
|
||
# debug | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh relay add-domain" { | ||
mkdir -p ./test/relay/config && echo -n > ./test/relay/config/postfix-relaymap.cf | ||
./setup.sh -p ./test/relay/config relay add-domain example1.org smtp.relay1.com 2525 | ||
./setup.sh -p ./test/relay/config relay add-domain example2.org smtp.relay2.com | ||
./setup.sh -p ./test/relay/config relay add-domain example3.org smtp.relay3.com 2525 | ||
./setup.sh -p ./test/relay/config relay add-domain example3.org smtp.relay.com 587 | ||
|
||
# check adding | ||
run /bin/sh -c 'cat ./test/relay/config/postfix-relaymap.cf | grep -e "^@example1.org\s\+\[smtp.relay1.com\]:2525" | wc -l | grep 1' | ||
assert_success | ||
# test default port | ||
run /bin/sh -c 'cat ./test/relay/config/postfix-relaymap.cf | grep -e "^@example2.org\s\+\[smtp.relay2.com\]:25" | wc -l | grep 1' | ||
assert_success | ||
# test modifying | ||
run /bin/sh -c 'cat ./test/relay/config/postfix-relaymap.cf | grep -e "^@example3.org\s\+\[smtp.relay.com\]:587" | wc -l | grep 1' | ||
assert_success | ||
} | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh relay add-auth" { | ||
mkdir -p ./test/relay/config && echo -n > ./test/relay/config/postfix-sasl-password.cf | ||
./setup.sh -p ./test/relay/config relay add-auth example.org smtp_user smtp_pass | ||
./setup.sh -p ./test/relay/config relay add-auth example2.org smtp_user2 smtp_pass2 | ||
./setup.sh -p ./test/relay/config relay add-auth example2.org smtp_user2 smtp_pass_new | ||
function setup_file() { | ||
# Fail early if the testing image is already running: | ||
assert_not_equal "$(docker ps | grep -o "${IMAGE_NAME}")" "${IMAGE_NAME}" | ||
|
||
# test adding | ||
run /bin/sh -c 'cat ./test/relay/config/postfix-sasl-password.cf | grep -e "^@example.org\s\+smtp_user:smtp_pass" | wc -l | grep 1' | ||
assert_success | ||
# test updating | ||
run /bin/sh -c 'cat ./test/relay/config/postfix-sasl-password.cf | grep -e "^@example2.org\s\+smtp_user2:smtp_pass_new" | wc -l | grep 1' | ||
assert_success | ||
# Copy the base config that `setup.sh` will volume mount to a container it runs: | ||
export TEST_TMP_CONFIG | ||
TEST_TMP_CONFIG=$(duplicate_config_for_container . 'no_container') | ||
} | ||
|
||
@test "[No Existing Container] checking setup.sh: setup.sh relay exclude-domain" { | ||
mkdir -p ./test/relay/config && echo -n > ./test/relay/config/postfix-relaymap.cf | ||
./setup.sh -p ./test/relay/config relay exclude-domain example.org | ||
@test "'setup.sh -p <PATH> -i <IMAGE>' should correctly use options" { | ||
# Create a `postfix-virtual.cf` config to verify the container can access it: | ||
local MAIL_ALIAS='no_container@example.test no_container@forward.test' | ||
echo "${MAIL_ALIAS}" > "${TEST_TMP_CONFIG}/postfix-virtual.cf" | ||
|
||
run /bin/sh -c 'cat ./test/relay/config/postfix-relaymap.cf | grep -e "^@example.org\s*$" | wc -l | grep 1' | ||
# Should run the testing image with a volume mount to the provided path: | ||
run ./setup.sh -p "${TEST_TMP_CONFIG}" -i "${IMAGE_NAME}" alias list | ||
assert_success | ||
assert_output --partial "* ${MAIL_ALIAS}" | ||
} |