From 1def2966b6d845ae41d3087f77d0c3b7c21bf9f1 Mon Sep 17 00:00:00 2001 From: Brennan Kinney <5098581+polarathene@users.noreply.github.com> Date: Mon, 6 Feb 2023 16:57:45 +1300 Subject: [PATCH] chore: Adjust `_run_in_container_bash` to `_run_in_container` Plus some additional bug fixes in the disabled test case --- .../parallel/set1/dovecot/dovecot_quotas.bats | 81 ++++++++++--------- 1 file changed, 42 insertions(+), 39 deletions(-) diff --git a/test/tests/parallel/set1/dovecot/dovecot_quotas.bats b/test/tests/parallel/set1/dovecot/dovecot_quotas.bats index 2dcf80ce..622215b6 100644 --- a/test/tests/parallel/set1/dovecot/dovecot_quotas.bats +++ b/test/tests/parallel/set1/dovecot/dovecot_quotas.bats @@ -21,17 +21,17 @@ function teardown_file() { _default_teardown ; } _add_mail_account_then_wait_until_ready 'quota_user@domain.tld' # Actual tests - _run_in_container_bash "setup quota set quota_user 50M" + _run_in_container setup quota set quota_user 50M assert_failure - _run_in_container_bash "setup quota set username@fulldomain 50M" + _run_in_container setup quota set username@fulldomain 50M assert_failure - _run_in_container_bash "setup quota set quota_user@domain.tld 50M" + _run_in_container setup quota set quota_user@domain.tld 50M assert_success # Cleanup - _run_in_container_bash "setup email del -y quota_user@domain.tld" + _run_in_container setup email del -y quota_user@domain.tld assert_success } @@ -40,29 +40,29 @@ function teardown_file() { _default_teardown ; } _add_mail_account_then_wait_until_ready 'quota_user@domain.tld' # Actual tests - _run_in_container_bash "setup quota set quota_user@domain.tld 26GIGOTS" + _run_in_container setup quota set quota_user@domain.tld 26GIGOTS assert_failure - _run_in_container_bash "setup quota set quota_user@domain.tld 123" + _run_in_container setup quota set quota_user@domain.tld 123 assert_failure - _run_in_container_bash "setup quota set quota_user@domain.tld M" + _run_in_container setup quota set quota_user@domain.tld M assert_failure - _run_in_container_bash "setup quota set quota_user@domain.tld -60M" + _run_in_container setup quota set quota_user@domain.tld -60M assert_failure - _run_in_container_bash "setup quota set quota_user@domain.tld 10B" + _run_in_container setup quota set quota_user@domain.tld 10B assert_success - _run_in_container_bash "setup quota set quota_user@domain.tld 10k" + _run_in_container setup quota set quota_user@domain.tld 10k assert_success - _run_in_container_bash "setup quota set quota_user@domain.tld 10M" + _run_in_container setup quota set quota_user@domain.tld 10M assert_success - _run_in_container_bash "setup quota set quota_user@domain.tld 10G" + _run_in_container setup quota set quota_user@domain.tld 10G assert_success - _run_in_container_bash "setup quota set quota_user@domain.tld 10T" + _run_in_container setup quota set quota_user@domain.tld 10T assert_success # Cleanup - _run_in_container_bash "setup email del -y quota_user@domain.tld" + _run_in_container setup email del -y quota_user@domain.tld assert_success } @@ -71,22 +71,22 @@ function teardown_file() { _default_teardown ; } _add_mail_account_then_wait_until_ready 'quota_user@domain.tld' # Actual tests - _run_in_container_bash "setup quota del uota_user@domain.tld" + _run_in_container setup quota del uota_user@domain.tld assert_failure - _run_in_container_bash "setup quota del quota_user" + _run_in_container setup quota del quota_user assert_failure - _run_in_container_bash "setup quota del dontknowyou@domain.tld" + _run_in_container setup quota del dontknowyou@domain.tld assert_failure - _run_in_container_bash "setup quota set quota_user@domain.tld 10T" + _run_in_container setup quota set quota_user@domain.tld 10T assert_success - _run_in_container_bash "setup quota del quota_user@domain.tld" + _run_in_container setup quota del quota_user@domain.tld assert_success - _run_in_container_bash "grep -i 'quota_user@domain.tld' /tmp/docker-mailserver/dovecot-quotas.cf" + _run_in_container grep -i 'quota_user@domain.tld' /tmp/docker-mailserver/dovecot-quotas.cf assert_failure # Cleanup - _run_in_container_bash "setup email del -y quota_user@domain.tld" + _run_in_container setup email del -y quota_user@domain.tld assert_success } @@ -95,22 +95,23 @@ function teardown_file() { _default_teardown ; } _add_mail_account_then_wait_until_ready 'quota_user@domain.tld' # Actual tests - _run_in_container_bash "grep -i 'quota_user@domain.tld' /tmp/docker-mailserver/dovecot-quotas.cf" + _run_in_container grep -i 'quota_user@domain.tld' /tmp/docker-mailserver/dovecot-quotas.cf assert_failure - _run_in_container_bash "setup quota del quota_user@domain.tld" + _run_in_container setup quota del quota_user@domain.tld assert_success - _run_in_container_bash "setup quota del quota_user@domain.tld" + _run_in_container setup quota del quota_user@domain.tld assert_success # Cleanup - _run_in_container_bash "setup email del -y quota_user@domain.tld" + _run_in_container setup email del -y quota_user@domain.tld assert_success } @test 'should have configured Postfix to use the Dovecot quota-status service' { - _run_in_container_bash "postconf | grep 'check_policy_service inet:localhost:65265'" + _run_in_container postconf assert_success + assert_output --partial 'check_policy_service inet:localhost:65265' } @@ -150,31 +151,33 @@ function teardown_file() { _default_teardown ; } @test 'Deleting an mailbox account should also remove that account from dovecot-quotas.cf' { _add_mail_account_then_wait_until_ready 'quserremoved@domain.tld' - _run_in_container_bash "setup quota set quserremoved@domain.tld 12M" + _run_in_container setup quota set quserremoved@domain.tld 12M assert_success - _run_in_container_bash 'cat /tmp/docker-mailserver/dovecot-quotas.cf | grep -E "^quserremoved@domain.tld\:12M\$" | wc -l | grep 1' + _run_in_container cat '/tmp/docker-mailserver/dovecot-quotas.cf' + assert_success + assert_output 'quserremoved@domain.tld:12M' + + _run_in_container setup email del -y quserremoved@domain.tld assert_success - _run_in_container_bash "setup email del -y quserremoved@domain.tld" + _run_in_container cat /tmp/docker-mailserver/dovecot-quotas.cf assert_success - - _run_in_container_bash 'cat /tmp/docker-mailserver/dovecot-quotas.cf | grep -E "^quserremoved@domain.tld\:12M\$"' - assert_failure + refute_output --partial 'quserremoved@domain.tld:12M' } @test 'Dovecot should acknowledge quota configured for accounts' { _run_in_container_bash "doveadm quota get -u 'user1@localhost.localdomain' | grep 'User quota STORAGE'" assert_output --partial "- 0" - _run_in_container_bash "setup quota set user1@localhost.localdomain 50M" + _run_in_container setup quota set user1@localhost.localdomain 50M assert_success # wait until quota has been updated run _repeat_until_success_or_timeout 20 _exec_in_container_bash 'doveadm quota get -u user1@localhost.localdomain | grep -oP "(User quota STORAGE\s+[0-9]+\s+)51200(.*)"' assert_success - _run_in_container_bash "setup quota del user1@localhost.localdomain" + _run_in_container setup quota del user1@localhost.localdomain assert_success # wait until quota has been updated @@ -189,11 +192,11 @@ function teardown_file() { _default_teardown ; } _add_mail_account_then_wait_until_ready 'quotauser@otherdomain.tld' # Actual tests - _run_in_container_bash 'setup quota set quotauser@otherdomain.tld 10k' + _run_in_container setup quota set quotauser@otherdomain.tld 10k assert_success # wait until quota has been updated - run _repeat_until_success_or_timeout 20 _exec_in_container_bash 'doveadm quota get -u quotauser@otherdomain.tld | grep -oP \"(User quota STORAGE\s+[0-9]+\s+)10(.*)\"' + run _repeat_until_success_or_timeout 20 _exec_in_container_bash 'doveadm quota get -u quotauser@otherdomain.tld | grep -oP "(User quota STORAGE\s+[0-9]+\s+)10(.*)"' assert_success # dovecot and postfix has been restarted @@ -209,10 +212,10 @@ function teardown_file() { _default_teardown ; } _run_in_container_bash "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/quota-exceeded.txt" assert_success # check for quota warn message existence - run _repeat_until_success_or_timeout 20 _exec_in_container_bash 'grep \"Subject: quota warning\" /var/mail/otherdomain.tld/quotauser/new/ -R' + run _repeat_until_success_or_timeout 20 _exec_in_container grep -R 'Subject: quota warning' /var/mail/otherdomain.tld/quotauser/new/ assert_success - run _repeat_until_success_or_timeout 20 sh -c "docker logs mail | grep 'Quota exceeded (mailbox for user is full)'" + run _repeat_until_success_or_timeout 20 sh -c "docker logs ${CONTAINER_NAME} | grep 'Quota exceeded (mailbox for user is full)'" assert_success # ensure only the first big message and the warn message are present (other messages are rejected: mailbox is full) @@ -221,6 +224,6 @@ function teardown_file() { _default_teardown ; } assert_output "2" # Cleanup - _run_in_container_bash "setup email del -y quotauser@otherdomain.tld" + _run_in_container setup email del -y quotauser@otherdomain.tld assert_success }