Files @ 9ca9c3ada58a
Branch filter:

Location: majic-ansible-roles/roles/preseed/molecule/default/tests/test_parameters_optional_with_overrides.py

branko
MAR-181: Use Debian-provided Prosody package for testing optional parameter:

- Still properly tests the role, while at the same time making it
possible to use custom apt repository for Debian Buster (due to
Prosody project dropping all repository archives for it).
import os

import pytest

import testinfra.utils.ansible_runner


testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
    os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('parameters-optional-with-overrides')


@pytest.mark.parametrize("distribution_release", [
    "buster"
])
def test_preseed_configuration_file_content_host_without_overrides(host, distribution_release):
    """
    Tests content of generated preseed configuration file.
    """

    hostname = 'parameters-mandatory-%s64' % distribution_release

    with host.sudo():
        preseed_file = host.file(os.path.join("/tmp/preseed_files", "%s.cfg" % hostname))
        preseed_file_content = preseed_file.content_string
        ssh_public_key = "MY_ANSIBLE_KEY"

    assert "d-i debian-installer/language string en" in preseed_file_content
    assert "d-i debian-installer/country string SE" in preseed_file_content
    assert "d-i debian-installer/locale string en_US.UTF-8" in preseed_file_content
    assert "d-i keyboard-configuration/xkb-keymap select us" in preseed_file_content
    assert "d-i netcfg/choose_interface select eth0" in preseed_file_content

    assert """# DHCP network configuration.
d-i netcfg/disable_autoconfig boolean false
d-i netcfg/get_hostname string ignored-value
d-i netcfg/get_domain string ignored-value""" in preseed_file_content

    assert "d-i mirror/http/hostname string ftp.se.debian.org" in preseed_file_content
    assert "d-i mirror/http/directory string /debian" in preseed_file_content
    assert "d-i mirror/http/proxy string " in preseed_file_content
    assert "d-i passwd/root-password password root" in preseed_file_content
    assert "d-i passwd/root-password-again password root" in preseed_file_content
    assert "d-i time/zone string Europe/Stockholm" in preseed_file_content
    assert ssh_public_key in preseed_file_content


@pytest.mark.parametrize("distribution_release", [
    "buster"
])
def test_preseed_configuration_file_content_host_with_overrides(host, distribution_release):
    """
    Tests content of generated preseed configuration file.
    """

    hostname = 'parameters-optional-with-overrides-%s64' % distribution_release

    with host.sudo():
        preseed_file = host.file(os.path.join("/tmp/preseed_files", "%s.cfg" % hostname))
        preseed_file_content = preseed_file.content_string
        ssh_public_key = "MY_ANSIBLE_KEY"

    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