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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
import logging
import os
def run_jt_init(ctx, dirname=None, journalname=None, title=None):
runcmd_run = globals()["runcmd_run"]
runcmd_run(ctx, [_binary("jt"), "init", dirname, journalname, title])
def run_jt_list_journals(ctx):
runcmd_run = globals()["runcmd_run"]
runcmd_run(ctx, [_binary("jt"), "list-journals"])
def run_jt_is_journal(ctx, dirname=None):
runcmd_run = globals()["runcmd_run"]
runcmd_run(ctx, [_binary("jt"), "is-journal", dirname])
def run_jt_new(ctx, title=None, dirname=None):
runcmd_run = globals()["runcmd_run"]
runcmd_run(
ctx, [_binary("jt"), "new", title, "--dirname", dirname, "--editor=none"]
)
def run_jt_finish(ctx, dirname=None):
runcmd_run = globals()["runcmd_run"]
runcmd_run(ctx, [_binary("jt"), "finish", "--dirname", dirname])
def _binary(name):
srcdir = globals()["srcdir"]
return os.path.join(srcdir, "target", "debug", "jt2")
def is_directory(ctx, dirname=None):
assert_eq = globals()["assert_eq"]
logging.debug("checking if %r is a directory", dirname)
assert_eq(os.path.isdir(dirname), True)
def output_contains(ctx, pattern=None):
assert_eq = globals()["assert_eq"]
logging.debug("checking if %r contains", ctx["stdout"], pattern)
assert_eq(pattern in ctx["stdout"], True)
def journal_has_no_drafts(ctx, dirname=None):
assert_eq = globals()["assert_eq"]
logging.debug(f"checking {dirname} has no drafts")
drafts = os.path.join(dirname, "drafts")
assert_eq(_find_files(drafts), [])
def journal_has_one_draft(ctx, dirname=None):
assert_eq = globals()["assert_eq"]
logging.debug(f"checking {dirname} has one draft")
drafts = os.path.join(dirname, "drafts")
assert_eq(len(_find_files(drafts)), 1)
def journal_has_no_entries(ctx, dirname=None):
assert_eq = globals()["assert_eq"]
logging.debug(f"checking {dirname} has no entries")
entries = os.path.join(dirname, "entries")
assert_eq(_find_files(entries), [])
def journal_has_one_entry(ctx, dirname=None, variable=None):
assert_eq = globals()["assert_eq"]
logging.debug(
f"checking {dirname} has one entry, whose filename is remembered as {variable}"
)
entries = os.path.join(dirname, "entries")
files = _find_files(entries)
assert_eq(len(files), 1)
variables = ctx.get("variables", {})
variables[variable] = files[0]
ctx["variables"] = variables
def _find_files(root):
if not os.path.exists(root):
return []
files = []
for dirname, _, basenames in os.walk(root):
for basename in basenames:
files.append(os.path.join(dirname, basename))
return files
def draft_contains_string(ctx, dirname=None, draftno=None, pattern=None):
logging.debug(f"checking draft {draftno} in {dirname} has contains {pattern!r}")
draft = os.path.join(dirname, "drafts", f"{draftno}.md")
with open(draft) as f:
data = f.read()
logging.debug(f"draft content: {data!r}")
assert pattern in data
def edit_draft(ctx, dirname=None, draftno=None, text=None):
logging.debug(f"editing draft {draftno} in {dirname} to also contain {text!r}")
draft = os.path.join(dirname, "drafts", f"{draftno}.md")
with open(draft, "a") as f:
f.write(text)
def file_contains(ctx, variable=None, pattern=None):
logging.debug(f"checking {variable} contains {pattern!r}")
variables = ctx.get("variables", {})
logging.debug(f"variables: {variables!r}")
filename = variables[variable]
with open(filename) as f:
data = f.read()
logging.debug(f"file content: {data!r}")
assert pattern in data
|