diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -521,26 +521,6 @@ def escapef(m): def stringescape(s): return escapesub(escapef, s) -def transformtst(lines): - inblock = False - for l in lines: - if inblock: - if l.startswith(' $ ') or not l.startswith(' '): - inblock = False - yield ' > EOF\n' - yield l - else: - yield ' > ' + l[2:] - else: - if l.startswith(' >>> '): - inblock = True - yield ' $ %s -m heredoctest < ' + l[2:] - else: - yield l - if inblock: - yield ' > EOF\n' - def tsttest(test, wd, options, replacements): t = open(test) out = [] @@ -550,10 +530,24 @@ def tsttest(test, wd, options, replaceme pos = prepos = -1 after = {} expected = {} - for n, l in enumerate(transformtst(t)): + inpython = False + for n, l in enumerate(t): if not l.endswith('\n'): l += '\n' - if l.startswith(' $ '): # commands + if l.startswith(' >>> '): + if not inpython: + # we've just entered a Python block, add the header + inpython = True + script.append('echo %s %s $?\n' % (salt, n)) + script.append('%s -m heredoctest <