import os

import pytest

import testinfra.utils.ansible_runner


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


@pytest.mark.parametrize('server', testinfra.utils.ansible_runner.AnsibleRunner(
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-*')
)
@pytest.mark.parametrize('ip_protocol', [4, 6])
def test_connectivity(host, server, ip_protocol):

    with host.sudo():

        ping = host.run('nmap -%s -p 389 -oG - %s', str(ip_protocol), server)
        assert ping.rc == 0
        assert "Ports: 389/open/tcp//ldap/" in ping.stdout

        ping = host.run('nmap -%s -p 636 -oG - %s', str(ip_protocol), server)
        assert ping.rc == 0
        assert "Ports: 636/open/tcp//ldapssl/" in ping.stdout
