33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
|
from yaml import load, SafeLoader
|
||
|
from os import environ
|
||
|
|
||
|
from execute import run
|
||
|
|
||
|
EXTERNAL_DOMAIN = 'google.fr'
|
||
|
|
||
|
|
||
|
def test_dns_local():
|
||
|
conf_file = f'{environ["MACHINE_TEST_DIR"]}/dns-local.yml'
|
||
|
with open(conf_file) as yaml:
|
||
|
data = load(yaml, Loader=SafeLoader)
|
||
|
if 'addresses' not in data:
|
||
|
return
|
||
|
for address in data['addresses']:
|
||
|
result = run(data['address'],
|
||
|
['/bin/resolvectl', 'query', address['dns_address']],
|
||
|
)
|
||
|
first = next(result)
|
||
|
search = f"{address['dns_address']}: {address['dns_ip']}"
|
||
|
assert first == search or first.startswith(search + " "), f'dns return "{first}" instead of "{search}"'
|
||
|
|
||
|
|
||
|
def test_dns_external():
|
||
|
conf_file = f'{environ["MACHINE_TEST_DIR"]}/dns-local.yml'
|
||
|
with open(conf_file) as yaml:
|
||
|
data = load(yaml, Loader=SafeLoader)
|
||
|
if data['dns_is_only_local']:
|
||
|
result = run(data['address'],
|
||
|
['/bin/resolvectl', 'query', EXTERNAL_DOMAIN],
|
||
|
)
|
||
|
assert 'resolve call failed' in next(result), f'should not resolved {EXTERNAL_DOMAIN}'
|