author | Pierre-Yves David <pierre-yves.david@octobus.net> |
Wed, 08 Nov 2023 22:27:32 +0100 | |
changeset 51141 | c845479fc64d |
parent 48875 | 6000f5b25c9b |
permissions | -rw-r--r-- |
15434
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
1 |
import sys |
15247
3cd1605e9d8e
tests: remove temp doctest file when finished running it
Idan Kamara <idankk86@gmail.com>
parents:
15235
diff
changeset
|
2 |
|
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
40318
diff
changeset
|
3 |
|
40318
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
4 |
def flush(): |
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
5 |
sys.stdout.flush() |
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
6 |
sys.stderr.flush() |
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
7 |
|
43076
2372284d9457
formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents:
40318
diff
changeset
|
8 |
|
15434
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
9 |
globalvars = {} |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
10 |
lines = sys.stdin.readlines() |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
11 |
while lines: |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
12 |
l = lines.pop(0) |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
13 |
if l.startswith('SALT'): |
25032
1db2127d2373
heredoctest: 2to3 -w -f numliterals -f except -f print tests/heredoctest.py
Augie Fackler <augie@google.com>
parents:
22565
diff
changeset
|
14 |
print(l[:-1]) |
15434
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
15 |
elif l.startswith('>>> '): |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
16 |
snippet = l[4:] |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
17 |
while lines and lines[0].startswith('... '): |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
18 |
l = lines.pop(0) |
22565
8d45a42b0c0f
heredoctest: do not append extra newline character to continuation line
Yuya Nishihara <yuya@tcha.org>
parents:
22564
diff
changeset
|
19 |
snippet += l[4:] |
15434
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
20 |
c = compile(snippet, '<heredoc>', 'single') |
5635a4017061
run-tests: replace inline python handling with more native scheme
Matt Mackall <mpm@selenic.com>
parents:
15398
diff
changeset
|
21 |
try: |
40318
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
22 |
flush() |
25032
1db2127d2373
heredoctest: 2to3 -w -f numliterals -f except -f print tests/heredoctest.py
Augie Fackler <augie@google.com>
parents:
22565
diff
changeset
|
23 |
exec(c, globalvars) |
40318
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
24 |
flush() |
25032
1db2127d2373
heredoctest: 2to3 -w -f numliterals -f except -f print tests/heredoctest.py
Augie Fackler <augie@google.com>
parents:
22565
diff
changeset
|
25 |
except Exception as inst: |
40318
55fd0fefbec4
py3: flush std streams before/after running user code in heredoctest.py
Yuya Nishihara <yuya@tcha.org>
parents:
29485
diff
changeset
|
26 |
flush() |
25032
1db2127d2373
heredoctest: 2to3 -w -f numliterals -f except -f print tests/heredoctest.py
Augie Fackler <augie@google.com>
parents:
22565
diff
changeset
|
27 |
print(repr(inst)) |