mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-22 14:58:08 +00:00
commit
3e79e0b1ab
@ -1,4 +1,4 @@
|
|||||||
FROM centos:7
|
FROM centos:8
|
||||||
|
|
||||||
ENV GITDIR /etc/.pihole
|
ENV GITDIR /etc/.pihole
|
||||||
ENV SCRIPTDIR /opt/pihole
|
ENV SCRIPTDIR /opt/pihole
|
||||||
|
16
test/centos7.Dockerfile
Normal file
16
test/centos7.Dockerfile
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
FROM centos:7
|
||||||
|
|
||||||
|
ENV GITDIR /etc/.pihole
|
||||||
|
ENV SCRIPTDIR /opt/pihole
|
||||||
|
|
||||||
|
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
|
||||||
|
ADD . $GITDIR
|
||||||
|
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
|
||||||
|
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
|
||||||
|
|
||||||
|
RUN true && \
|
||||||
|
chmod +x $SCRIPTDIR/*
|
||||||
|
|
||||||
|
ENV PH_TEST true
|
||||||
|
|
||||||
|
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \
|
@ -69,7 +69,7 @@ def args(request):
|
|||||||
return '-t -d'
|
return '-t -d'
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(params=['debian', 'centos', 'fedora'])
|
@pytest.fixture(params=['debian', 'centos7', 'centos', 'fedora'])
|
||||||
def tag(request):
|
def tag(request):
|
||||||
'''
|
'''
|
||||||
consumed by image to make the test matrix
|
consumed by image to make the test matrix
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM buildpack-deps:jessie-scm
|
FROM buildpack-deps:stretch-scm
|
||||||
|
|
||||||
ENV GITDIR /etc/.pihole
|
ENV GITDIR /etc/.pihole
|
||||||
ENV SCRIPTDIR /opt/pihole
|
ENV SCRIPTDIR /opt/pihole
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
FROM fedora:30
|
FROM fedora:31
|
||||||
|
|
||||||
ENV GITDIR /etc/.pihole
|
ENV GITDIR /etc/.pihole
|
||||||
ENV SCRIPTDIR /opt/pihole
|
ENV SCRIPTDIR /opt/pihole
|
||||||
|
@ -9,6 +9,7 @@ run_local = testinfra.get_backend(
|
|||||||
|
|
||||||
@pytest.mark.parametrize("image,tag", [
|
@pytest.mark.parametrize("image,tag", [
|
||||||
('test/debian.Dockerfile', 'pytest_pihole:debian'),
|
('test/debian.Dockerfile', 'pytest_pihole:debian'),
|
||||||
|
('test/centos7.Dockerfile', 'pytest_pihole:centos7'),
|
||||||
('test/centos.Dockerfile', 'pytest_pihole:centos'),
|
('test/centos.Dockerfile', 'pytest_pihole:centos'),
|
||||||
('test/fedora.Dockerfile', 'pytest_pihole:fedora'),
|
('test/fedora.Dockerfile', 'pytest_pihole:fedora'),
|
||||||
])
|
])
|
||||||
|
@ -561,3 +561,37 @@ def test_validate_ip_invalid_letters(Pihole):
|
|||||||
''')
|
''')
|
||||||
|
|
||||||
assert output.rc == 1
|
assert output.rc == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_os_check_fails(Pihole):
|
||||||
|
''' Confirms install fails on unsupported OS '''
|
||||||
|
Pihole.run('''
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
distro_check
|
||||||
|
install_dependent_packages ${INSTALLER_DEPS[@]}
|
||||||
|
cat <<EOT > /etc/os-release
|
||||||
|
ID=UnsupportedOS
|
||||||
|
VERSION_ID="2"
|
||||||
|
EOT
|
||||||
|
''')
|
||||||
|
detectOS = Pihole.run('''t
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
os_check
|
||||||
|
''')
|
||||||
|
expected_stdout = 'Unsupported OS detected: UnsupportedOS'
|
||||||
|
assert expected_stdout in detectOS.stdout
|
||||||
|
|
||||||
|
|
||||||
|
def test_os_check_passes(Pihole):
|
||||||
|
''' Confirms OS meets the requirements '''
|
||||||
|
Pihole.run('''
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
distro_check
|
||||||
|
install_dependent_packages ${INSTALLER_DEPS[@]}
|
||||||
|
''')
|
||||||
|
detectOS = Pihole.run('''
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
os_check
|
||||||
|
''')
|
||||||
|
expected_stdout = 'Supported OS detected'
|
||||||
|
assert expected_stdout in detectOS.stdout
|
||||||
|
@ -88,7 +88,7 @@ def test_epel_and_remi_not_installed_fedora(Pihole):
|
|||||||
assert not remi_package.is_installed
|
assert not remi_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos7'), ('centos'), ])
|
||||||
def test_release_supported_version_check_centos(Pihole):
|
def test_release_supported_version_check_centos(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms installer exits on unsupported releases of CentOS
|
confirms installer exits on unsupported releases of CentOS
|
||||||
@ -105,7 +105,7 @@ def test_release_supported_version_check_centos(Pihole):
|
|||||||
assert expected_stdout in distro_check.stdout
|
assert expected_stdout in distro_check.stdout
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos7'), ('centos'), ])
|
||||||
def test_enable_epel_repository_centos(Pihole):
|
def test_enable_epel_repository_centos(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms the EPEL package repository is enabled when installed on CentOS
|
confirms the EPEL package repository is enabled when installed on CentOS
|
||||||
@ -123,8 +123,8 @@ def test_enable_epel_repository_centos(Pihole):
|
|||||||
assert epel_package.is_installed
|
assert epel_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos7'), ])
|
||||||
def test_php_upgrade_default_optout_centos(Pihole):
|
def test_php_upgrade_default_optout_centos_eq_7(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms the default behavior to opt-out of installing PHP7 from REMI
|
confirms the default behavior to opt-out of installing PHP7 from REMI
|
||||||
'''
|
'''
|
||||||
@ -140,7 +140,25 @@ def test_php_upgrade_default_optout_centos(Pihole):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos'), ])
|
||||||
def test_php_upgrade_user_optout_centos(Pihole):
|
def test_php_upgrade_default_continue_centos_gte_8(Pihole):
|
||||||
|
'''
|
||||||
|
confirms the latest version of CentOS continues / does not optout
|
||||||
|
(should trigger on CentOS7 only)
|
||||||
|
'''
|
||||||
|
distro_check = Pihole.run('''
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
distro_check
|
||||||
|
''')
|
||||||
|
unexpected_stdout = info_box + (' User opt-out of PHP 7 upgrade on CentOS.'
|
||||||
|
' Deprecated PHP may be in use.')
|
||||||
|
assert unexpected_stdout not in distro_check.stdout
|
||||||
|
# ensure remi was not installed on latest CentOS
|
||||||
|
remi_package = Pihole.package('remi-release')
|
||||||
|
assert not remi_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("tag", [('centos7'), ])
|
||||||
|
def test_php_upgrade_user_optout_centos_eq_7(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms installer behavior when user opt-out of installing PHP7 from REMI
|
confirms installer behavior when user opt-out of installing PHP7 from REMI
|
||||||
(php not currently installed)
|
(php not currently installed)
|
||||||
@ -159,7 +177,28 @@ def test_php_upgrade_user_optout_centos(Pihole):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos'), ])
|
||||||
def test_php_upgrade_user_optin_centos(Pihole):
|
def test_php_upgrade_user_optout_skipped_centos_gte_8(Pihole):
|
||||||
|
'''
|
||||||
|
confirms installer skips user opt-out of installing PHP7 from REMI on
|
||||||
|
latest CentOS (should trigger on CentOS7 only)
|
||||||
|
(php not currently installed)
|
||||||
|
'''
|
||||||
|
# Whiptail dialog returns Cancel for user prompt
|
||||||
|
mock_command('whiptail', {'*': ('', '1')}, Pihole)
|
||||||
|
distro_check = Pihole.run('''
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
distro_check
|
||||||
|
''')
|
||||||
|
unexpected_stdout = info_box + (' User opt-out of PHP 7 upgrade on CentOS.'
|
||||||
|
' Deprecated PHP may be in use.')
|
||||||
|
assert unexpected_stdout not in distro_check.stdout
|
||||||
|
# ensure remi was not installed on latest CentOS
|
||||||
|
remi_package = Pihole.package('remi-release')
|
||||||
|
assert not remi_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("tag", [('centos7'), ])
|
||||||
|
def test_php_upgrade_user_optin_centos_eq_7(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms installer behavior when user opt-in to installing PHP7 from REMI
|
confirms installer behavior when user opt-in to installing PHP7 from REMI
|
||||||
(php not currently installed)
|
(php not currently installed)
|
||||||
@ -182,6 +221,30 @@ def test_php_upgrade_user_optin_centos(Pihole):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos'), ])
|
||||||
|
def test_php_upgrade_user_optin_skipped_centos_gte_8(Pihole):
|
||||||
|
'''
|
||||||
|
confirms installer skips user opt-in to installing PHP7 from REMI on
|
||||||
|
latest CentOS (should trigger on CentOS7 only)
|
||||||
|
(php not currently installed)
|
||||||
|
'''
|
||||||
|
# Whiptail dialog returns Continue for user prompt
|
||||||
|
mock_command('whiptail', {'*': ('', '0')}, Pihole)
|
||||||
|
distro_check = Pihole.run('''
|
||||||
|
source /opt/pihole/basic-install.sh
|
||||||
|
distro_check
|
||||||
|
''')
|
||||||
|
assert 'opt-out' not in distro_check.stdout
|
||||||
|
unexpected_stdout = info_box + (' Enabling Remi\'s RPM repository '
|
||||||
|
'(https://rpms.remirepo.net)')
|
||||||
|
assert unexpected_stdout not in distro_check.stdout
|
||||||
|
unexpected_stdout = tick_box + (' Remi\'s RPM repository has '
|
||||||
|
'been enabled for PHP7')
|
||||||
|
assert unexpected_stdout not in distro_check.stdout
|
||||||
|
remi_package = Pihole.package('remi-release')
|
||||||
|
assert not remi_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("tag", [('centos7'), ('centos'), ])
|
||||||
def test_php_version_lt_7_detected_upgrade_default_optout_centos(Pihole):
|
def test_php_version_lt_7_detected_upgrade_default_optout_centos(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms the default behavior to opt-out of upgrading to PHP7 from REMI
|
confirms the default behavior to opt-out of upgrading to PHP7 from REMI
|
||||||
@ -204,7 +267,7 @@ def test_php_version_lt_7_detected_upgrade_default_optout_centos(Pihole):
|
|||||||
assert not remi_package.is_installed
|
assert not remi_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos7'), ('centos'), ])
|
||||||
def test_php_version_lt_7_detected_upgrade_user_optout_centos(Pihole):
|
def test_php_version_lt_7_detected_upgrade_user_optout_centos(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms installer behavior when user opt-out to upgrade to PHP7 via REMI
|
confirms installer behavior when user opt-out to upgrade to PHP7 via REMI
|
||||||
@ -229,7 +292,7 @@ def test_php_version_lt_7_detected_upgrade_user_optout_centos(Pihole):
|
|||||||
assert not remi_package.is_installed
|
assert not remi_package.is_installed
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("tag", [('centos'), ])
|
@pytest.mark.parametrize("tag", [('centos7'), ('centos'), ])
|
||||||
def test_php_version_lt_7_detected_upgrade_user_optin_centos(Pihole):
|
def test_php_version_lt_7_detected_upgrade_user_optin_centos(Pihole):
|
||||||
'''
|
'''
|
||||||
confirms installer behavior when user opt-in to upgrade to PHP7 via REMI
|
confirms installer behavior when user opt-in to upgrade to PHP7 via REMI
|
||||||
|
3
tox.ini
3
tox.ini
@ -1,10 +1,11 @@
|
|||||||
[tox]
|
[tox]
|
||||||
envlist = py36
|
envlist = py37
|
||||||
|
|
||||||
[testenv]
|
[testenv]
|
||||||
whitelist_externals = docker
|
whitelist_externals = docker
|
||||||
deps = -rrequirements.txt
|
deps = -rrequirements.txt
|
||||||
commands = docker build -f test/debian.Dockerfile -t pytest_pihole:debian .
|
commands = docker build -f test/debian.Dockerfile -t pytest_pihole:debian .
|
||||||
|
docker build -f test/centos7.Dockerfile -t pytest_pihole:centos7 .
|
||||||
docker build -f test/centos.Dockerfile -t pytest_pihole:centos .
|
docker build -f test/centos.Dockerfile -t pytest_pihole:centos .
|
||||||
docker build -f test/fedora.Dockerfile -t pytest_pihole:fedora .
|
docker build -f test/fedora.Dockerfile -t pytest_pihole:fedora .
|
||||||
pytest {posargs:-vv -n auto} -m "not build_stage" ./test/
|
pytest {posargs:-vv -n auto} -m "not build_stage" ./test/
|
||||||
|
Loading…
Reference in New Issue
Block a user