docker-mailserver/test/config
Brennan Kinney 5bada0a83b
tests: Refactor LDAP tests to current conventions (#3483)
* tests: Switch to setup helper and conventions

* tests: Adapt run command to new conventions

- We have two helper methods with implicit `CONTAINER_NAME` reference, which is a bit more DRY and improves readability.
- `wc -l` + `assert_output 1` converted to use helper `_should_output_number_of_lines 1`
- `DOMAIN` var changed from `my-domain.com` to local testing domain `example.test`.

* tests: Refactor `setup_file()`

- Test wide ENV defined at the top
- OpenLDAP build and run logic grouped together. Added notes, network alias and tty not required.
- Extracted out special LDAP Postfix/Dovecot ENV into separate array. LDAP specific provisioning / auth ENV also included, with comments + linebreak to better group related ENV.
- Likewise additional ENV to support test cases has been extracted to a separate array with additional comments for context.
- Those two arrays are expanded back into the main `CUSTOM_SETUP_ARGUMENTS` that configure hostname and network for the DMS container.

* tests: Refactor the LDAP account table query testcase

- Covers 3 accounts to test from LDAP.
  - 2 are the same query against users/aliases/groups tables in Postfix, only differing by account queried (and expected as returned result).
  - 1 separate test to ensure a difference in config is supported correctly.
- Extracted repeated test logic into a helper method.
- Added additional context in comments about the creation source of these LDAP accounts and their related Postfix config / interaction. Direct reference to special case PR (since `git blame` will be less useful).

* tests: Use iteration for `grep` setting checks

More DRY approach. With a bit more helpful failure context via `assert_output` (_and only grepping the key_). Simpler to grok what's being covered.

* tests: DRY test email delivery

A bit more verbose with the new helper method. `test-email.txt` template is only used by the LDAP test, as is the `sendmail` command.

Helper will take two args to support the testcases, but at a later date should be refactored to be consistent with the `_send_email()` helper (_which presently uses `nc` that is required for plain-text mail/auth, otherwise we'd have used `openssl`, bigger refactor required_).

* tests: Slight revisions and relocating testcases

- Dovecot quota plugin testcase revised to check files exist instead of rely on `ls` failure.
- Moved Postfix quota plugin testcase into prior dovecot testcase for quota plugin check. Better error output by only querying the `smtpd_recipient_restrictions` setting (_which should be the only one configured for the service_).
- Moved the saslauthd and pflogsumm testcases (_no changes beyond revised comments_) above the `ATTENTION` comment, and one testcase below the comment that belonged to that group.

* tests: Simplify openldap `docker build` command

- `--no-cache` was creating a new image on the Docker host each time the test is run. Shouldn't be any need to build without cache.
- No need to use `pushd` + `popd`, can just provide the path context directly, and the `./Dockerfile` is an implicit default thus `-f` not required either.

Additionally removed the old `checking` prefix from testcase names.

* tests: Move LDAP specific config into `test/config/ldap/`

- No changes to any of these config files, just better isolation as not relevant to any other tests.
- Section heading in `setup_file()` added to distinguish the remainder of the function is dedicated to the DMS container setup.
- Comment providing some context about the `mv` to maintainers, this should be done after defaults are initialized but before starting up the container.

* chore: Appease the lint gods

* Apply suggestions from code review
2023-08-17 14:33:34 +12:00
..
dovecot-lmtp config: ensure SASL socket file is not inside a volume mount (#3131) 2023-03-03 23:42:55 +01:00
dovecot-sieve tests: Extract some test cases out from tests.bats (#2980) 2023-01-07 11:36:20 +13:00
duplicate_config_test Fix linter issue 2020-10-20 15:02:31 +02:00
example-opendkim tests(refactor): open_dkim.bats (#3060) 2023-02-10 00:18:06 +13:00
fetchmail tests(refactor): mail_fetchmail.bats + co-locate test cases for processes (#3010) 2023-01-18 14:42:55 +13:00
getmail feature: adding getmail as an alternative to fetchmail (#2803) 2023-05-23 17:25:08 +02:00
ldap tests: Refactor LDAP tests to current conventions (#3483) 2023-08-17 14:33:34 +12:00
override-configs removal: configomat (submodule) (#3045) 2023-02-05 12:39:05 +01:00
relay-hosts Update relayhost_map with virtual accounts too 2020-08-28 15:03:51 +02:00
rspamd_full scripts: Rspamd stabilization pt. 2 (#3282) 2023-04-23 14:02:56 +02:00
smtp-delivery tests: Extract some test cases out from tests.bats (#2980) 2023-01-07 11:36:20 +13:00
templates build: cleaned up Makefile (#2833) 2022-10-17 08:08:04 +13:00
user-patches Remove unusual space from shebang line (#2834) 2022-10-17 10:40:09 +02:00
without-accounts Reinstane required (empty) folder 2020-10-18 02:25:03 +02:00
amavis.cf Allow user to provide Amavis configuration (#299) 2016-09-02 09:08:41 +02:00
fail2ban-fail2ban.cf Add ability to override fail2ban.conf with fail2ban.local values. (#769) 2017-12-07 19:27:31 +01:00
fail2ban-jail.cf firewall: replace iptables with nftables (#2505) 2022-04-05 15:13:59 +02:00
postfix-regexp.cf support comments in .cf files 2020-05-06 22:59:55 +02:00
postfix-virtual.cf support comments in .cf files 2020-05-06 22:59:55 +02:00
whitelist_clients.local Include whitelist_clients.local in postgrey setup from config folder (#564) 2017-04-12 17:59:04 +02:00
whitelist_recipients Support for additional postgrey options (Close: #998, #999, #1046) 2018-11-01 19:32:36 +01:00