Files @ 9ca9c3ada58a
Branch filter:

Location: majic-ansible-roles/roles/mail_server/molecule/default/tests/test_backup.py - annotation

branko
MAR-181: Use Debian-provided Prosody package for testing optional parameter:

- Still properly tests the role, while at the same time making it
possible to use custom apt repository for Debian Buster (due to
Prosody project dropping all repository archives for it).
import os

import testinfra.utils.ansible_runner


testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-optional')


def test_backup(host):
    """
    Tests if mail directory is correctly backed-up.
    """

    # Deliver two mails in order to make sure the directory structure is
    # created.
    send = host.run('swaks --suppress-data --to john.doe@domain1 --server localhost')
    assert send.rc == 0
    send = host.run('swaks --suppress-data --to jane.doe@domain2 --server localhost')
    assert send.rc == 0

    with host.sudo():

        # Remove restore directory in order to make sure restore has worked
        # correctly.
        host.run("rm -rf /root/restore")

        backup_run = host.run('duply main backup')
        assert backup_run.rc == 0

        restore_run = host.run('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 = host.file(directory_path)

            assert directory.is_directory
            assert directory.user == "virtmail"
            assert directory.group == "virtmail"
            assert directory.mode == 0o700