add wrappers to utils.sh for setting FTL config & add tests

Signed-off-by: Adam Warner <me@adamwarner.co.uk>
This commit is contained in:
Adam Warner 2023-01-14 23:11:42 +00:00
parent e3ffec5762
commit 632aead691
No known key found for this signature in database
2 changed files with 78 additions and 0 deletions

View File

@ -145,3 +145,26 @@ getFTLPID() {
FTL_PID=${FTL_PID:=-1} FTL_PID=${FTL_PID:=-1}
echo "${FTL_PID}" echo "${FTL_PID}"
} }
#######################
# returns value from FTLs config file using pihole-FTL --config
#
# Takes one argument: key
# Example getFTLConfigValue dns.piholePTR
#######################
getFTLConfigValue(){
pihole-FTL --config "${1}"
}
#######################
# sets value in FTLs config file using pihole-FTL --config
#
# Takes two arguments: key and value
# Example setFTLConfigValue dns.piholePTR PI.HOLE
#
# Note, for complex values such as dnsmasq.upstreams, you should wrap the value in single quotes:
# setFTLConfigValue dnsmasq.upstreams '[ "8.8.8.8" , "8.8.4.4" ]'
#######################
setFTLConfigValue(){
pihole-FTL --config "${1}" "${2}"
}

View File

@ -170,3 +170,58 @@ def test_getFTLPIDFile_and_getFTLPID_custom(host):
) )
expected_stdout = "1234\n" expected_stdout = "1234\n"
assert expected_stdout == output.stdout assert expected_stdout == output.stdout
def test_setFTLConfigValue_getFTLConfigValue(host):
"""
Confirms setFTLConfigValue works
Requires FTL to be installed, so we do that first (taken from test_FTL_binary_installed_and_responsive_no_errors)
"""
host.run(
"""
source /opt/pihole/basic-install.sh
create_pihole_user
funcOutput=$(get_binary_name)
echo "new/http" > /etc/pihole/ftlbranch
binary="pihole-FTL${funcOutput##*pihole-FTL}"
theRest="${funcOutput%pihole-FTL*}"
FTLdetect "${binary}" "${theRest}"
"""
)
output = host.run(
"""
source /opt/pihole/utils.sh
setFTLConfigValue "dnsmasq.upstreams" '["1.1.1.1"]'
"""
)
assert '[ "1.1.1.1" ]' in output.stdout
def test_getFTLConfigValue_getFTLConfigValue(host):
"""
Confirms getFTLConfigValue works (also assumes setFTLConfigValue works)
Requires FTL to be installed, so we do that first (taken from test_FTL_binary_installed_and_responsive_no_errors)
"""
host.run(
"""
source /opt/pihole/basic-install.sh
create_pihole_user
funcOutput=$(get_binary_name)
echo "new/http" > /etc/pihole/ftlbranch
binary="pihole-FTL${funcOutput##*pihole-FTL}"
theRest="${funcOutput%pihole-FTL*}"
FTLdetect "${binary}" "${theRest}"
"""
)
output = host.run(
"""
source /opt/pihole/utils.sh
setFTLConfigValue "dnsmasq.upstreams" '["9.9.9.9"]' > /dev/null
getFTLConfigValue "dnsmasq.upstreams"
"""
)
assert '[ "9.9.9.9" ]' in output.stdout