Files @ 8902cd5aa66b
Branch filter:

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

branko
MAR-218: Improve mail server role test reliability:

- Introduce sleep after sending out mails in order to ensure that
Postfix has had enough time to process the messages.
- Relevant only for tests that take care of parsing the mail log.
- Solves the false negatives caused by timing issues.
- It might be a good idea down the line to implement some kind of
retry/backoff mechanism instead.
import os

import pytest
import testinfra.utils.ansible_runner


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

ansible_runner = testinfra.utils.ansible_runner.AnsibleRunner(
    os.environ['MOLECULE_INVENTORY_FILE'])


@pytest.mark.parametrize("server",
                         sorted(
                             set(ansible_runner.get_hosts('all')) -
                             set(ansible_runner.get_hosts('helper'))))
def test_connectivity_from_client(host, server):
    """
    Tests connectivity towards mail forwarder servers from client
    (non-relay). Connectivity should fail for both.
    """

    with host.sudo():

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