Files @ ceb51ff23ae3
Branch filter:

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

branko
MAR-132: Added support to xmpp_server role for Debian 9 (Stretch):

- Updated tests to include Debian 9 in testing. Existing private keys
are reused where possible (since most of the naming is identical
between the machines with jessie/stretch).
- Updated invocation of sendxmpp in tests as workaround for
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=854210.
- Updated testing of imported keys to accomodate differences between
gpg/gpg2 (used by apt-key in Jessie/Stretch).
import os

import testinfra.utils.ansible_runner


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


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

    with host.sudo():

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

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

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

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

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

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


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

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

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


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

    no_recipients_accepted = 24

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

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