From aab0b3f3cb2984523b18c543f30d11a481c11518 Mon Sep 17 00:00:00 2001 From: diginc Date: Thu, 7 Dec 2017 20:27:06 -0600 Subject: [PATCH] fix debian test_pihole_start_cmd --- bash_functions.sh | 2 +- install.sh | 2 +- test/conftest.py | 2 +- test/test_pihole_scripts.py | 21 ++++++++++++--------- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/bash_functions.sh b/bash_functions.sh index 5702153..38e59e4 100644 --- a/bash_functions.sh +++ b/bash_functions.sh @@ -276,7 +276,7 @@ test_framework_stubbing() { if [ -n "$PYTEST" ] ; then echo ":::::: Tests are being ran - stub out ad list fetching and add a fake ad block" sed -i 's/^gravity_spinup$/#gravity_spinup # DISABLED FOR PYTEST/g' "$(which gravity.sh)" - echo 'testblock.pi-hole.local' >> /etc/pihole/blacklist.txt + echo 'testblock.pi-hole.local' >> /etc/pihole/black.list fi } diff --git a/install.sh b/install.sh index f4c526e..7f8cac0 100755 --- a/install.sh +++ b/install.sh @@ -46,7 +46,7 @@ if [[ "$TAG" == 'debian' ]] ; then # IPv6 support for nc openbsd better than traditional apt-get install -y --force-yes netcat-openbsd elif [[ "$TAG" == 'alpine' ]] ; then - apk add \ + apk add -U \ dnsmasq \ nginx \ ca-certificates \ diff --git a/test/conftest.py b/test/conftest.py index b921d4a..613aecc 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -8,7 +8,7 @@ check_output = testinfra.get_backend( def DockerGeneric(request, args, image, cmd): assert 'docker' in check_output('id'), "Are you in the docker group?" if 'pi-hole' in image: - args += " --dns 127.0.0.1 -v /dev/null:/etc/.pihole/adlists.default -e PYTEST=\"True\"" + args += " --dns 127.0.0.1 -v /dev/null:/etc/pihole/adlists.default -e PYTEST=\"True\"" docker_run = "docker run -d {} {} {}".format(args, image, cmd) print docker_run docker_id = check_output(docker_run) diff --git a/test/test_pihole_scripts.py b/test/test_pihole_scripts.py index 372ec07..66cd032 100644 --- a/test/test_pihole_scripts.py +++ b/test/test_pihole_scripts.py @@ -10,6 +10,7 @@ def RunningPiHole(DockerPersist, Slow, persist_webserver, persist_tag, start_cmd ''' Override the RunningPiHole to run and check for success of a dnsmasq start based `pihole` script command ''' #print DockerPersist.run('ps -ef').stdout + assert DockerPersist.dig.run('ping -c 1 test_pihole').rc == 0 Slow(lambda: DockerPersist.run('pgrep dnsmasq').rc == 0) Slow(lambda: DockerPersist.run('pgrep {}'.format(persist_webserver)).rc == 0) oldpid = DockerPersist.run('pidof dnsmasq') @@ -30,15 +31,17 @@ def test_pihole_start_cmd(RunningPiHole, start_cmd, persist_tag): ''' the start_cmd tests are all built into the RunningPiHole fixture in this file ''' assert RunningPiHole.cmd.stdout == START_DNS_STDOUT[persist_tag] -@pytest.mark.parametrize('start_cmd,hostname,expected_ip, expected_message', [ - ('enable', 'pi.hole', '127.0.0.1', 'enabled'), - ('disable 0', 'pi.hole', '127.0.0.1', 'disabled'), +@pytest.mark.parametrize('start_cmd,hostname,expected_ip, expected_messages', [ + ('enable', 'pi.hole', '127.0.0.1', ['Enabling blocking','Pi-hole Enabled']), + ('disable', 'pi.hole', '127.0.0.1', ['Disabling blocking','Pi-hole Disabled']), ]) -def test_pihole_start_cmd(RunningPiHole, Dig, persist_tag, start_cmd, hostname, expected_ip, expected_message): +def test_pihole_start_cmd(RunningPiHole, Dig, persist_tag, start_cmd, hostname, expected_ip, expected_messages): ''' the start_cmd tests are all built into the RunningPiHole fixture in this file ''' - dig_cmd = "dig +time=1 +noall +answer {} @test_pihole | awk '{{ print $5 }}'".format(hostname) - lookup = RunningPiHole.dig.run(dig_cmd).stdout.rstrip('\n') - assert lookup == expected_ip + dig_cmd = "dig +time=1 +noall +answer {} @test_pihole".format(hostname) + lookup = RunningPiHole.dig.run(dig_cmd) + assert lookup.rc == 0 + lookup_ip = lookup.stdout.split()[4] + assert lookup_ip == expected_ip - stdout = "::: Blocking has been {}!\n".format(expected_message) - assert stdout in RunningPiHole.cmd.stdout + for part_of_output in expected_messages: + assert part_of_output in RunningPiHole.cmd.stdout