Files @ ec4e3e91c4d3
Branch filter:

Location: majic-ansible-roles/roles/mail_forwarder/tests/test_connectivity_from_relay.py

branko
MAR-128: Upgraded tests for ldap_server 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).
- Fixed some linting issues.
- Use localhost as backup client server name. This should make it
simpler in future to cover more platforms.
- Set-up the /etc/hosts for tests with correct entries (primarily
aliases towards localhost to make it less important what the
hostname is).
- Renamed private key/certificate files for parameters-mandatory
server since server got renamed as well.
- Updated IP addresses used for testing to make it easier to test new
platforms in the future.
- Use inventory_hostname-based parameterisation of tests where
appropriate. Currently hard-coded value for this because
host.ansible.get_variables() produces errors.
import testinfra.utils.ansible_runner


testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
    '.molecule/ansible_inventory').get_hosts('mail-server')


def test_connectivity_from_relay(Command, Sudo):
    """
    Tests connectivity towards mail forwarder servers from relay. Connection
    towards parameters-mandatory should fail.
    """

    with Sudo():

        ping = Command('hping3 -S -p 25 -c 1 parameters-mandatory')
        assert ping.rc != 0
        assert "100% packet loss" in ping.stderr

        ping = Command('hping3 -S -p 25 -c 1 parameters-optional')
        assert ping.rc == 0

        ping = Command('hping3 -S -p 25 -c 1 parameters-no-incoming')
        assert "100% packet loss" in ping.stderr
        assert ping.rc != 0


def test_mail_reception_from_relay(Command, Sudo):
    """
    Tests if mails can be sent from relay to servers configured to use the
    relay.
    """

    send = Command('swaks --suppress-data --to root@parameters-optional --server parameters-optional')
    assert send.rc == 0


def test_open_relay(Command):
    """
    Tests if mail forwarder behaves as open relay.
    """

    no_recipients_accepted = 24

    send = Command('swaks --suppress-data --to root@client1 --server parameters-optional')
    assert send.rc == no_recipients_accepted
    assert "Relay access denied" in send.stdout