summaryrefslogtreecommitdiff
path: root/subplot.py
blob: 9e16168740ccadc4fd8f67e55bccf5a191031325 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import os
import re
import subprocess
import time


def try_docgen(ctx, md=None, output=None):
    docgen = binary("sp-docgen")
    runcmd(ctx, [docgen, md, "-o", output])


def run_docgen(ctx, md=None, output=None):
    try_docgen(ctx, md=md, output=output)
    exit_code_is(ctx, 0)


def run_docgen_with_date(ctx, md=None, output=None, date=None):
    docgen = binary("sp-docgen")
    runcmd(ctx, [docgen, md, "-o", output, "--date", date])
    exit_code_is(ctx, 0)


def try_codegen_and_program(ctx, filename=None, testprog=None):
    codegen = binary("sp-codegen")
    tmpldir = os.path.join(srcdir, "templates")
    runcmd(ctx, [codegen, filename, "-o", testprog, "--run", "--templates", tmpldir])


def run_codegen_and_program(ctx, filename=None, testprog=None):
    try_codegen_and_program(ctx, filename=filename, testprog=testprog)
    exit_code_is(ctx, 0)


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_is(ctx, 0)


def run_python_test_program(ctx, testprog=None, pattern=None):
    runcmd(ctx, ["python3", testprog, pattern])
    exit_code_is(ctx, 0)


def run_bash_test_program(ctx, testprog=None, pattern=None):
    runcmd(ctx, ["bash", testprog, pattern])
    exit_code_is(ctx, 0)


def run_meta(ctx, filename=None):
    meta = binary("sp-meta")
    runcmd(ctx, [meta, filename])
    exit_code_is(ctx, 0)


def run_pandoc_with_filter(ctx, filename=None, output=None):
    sp_filter = binary("sp-filter")
    runcmd(ctx, ["pandoc", "--filter", sp_filter, filename, "-o", output])
    exit_code_is(ctx, 0)


def scenario_was_run(ctx, name=None):
    stdout_contains(ctx, pattern="\nscenario: {}\n".format(name))


def scenario_was_not_run(ctx, name=None):
    stdout_does_not_contain(ctx, pattern="\nscenario: {}\n".format(name))


def step_was_run(ctx, keyword=None, name=None):
    stdout_contains(ctx, pattern="\n  step: {} {}\n".format(keyword, name))


def step_was_run_and_then(ctx, keyword1=None, name1=None, keyword2=None, name2=None):
    stdout_contains(
        ctx,
        pattern="\n  step: {} {}\n  step: {} {}".format(
            keyword1, name1, keyword2, name2
        ),
    )


def cleanup_was_run(ctx, keyword1=None, name1=None, keyword2=None, name2=None):
    stdout_contains(
        ctx,
        pattern="\n  cleanup: {} {}\n  cleanup: {} {}\n".format(
            keyword1, name1, keyword2, name2
        ),
    )


def cleanup_was_not_run(ctx, keyword=None, name=None):
    stdout_does_not_contain(ctx, pattern="\n  cleanup: {} {}\n".format(keyword, name))


def binary(basename):
    return os.path.join(srcdir, "target", "debug", basename)