Files @ 502fdc081d35
Branch filter:

Location: majic-ansible-roles/roles/preseed/tests/test_parameters_optional.py - annotation

branko
MAR-32: Added initial scaffolding for testing web_server role:

- Added Molecule configuration for for bringing up a couple of instances.
- Added test playbook that sets-up test instances.
- Fixed issues with file mode in tasks (added leading 0).
- Added test data (TLS private keys and certificates).
- Added dummy test file.
import os

import testinfra.utils.ansible_runner


testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
    '.molecule/ansible_inventory').get_hosts('parameters-optional')


PRESEED_DIRECTORY = '/tmp/custom_preseed_files_location'


def test_preseed_directory(File, Sudo):
    """
    Test presence and permissions of preseed directory.
    """

    with Sudo():

        preseed_directory = File(PRESEED_DIRECTORY)

        assert preseed_directory.is_directory
        assert preseed_directory.mode == 0o750


def test_preseed_configuration_files(File, Sudo):
    """
    Tests presence and permissions on created preseed configuration files.
    """

    with Sudo():

        # Verify that preseed configuration files are created for all hosts.
        for host in testinfra_hosts:

            preseed_file = File(os.path.join(PRESEED_DIRECTORY, "%s.cfg" % host))

            assert preseed_file.is_file
            assert preseed_file.mode == 0o640


def test_preseed_configuration_file_content(File, Sudo):
    """
    Tests content of generated preseed configuration file.
    """

    with Sudo():
        preseed_file = File(os.path.join(PRESEED_DIRECTORY, "%s.cfg" % 'parameters-optional'))
        preseed_file_content = preseed_file.content_string
        ssh_public_key = "CUSTOMKEY"

    assert "d-i debian-installer/language string sr" in preseed_file_content
    assert "d-i debian-installer/country string RS" in preseed_file_content
    assert "d-i debian-installer/locale string en_UK.UTF-8" in preseed_file_content
    assert "d-i keyboard-configuration/xkb-keymap select sv" in preseed_file_content
    assert "d-i netcfg/choose_interface select eth1" in preseed_file_content

    assert """# Manual network configuration.
d-i netcfg/disable_autoconfig boolean true
d-i netcfg/get_ipaddress string 3.3.3.3
d-i netcfg/get_netmask string 255.255.0.0
d-i netcfg/get_gateway string 2.2.2.2
d-i netcfg/get_nameservers string 1.1.1.1
d-i netcfg/confirm_static boolean true

# Hostname and domain configuration.
d-i netcfg/get_hostname string testing
d-i netcfg/get_domain string example.com""" in preseed_file_content

    assert "d-i mirror/http/hostname string ftp.de.debian.org" in preseed_file_content
    assert "d-i mirror/http/directory string /" in preseed_file_content
    assert "d-i mirror/http/proxy string http://proxy.local" in preseed_file_content
    assert "d-i passwd/root-password password myrootpassword" in preseed_file_content
    assert "d-i passwd/root-password-again password myrootpassword" in preseed_file_content
    assert "d-i time/zone string Europe/Belgrade" in preseed_file_content
    assert ssh_public_key in preseed_file_content