def test_transformation_cases(tmpdir): print("Starting transformation test cases") for test_case in list(glob.glob('topology/input/*yml')): print("Test case: %s" % test_case) topology = run_test(test_case) if topology.defaults.get("inventory"): print("Writing inventory... %s" % topology.defaults.inventory) ansible.ansible_inventory(topology,tmpdir+"/extra/hosts.yml",topology.defaults.get("inventory").replace("dump","")) ansible.ansible_config(tmpdir+"/ansible.cfg",tmpdir+"/hosts.yml") if topology.defaults.inventory == "dump": ansible.dump(topology) if topology.defaults.get("Output"): for output_format in topology.defaults.get("Output"): output_module = _TopologyOutput.load(output_format,topology.defaults.outputs[output_format]) if output_module: output_module.write(Box(topology)) else: common.error('Unknown output format %s' % output_format,common.IncorrectValue,'create') result = utils.transformation_results_yaml(topology) exp_test_case = "topology/expected/"+os.path.basename(test_case) expected = pathlib.Path(exp_test_case).read_text() if result != expected: print("Test case: %s FAILED" % test_case) sys.stdout.writelines( difflib.unified_diff( expected.splitlines(keepends=True), result.splitlines(keepends=True), fromfile='expected',tofile='result')) assert result == expected print("... succeeded, string length = %d" % len(result))
def test_transformation_cases(tmpdir): print("Starting transformation test cases") for test_case in list(glob.glob('topology/input/*yml')): print("Test case: %s" % test_case) topology = run_test(test_case) if topology.defaults.get("inventory"): print("Writing inventory... %s" % topology.defaults.inventory) ansible.ansible_inventory(topology,tmpdir+"/extra/hosts.yml",topology.defaults.get("inventory").replace("dump","")) ansible.ansible_config(tmpdir+"/ansible.cfg",tmpdir+"/hosts.yml") if topology.defaults.inventory == "dump": ansible.dump(topology) result = utils.transformation_results_yaml(topology) exp_test_case = "topology/expected/"+os.path.basename(test_case) expected = pathlib.Path(exp_test_case).read_text() if result != expected: sys.stdout.writelines( difflib.context_diff( expected.splitlines(keepends=True), result.splitlines(keepends=True), fromfile='expected',tofile='result')) assert result == expected print("... succeeded, string length = %d" % len(result))
def test_transformation_cases(): print("Starting transformation test cases") for test_case in list(glob.glob('topology*yml')): print("Test case: %s" % test_case) topology = run_test(test_case) result = utils.transformation_results_yaml(topology) expected = pathlib.Path('exp-' + test_case).read_text() assert result == expected print("... succeeded, string length = %d" % len(result))
def main(): args = parse() topology = read_topology.load(args.topology, None, args.defaults) common.exit_on_error() augment.main.transform(topology) common.exit_on_error() result = utils.transformation_results_yaml(topology) expected = pathlib.Path('exp-' + args.topology).read_text() if result == expected: print("Results match") else: print('\n'.join( list( difflib.unified_diff(expected.split('\n'), result.split('\n'), fromfile='expected', tofile='actual'))))
def create_expected_results_file(topology, fname): with open(fname, "w") as output: output.write(utils.transformation_results_yaml(topology)) output.close() print("Created expected transformed topology: %s" % fname)