Files
@ fb5e4e372902
Branch filter:
Location: majic-ansible-roles/roles/mail_server/tests/test_backup.py - annotation
fb5e4e372902
1.6 KiB
text/x-python
MAR-128: Upgraded tests for mail_forwarder role:
- Switch to new Molecule configuration.
- Updated set-up playbook to use become: yes.
- Moved some preparatory steps outside of the main playbook (eases
idempotence tests).
- Updated tests to reference the yml inventory file.
- Updated tests to use new fixture (host instead of individual ones).
- Switched to extracting hostname instead of hard-coding it in a
couple of tests.
- Fixed some linting issues.
- Rearranged IP addresses for test instances a bit.
- Expanded on available hosts for testing all OS/paramter
combinations.
- Switched to using a more resilient way to populate /etc/hosts during
prepartion phase.
- Expanded connectivity tests to include all the introduced hosts.
- Switch to new Molecule configuration.
- Updated set-up playbook to use become: yes.
- Moved some preparatory steps outside of the main playbook (eases
idempotence tests).
- Updated tests to reference the yml inventory file.
- Updated tests to use new fixture (host instead of individual ones).
- Switched to extracting hostname instead of hard-coding it in a
couple of tests.
- Fixed some linting issues.
- Rearranged IP addresses for test instances a bit.
- Expanded on available hosts for testing all OS/paramter
combinations.
- Switched to using a more resilient way to populate /etc/hosts during
prepartion phase.
- Expanded connectivity tests to include all the introduced hosts.
b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 b598cf22ae50 | import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
'.molecule/ansible_inventory').get_hosts('parameters-optional')
def test_backup(Command, File, Sudo):
"""
Tests if mail directory is correctly backed-up.
"""
# Deliver two mails in order to make sure the directory structure is
# created.
send = Command('swaks --suppress-data --to john.doe@domain1 --server localhost')
assert send.rc == 0
send = Command('swaks --suppress-data --to jane.doe@domain2 --server localhost')
assert send.rc == 0
with Sudo():
# Remove restore directory in order to make sure restore has worked
# correctly.
Command("rm -rf /root/restore")
backup_run = Command('duply main backup')
assert backup_run.rc == 0
restore_run = Command('duply main restore /root/restore')
assert restore_run.rc == 0
for directory_path in ["/root/restore/var/virtmail/domain1",
"/root/restore/var/virtmail/domain1/john.doe",
"/root/restore/var/virtmail/domain1/john.doe/Maildir",
"/root/restore/var/virtmail/domain2",
"/root/restore/var/virtmail/domain2/jane.doe",
"/root/restore/var/virtmail/domain2/jane.doe/Maildir"]:
directory = File(directory_path)
assert directory.is_directory
assert directory.user == "virtmail"
assert directory.group == "virtmail"
assert directory.mode == 0o700
|