Example #1
0
def test_frame_stack():
    def to_code_names(frames):
        code_names = deque()
        for frame in reversed(frames):
            code_name = frame.f_code.co_name
            if code_name not in mock_code_names:
                break
            code_names.appendleft(code_name)
        return list(code_names)
    baz_frame = foo()
    foo_frame = baz_frame.f_back.f_back
    frames = frame_stack(baz_frame)
    assert to_code_names(frames) == ['foo', 'bar', 'baz']
    # base frame.
    frames = frame_stack(baz_frame, base_frame=foo_frame)
    assert to_code_names(frames) == ['bar', 'baz']
    # ignored codes.
    frames = frame_stack(baz_frame, ignored_codes=[
        six.get_function_code(foo),
        six.get_function_code(baz),
    ])
    assert to_code_names(frames) == ['bar']
Example #2
0
def test_frame_stack():
    def to_code_names(frames):
        code_names = deque()
        for frame in reversed(frames):
            code_name = frame.f_code.co_name
            if code_name not in mock_code_names:
                break
            code_names.appendleft(code_name)
        return list(code_names)
    frame = foo()
    frames = frame_stack(frame)
    assert to_code_names(frames) == ['foo', 'bar', 'baz']
    # top frame
    frames = frame_stack(frame, top_frame=frame.f_back)
    assert to_code_names(frames) == ['bar', 'baz']
    # top code
    frames = frame_stack(frame, top_code=frame.f_back.f_code)
    assert to_code_names(frames) == ['bar', 'baz']
    # both of top frame and top code
    frames = frame_stack(frame, top_frame=frame.f_back,
                         top_code=frame.f_back.f_code)
    assert to_code_names(frames) == ['bar', 'baz']
Example #3
0
def test_frame_stack():
    def to_code_names(frames):
        code_names = deque()
        for frame in reversed(frames):
            code_name = frame.f_code.co_name
            if code_name not in mock_code_names:
                break
            code_names.appendleft(code_name)
        return list(code_names)

    baz_frame = foo()
    foo_frame = baz_frame.f_back.f_back
    frames = frame_stack(baz_frame)
    assert to_code_names(frames) == ['foo', 'bar', 'baz']
    # base frame.
    frames = frame_stack(baz_frame, base_frame=foo_frame)
    assert to_code_names(frames) == ['bar', 'baz']
    # ignored codes.
    frames = frame_stack(baz_frame,
                         ignored_codes=[
                             six.get_function_code(foo),
                             six.get_function_code(baz),
                         ])
    assert to_code_names(frames) == ['bar']
Example #4
0
def test_frame_stack():
    def to_code_names(frames):
        code_names = deque()
        for frame in reversed(frames):
            code_name = frame.f_code.co_name
            if code_name not in mock_code_names:
                break
            code_names.appendleft(code_name)
        return list(code_names)

    frame = foo()
    frames = frame_stack(frame)
    assert to_code_names(frames) == ['foo', 'bar', 'baz']
    # top frame
    frames = frame_stack(frame, top_frames=[frame.f_back])
    assert to_code_names(frames) == ['bar', 'baz']
    # top code
    frames = frame_stack(frame, top_codes=[frame.f_back.f_code])
    assert to_code_names(frames) == ['bar', 'baz']
    # both of top frame and top code
    frames = frame_stack(frame,
                         top_frames=[frame.f_back],
                         top_codes=[frame.f_back.f_code])
    assert to_code_names(frames) == ['bar', 'baz']
Example #5
0
 def frame_stack(self, frame):
     return frame_stack(frame, self.base_frame, self.base_code,
                        self.ignored_frames, self.ignored_codes)
Example #6
0
 def frame_stack(self, frame):
     return frame_stack(frame, self.base_frame, self.base_code,
                        self.ignored_frames, self.ignored_codes)