X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=bluval%2Fbluval.py;h=7855816b5494d43bd3ca5520359ad097857b732e;hb=96ca0cb7cc0f1ab18124d289f7d20c882f271928;hp=4a01a923200e4792dafbda9b08104595c5ecf22f;hpb=288cd2eb7d5bdbce4963e95b5f03234027428055;p=validation.git diff --git a/bluval/bluval.py b/bluval/bluval.py index 4a01a92..7855816 100644 --- a/bluval/bluval.py +++ b/bluval/bluval.py @@ -20,6 +20,7 @@ testcase """ import subprocess +from pathlib import Path import click import yaml @@ -28,19 +29,29 @@ def run_testcase(testcase): """ show_stopper = testcase.get('show_stopper', False) what = testcase.get('what') - results = "results/"+what - command = '{} {} {} {}'.format("robot", "-d", results, what) + mypath = Path(__file__).absolute() + results_path = mypath.parents[2].joinpath("results/"+testcase.get('layer')+"/"+what) + test_path = mypath.parents[1].joinpath("tests/"+testcase.get('layer')+"/"+what) + + # add to the variables file the path to where to sotre the logs + variables_file = mypath.parents[1].joinpath("tests/variables.yaml") + variables_dict = yaml.safe_load(variables_file.open()) + variables_dict['log_path'] = str(results_path) + variables_file.write_text(str(variables_dict)) + + # run the test + args = ["robot", "-V", str(variables_file), "-d", str(results_path), str(test_path)] print('Executing testcase {}'.format(testcase['name'])) print(' show_stopper {}'.format(show_stopper)) - print('Invoking {}'.format(command)) + print('Invoking {}'.format(args)) try: - status = subprocess.call(command, shell=True) + status = subprocess.call(args, shell=False) if status != 0 and show_stopper: print('Show stopper testcase failed') return status except OSError: - print('Error while executing {}'.format(command)) + print('Error while executing {}'.format(args)) return -1 return status @@ -50,6 +61,7 @@ def validate_layer(blueprint, layer): """ print('## Layer {}'.format(layer)) for testcase in blueprint[layer]: + testcase['layer'] = layer run_testcase(testcase) @@ -74,8 +86,10 @@ def main(blueprint, layer): """Takes blueprint name and optional layer. Validates inputs and derives yaml location from blueprint name. Invokes validate on blue print. """ - yaml_loc = 'bluval/bluval-{}.yaml'.format(blueprint) - layer = layer.lower() + mypath = Path(__file__).absolute() + yaml_loc = mypath.parents[0].joinpath('bluval-{}.yaml'.format(blueprint)) + if layer is not None: + layer = layer.lower() validate_blueprint(yaml_loc, layer)