# HG changeset patch # User Matt Mackall # Date 1320348600 18000 # Node ID f89e9c528b381f922c753ae138312cf866b452c9 # Parent cc54b798aca4f818043219f0769a898e2792c472 tests: rewrite inline Python support Tests with inline Python could turn '>>>' into their underlying python invocation if the test got updated with -i. [ original upstream message ] diff -r cc54b798aca4 -r f89e9c528b38 tests/run-tests.py --- a/tests/run-tests.py Mon Nov 07 13:48:11 2011 +0000 +++ b/tests/run-tests.py Thu Nov 03 14:30:00 2011 -0500 @@ -521,26 +521,6 @@ 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 @@ 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 <