Welcome to mirror list, hosted at ThFree Co, Russian Federation.

test_centos_fedora_common_support.py « test - github.com/pi-hole/pi-hole.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 7e0bae4e7b50d874fae77028f6ecee6d9bc9ee1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
from .conftest import (
    tick_box,
    cross_box,
    mock_command,
)


def mock_selinux_config(state, host):
    """
    Creates a mock SELinux config file with expected content
    """
    # validate state string
    valid_states = ["enforcing", "permissive", "disabled"]
    assert state in valid_states
    # getenforce returns the running state of SELinux
    mock_command("getenforce", {"*": (state.capitalize(), "0")}, host)
    # create mock configuration with desired content
    host.run(
        """
    mkdir /etc/selinux
    echo "SELINUX={state}" > /etc/selinux/config
    """.format(
            state=state.lower()
        )
    )


def test_selinux_enforcing_exit(host):
    """
    confirms installer prompts to exit when SELinux is Enforcing by default
    """
    mock_selinux_config("enforcing", host)
    check_selinux = host.run(
        """
    source /opt/pihole/basic-install.sh
    checkSelinux
    """
    )
    expected_stdout = cross_box + " Current SELinux: enforcing"
    assert expected_stdout in check_selinux.stdout
    expected_stdout = "SELinux Enforcing detected, exiting installer"
    assert expected_stdout in check_selinux.stdout
    assert check_selinux.rc == 1


def test_selinux_permissive(host):
    """
    confirms installer continues when SELinux is Permissive
    """
    mock_selinux_config("permissive", host)
    check_selinux = host.run(
        """
    source /opt/pihole/basic-install.sh
    checkSelinux
    """
    )
    expected_stdout = tick_box + " Current SELinux: permissive"
    assert expected_stdout in check_selinux.stdout
    assert check_selinux.rc == 0


def test_selinux_disabled(host):
    """
    confirms installer continues when SELinux is Disabled
    """
    mock_selinux_config("disabled", host)
    check_selinux = host.run(
        """
    source /opt/pihole/basic-install.sh
    checkSelinux
    """
    )
    expected_stdout = tick_box + " Current SELinux: disabled"
    assert expected_stdout in check_selinux.stdout
    assert check_selinux.rc == 0