You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcpcfg/t/test_ngcpcfg.py

91 lines
2.6 KiB

#!/usr/bin/env py.test-3
import os
import pytest
import re
from fixtures.fs import check_output
@pytest.mark.cmdline
def test_ngcpcfgcfg_ok(ngcpcfgcli):
out = ngcpcfgcli()
assert (
"For further usage information and options "
"see the ngcpcfg(8) man page" in out.stderr
)
assert out.returncode == 1
@pytest.mark.cmdline
def test_ngcpcfgcfg_ko(ngcpcfgcli):
out = ngcpcfgcli(env={"NGCPCFG": "/doesnotexist"})
assert (
"Error: Could not read configuration file "
"/etc/ngcp-ngcpcfg/ngcpcfg.cfg. Exiting." in out.stderr
)
assert out.returncode == 1
@pytest.mark.mt_16391
def test_simple_build_template_ok(ngcpcfgcli):
out = ngcpcfgcli("build", "/etc/apt/apt.conf.d/71_no_recommended")
assert out.returncode == 0
regex = re.compile(
r"Generating "
+ str(out.env["OUTPUT_DIRECTORY"])
+ r"/etc/apt/apt.conf.d/71_no_recommended: OK"
)
assert re.search(regex, out.stdout)
@pytest.mark.build
def test_simple_build_template_no_ha_no_carrier(ngcpcfgcli):
out = ngcpcfgcli("build", "/etc/config_variants")
assert out.returncode == 0
regex = re.compile(
r"Generating " + str(out.env["OUTPUT_DIRECTORY"]) + r"/etc/config_variants: OK"
)
assert re.search(regex, out.stdout)
output_file = os.path.join(out.env["OUTPUT_DIRECTORY"], "etc/config_variants")
test_file = "fixtures/output/config_variants"
check_output(output_file, test_file)
@pytest.mark.build
def test_simple_build_template_pro(ngcpcfgcli):
out = ngcpcfgcli(
"build",
"/etc/config_variants",
env={
"NGCPCFG": "fixtures/ngcpcfg_pro.cfg",
},
)
assert out.returncode == 0
regex = re.compile(
r"Generating " + str(out.env["OUTPUT_DIRECTORY"]) + r"/etc/config_variants: OK"
)
assert re.search(regex, out.stdout)
output_file = os.path.join(out.env["OUTPUT_DIRECTORY"], "etc/config_variants")
test_file = "fixtures/output/config_variants_pro"
check_output(output_file, test_file)
@pytest.mark.tt_17401
def test_fail_on_existing_dir_matching_output_filename(ngcpcfg, ngcpcfgcli):
output = "/etc/apt/apt.conf.d/71_no_recommended"
env, cfg = ngcpcfg()
output_dir = env["OUTPUT_DIRECTORY"] / output[1:]
output_dir.mkdir(parents=True)
out = ngcpcfgcli(
"build",
output,
env=env,
)
regex = re.compile(
"Error: Generating file .*"
+ output
+ r" not possible, it\'s an existing directory."
)
assert re.search(regex, out.stderr)
assert out.returncode == 1