Esempio n. 1
0
    def trace_func(frame, event, _arg):
        filename = frame.f_code.co_filename
        if event == "call":
            if include_file(filename):
                return trace_func

        elif event == "line":
            lineno = frame.f_lineno
            queues[filename].append(lineno)
            totals[filename][lineno] += 1
            Source.lazycache(frame)
Esempio n. 2
0
def tester(arg, returns=None):
    frame = inspect.currentframe().f_back
    Source.lazycache(frame)
    call = Source.executing(frame).node
    result = eval(
        compile(ast.Expression(only(call.args)), '<>', 'eval'),
        frame.f_globals,
        frame.f_locals,
    )
    assert result == result, (result, arg)
    if returns is None:
        return arg
    return returns
Esempio n. 3
0
 def get_node(self, typ):
     frame = inspect.currentframe().f_back.f_back
     Source.lazycache(frame)
     node = Source.executing(frame).node
     assert isinstance(node, typ), (node, typ)
     return node
Esempio n. 4
0
 def get_executing(self, frame):
     Source.lazycache(frame)
     return Source.executing(frame)