diff options
author | Lars Wirzenius <liw@liw.fi> | 2020-05-08 11:00:14 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2020-05-08 11:01:18 +0300 |
commit | 4af1ba54ed096e64c61dfc12ec1138a9a0006481 (patch) | |
tree | e88aabf3062fb5c9c7dc7f7eb839de00bba795fe /subplot.py | |
parent | d24db0031b097d7cd4240a02956995703aa4d48f (diff) | |
download | subplot-4af1ba54ed096e64c61dfc12ec1138a9a0006481.tar.gz |
Add: scenarios for test programs running only chosen scenarios
Diffstat (limited to 'subplot.py')
-rw-r--r-- | subplot.py | 31 |
1 files changed, 28 insertions, 3 deletions
@@ -30,13 +30,27 @@ def run_docgen_with_date(ctx, md=None, output=None, date=None): runcmd(ctx, [docgen, md, '-o', output, '--date', date]) exit_code_zero(ctx) -def try_codegen(ctx, filename=None): +def try_codegen_and_program(ctx, filename=None): codegen = binary('sp-codegen') tmpldir = os.path.join(srcdir, 'templates') runcmd(ctx, [codegen, filename, '-o', 'test.py', '--run', '--templates', tmpldir]) -def run_codegen(ctx, filename=None): - try_codegen(ctx, filename=filename) +def run_codegen_and_program(ctx, filename=None): + try_codegen_and_program(ctx, filename=filename) + exit_code_zero(ctx) + +def run_codegen(ctx, filename=None, testprog=None): + codegen = binary('sp-codegen') + tmpldir = os.path.join(srcdir, 'templates') + runcmd(ctx, [codegen, filename, '-o', testprog, '--templates', tmpldir]) + exit_code_zero(ctx) + +def run_python_test_program(ctx, testprog=None, pattern=None): + runcmd(ctx, ['python3', testprog, pattern]) + exit_code_zero(ctx) + +def run_bash_test_program(ctx, testprog=None, pattern=None): + runcmd(ctx, ['bash', testprog, pattern]) exit_code_zero(ctx) def run_meta(ctx, filename=None): @@ -72,6 +86,9 @@ def file_contains(ctx, filename=None, pattern=None): def scenario_was_run(ctx, name=None): stdout_matches(ctx, pattern='\nscenario: {}\n'.format(name)) +def scenario_was_not_run(ctx, name=None): + stdout_does_not_match(ctx, pattern='\nscenario: {}\n'.format(name)) + def step_was_run(ctx, keyword=None, name=None): stdout_matches(ctx, pattern='\n step: {} {}\n'.format(keyword, name)) @@ -94,6 +111,14 @@ def stdout_matches(ctx, pattern=None): print('ctx:', ctx.as_dict()) assert_eq(pattern in stdout, True) +def stdout_does_not_match(ctx, pattern=None): + stdout = ctx.get('stdout', '') + if pattern in stdout: + print('pattern:', repr(pattern)) + print('stdout:', repr(stdout)) + print('ctx:', ctx.as_dict()) + assert_eq(pattern not in stdout, True) + def _get_metadata(filename): st = os.lstat(filename) keys = [ |