#!/usr/bin/env py.test-3 import re from fixtures.fs import check_output from fixtures.fs import check_stdoutput def test_build_instances(ngcpcfgcli): out = ngcpcfgcli( "build", "--ignore-branch-check", "/etc/kamailio", env={ "NGCP_HOSTNAME": "lb01a", "TEMPLATE_POOL_BASE": "fixtures/build_instances", "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NGCPCFG": "fixtures/ngcpcfg_carrier_instances.cfg", }, ) assert re.search( r"Generating .*/etc/kamailio/lb/kamailio.cfg: OK", out.stdout ) assert not re.search(r"Error", out.stdout) assert not re.search(r"Error", out.stderr) base_dir = out.env["OUTPUT_DIRECTORY"] output_file = base_dir.joinpath("etc/kamailio/lb/kamailio.cfg") test_file = "fixtures/output/lb_kamailio_cfg_carrier" check_output(str(output_file), test_file) assert re.search( r"Generating .*/etc/kamailio/lb_A/kamailio.cfg: OK", out.stdout ) output_file = base_dir.joinpath("etc/kamailio/lb_A/kamailio.cfg") test_file = "fixtures/output/lb_kamailio_cfg_instances_A" check_output(str(output_file), test_file) assert re.search( r"Generating .*/etc/kamailio/lb_B/kamailio.cfg: OK", out.stdout ) output_file = base_dir.joinpath("etc/kamailio/lb_B/kamailio.cfg") test_file = "fixtures/output/lb_kamailio_cfg_instances_B" check_output(str(output_file), test_file) assert out.returncode == 0 def test_build_instance_customtt(ngcpcfgcli): out = ngcpcfgcli( "build", "--ignore-branch-check", "/etc/kamailio/lb/", env={ "NGCP_HOSTNAME": "lb01a", "TEMPLATE_POOL_BASE": "fixtures/build_instances", "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NGCPCFG": "fixtures/ngcpcfg_carrier_instances.cfg", }, ) assert re.search( r"Generating .*/etc/kamailio/lb_B/simple.cfg: OK", out.stdout ) assert not re.search(r"Error", out.stdout) assert not re.search(r"Error", out.stderr) base_dir = out.env["OUTPUT_DIRECTORY"] output_file = base_dir.joinpath("etc/kamailio/lb_B/simple.cfg") test_file = "fixtures/output/lb_custom_cfg_instances_B" check_output(str(output_file), test_file) assert out.returncode == 0 def test_instances_info_noargs(helpercli, tmpdir): out = helpercli( "instances-info", env={ "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NETWORK_CONFIG": "fixtures/repos/network_carrier_instances.yml", }, ) test_file = "fixtures/output/instances_info_noargs" check_stdoutput(out.stdout, test_file, tmpdir) assert out.returncode == 0 def test_instances_info_args(helpercli, tmpdir): out = helpercli( "instances-info", "/etc", env={ "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NETWORK_CONFIG": "fixtures/repos/network_carrier_instances.yml", }, ) test_file = "fixtures/output/instances_info_args" check_stdoutput(out.stdout, test_file, tmpdir) assert out.returncode == 0 def test_instances_info_args_same(helpercli, tmpdir): out = helpercli( "instances-info", "/etc/kamailio/lb", env={ "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NETWORK_CONFIG": "fixtures/repos/network_carrier_instances.yml", }, ) test_file = "fixtures/output/instances_info_args_same" check_stdoutput(out.stdout, test_file, tmpdir) assert out.returncode == 0 def test_instances_info_args_longer(helpercli, tmpdir): out = helpercli( "instances-info", "/etc/kamailio/lb/db", env={ "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NETWORK_CONFIG": "fixtures/repos/network_carrier_instances.yml", }, ) test_file = "fixtures/output/instances_info_args_longer" check_stdoutput(out.stdout, test_file, tmpdir) assert out.returncode == 0 def test_instances_info_relative_path(helpercli): out = helpercli( "instances-info", "../lb/db", env={ "TEMPLATE_INSTANCES": "fixtures/repos/instances.yml", "NETWORK_CONFIG": "fixtures/repos/network_carrier_instances.yml", }, ) assert out.returncode != 0