view tests/heredoctest.py @ 21461:a46a91989d57

run-tests: ignore failures from rmtree rmtree() may fail under certain conditions. We ignore failures at the individual test level because they can interfere with test execution. Furthermore, we'll reattempt deletion in the high-level test runner after all tests have finished. Note that this patch is not a code refactor like most of the patches before it. This change logically makes sense given the execution behavior of the tests.
author Gregory Szorc <gregory.szorc@gmail.com>
date Sun, 20 Apr 2014 16:54:51 -0700
parents 5635a4017061
children 9599e86159ac
line wrap: on
line source

import sys

globalvars = {}
localvars = {}
lines = sys.stdin.readlines()
while lines:
    l = lines.pop(0)
    if l.startswith('SALT'):
        print l[:-1]
    elif l.startswith('>>> '):
        snippet = l[4:]
        while lines and lines[0].startswith('... '):
            l = lines.pop(0)
            snippet += "\n" + l[4:]
        c = compile(snippet, '<heredoc>', 'single')
        try:
            exec c in globalvars, localvars
        except Exception, inst:
            print repr(inst)