summaryrefslogtreecommitdiff
path: root/subplot.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-01-06 12:27:31 +0200
committerLars Wirzenius <liw@liw.fi>2020-01-06 12:27:31 +0200
commit5c88adc4fa0a5bf25f833fe763deb0e333f7cc0c (patch)
tree0c82e8a07529fb3147429c8d287239f5c0de92e1 /subplot.py
parente4f86d7055d4375c571e8f7f9a0bf0e220ca30c7 (diff)
downloadsubplot-5c88adc4fa0a5bf25f833fe763deb0e333f7cc0c.tar.gz
Change: implement other functions
Diffstat (limited to 'subplot.py')
-rw-r--r--subplot.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/subplot.py b/subplot.py
index 8e8fa9a..e53a018 100644
--- a/subplot.py
+++ b/subplot.py
@@ -1,30 +1,42 @@
+import os
+import subprocess
+
def create_file(ctx, filename=None):
with open(filename, 'wb') as f:
f.write(get_file(filename))
def run_docgen(ctx, md=None, output=None):
- runcmd(ctx, ['cargo', 'run', '-q', '--bin', 'sp-docgen', md, '-o', output])
+ docgen = binary('sp-docgen')
+ runcmd(ctx, [docgen, md, '-o', output])
+ exit_code_zero(ctx)
def run_codegen(ctx, filename=None):
- pass
+ codegen = binary('sp-codegen')
+ runcmd(ctx, [codegen, filename, '-o', 'test.py', '--run'])
+ exit_code_zero(ctx)
def file_exists(ctx, filename=None):
- pass
+ assert_eq(os.path.exists(filename), True)
def scenario_was_run(ctx, name=None):
- pass
+ stdout_matches(ctx, '\nrunning scenario: {}\n'.format(name))
def step_was_run(ctx, keyword=None, name=None):
- pass
+ stdout_matches(ctx, '\n step: {}\n'.format(name))
def exit_code_zero(ctx):
- pass
+ assert_eq(ctx.get('exit'), 0)
-import subprocess
+def binary(basename):
+ return os.path.join(srcdir, 'target', 'debug', basename)
+
+def stdout_matches(ctx, pattern):
+ stdout = ctx.get('stdout', '')
+ return pattern in stdout
def runcmd(ctx, argv):
p = subprocess.Popen(argv, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate("")
- ctx['stdout'] = stdout
- ctx['stderr'] = stderr
+ ctx['stdout'] = stdout.decode('utf-8')
+ ctx['stderr'] = stderr.decode('utf-8')
ctx['exit'] = p.returncode