Files
@ 277c561f3f52
Branch filter:
Location: majic-ansible-roles/roles/mail_server/tests/test_optional.py - annotation
277c561f3f52
3.8 KiB
text/x-python
MAR-28: Impelmented general and SMTP-related tests for mail_server:
- Increased amount of memory in test instances to 768MB.
- Fixed playbook for runs against client test instances.
- Fixed typos and invalid settings in test playbook.
- Switched to expanded syntax in tasks used for deploying TLS keys and
certificates in order to avoid mangling of TAB characters.
- Fixed missing permissions set-up for Postfix main configuration file.
- Fixed deployment of Postfix master.cf configuration file to take into account
configurable virtual mail user.
- Implemented tests covering SMTP functionality.
- Increased amount of memory in test instances to 768MB.
- Fixed playbook for runs against client test instances.
- Fixed typos and invalid settings in test playbook.
- Switched to expanded syntax in tasks used for deploying TLS keys and
certificates in order to avoid mangling of TAB characters.
- Fixed missing permissions set-up for Postfix main configuration file.
- Fixed deployment of Postfix master.cf configuration file to take into account
configurable virtual mail user.
- Implemented tests covering SMTP functionality.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 277c561f3f52 | import re
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
'.molecule/ansible_inventory').get_hosts('parameters-optional')
def test_smtp_tls_files(File, Sudo):
"""
Tests if SMTP TLS private key has been deployed correctly.
"""
with Sudo():
tls_file = File('/etc/ssl/private/parameters-optional_smtp.key')
assert tls_file.is_file
assert tls_file.user == 'root'
assert tls_file.group == 'root'
assert tls_file.mode == 0o640
assert tls_file.content == open("tests/data/x509/parameters-optional_smtp.key.pem", "r").read().rstrip()
tls_file = File('/etc/ssl/certs/parameters-optional_smtp.pem')
assert tls_file.is_file
assert tls_file.user == 'root'
assert tls_file.group == 'root'
assert tls_file.mode == 0o644
assert tls_file.content == open("tests/data/x509/parameters-optional_smtp.cert.pem", "r").read().rstrip()
tls_file = File('/etc/ssl/private/parameters-optional_imap.key')
assert tls_file.is_file
assert tls_file.user == 'root'
assert tls_file.group == 'root'
assert tls_file.mode == 0o640
assert tls_file.content == open("tests/data/x509/parameters-optional_imap.key.pem", "r").read().rstrip()
tls_file = File('/etc/ssl/certs/parameters-optional_imap.pem')
assert tls_file.is_file
assert tls_file.user == 'root'
assert tls_file.group == 'root'
assert tls_file.mode == 0o644
assert tls_file.content == open("tests/data/x509/parameters-optional_imap.cert.pem", "r").read().rstrip()
def test_certificate_validity_check_configuration(File):
"""
Tests if certificate validity check configuration file has been deployed
correctly.
"""
config = File('/etc/check_certificate/parameters-optional_smtp.conf')
assert config.is_file
assert config.user == 'root'
assert config.group == 'root'
assert config.mode == 0o644
assert config.content == "/etc/ssl/certs/parameters-optional_smtp.pem"
config = File('/etc/check_certificate/parameters-optional_imap.conf')
assert config.is_file
assert config.user == 'root'
assert config.group == 'root'
assert config.mode == 0o644
assert config.content == "/etc/ssl/certs/parameters-optional_imap.pem"
def test_mailname_file_content(File):
"""
Tests the system mail name file content.
"""
mailname = File('/etc/mailname')
assert mailname.content == "parameters-optional"
def test_postfix_main_cf_file_content(File):
"""
Tests if the Postfix main configuration file content is correct.
"""
config = File('/etc/postfix/main.cf')
config_lines = config.content.split("\n")
assert "myhostname = parameters-optional" in config_lines
assert "mydestination = parameters-optional, parameters-optional, localhost.localdomain, localhost" in config_lines
assert "mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.31.127.20" in config_lines
assert "smtpd_tls_cert_file = /etc/ssl/certs/parameters-optional_smtp.pem" in config_lines
assert "smtpd_tls_key_file = /etc/ssl/private/parameters-optional_smtp.key" in config_lines
assert " reject_rbl bl.spamcop.net" in config_lines
assert " reject_rbl zen.spamhaus.org" in config_lines
def test_local_aliases(Command, File, Sudo):
"""
Tests if local aliases are configured correctly.
"""
send = Command('swaks --suppress-data --to root@localhost')
assert send.rc == 0
message_id = re.search('Ok: queued as (.*)', send.stdout).group(1)
with Sudo():
mail_log = File('/var/log/mail.log')
pattern = "dovecot: lda\(john.doe@domain1\): msgid=<[^.]*.%s@[^>]*>: saved mail to INBOX" % message_id
assert re.search(pattern, mail_log.content) is not None
|