Beispiel #1
0
def test_format_frames__huge_var():
    try:
        a = "A" * MAX_VARS_SIZE  # noqa F841
        1 / 0
    except Exception:
        frames = format_frames(inspect.trace())

    assert frames[0]["variables"]["a"] == "A" * MAX_VAR_LEN + "...[too long]"
Beispiel #2
0
def test_format_frames__max_recursion():
    def func():
        a = "A"  # noqa
        func()

    try:
        e = "E"  # noqa
        func()
    except RecursionError:
        frames = format_frames(inspect.trace())

    assert frames[0]["function"] == "func"
Beispiel #3
0
def test_format_frames__pass_max_vars_size():
    def func():
        for i in range(MAX_VARS_SIZE * 2):
            exec(f"a{i} = 'A'")
        1 / 0

    try:
        func()
    except Exception:
        frames = format_frames(inspect.trace())

    assert len(frames[0]["variables"]) < MAX_VARS_SIZE
    assert len(frames[0]["variables"]) > 0
 def add_exception_event(self, exception: Exception,
                         frames_infos: List[inspect.FrameInfo]) -> None:
     if self.function_span:
         message = exception.args[0] if exception.args else None
         if not isinstance(message, str):
             message = str(message)
         self.function_span["error"] = {
             "type":
             exception.__class__.__name__,
             "message":
             message,
             "stacktrace":
             traceback.format_exc(),
             "frames":
             format_frames(frames_infos) if Configuration.verbose else [],
         }
Beispiel #5
0
def test_format_frames__check_all_keys_and_values():
    def func():
        a = "A"  # noqa
        1 / 0

    try:
        func()
    except Exception:
        frames = format_frames(inspect.trace())

    assert frames[0] == {
        "function": "func",
        "fileName": __file__,
        "variables": {
            "a": "A"
        },
        "lineno": frames[1]["lineno"] - 3,
    }
Beispiel #6
0
def test_format_frames():
    def func_a():
        a = "A"  # noqa
        func_b()

    def func_b():
        one = 1
        zero = 0
        one / zero

    try:
        e = "E"  # noqa
        func_a()
    except Exception:
        frames = format_frames(inspect.trace())

    assert frames[0]["function"] == "func_b"
    assert frames[0]["variables"] == {"one": "1", "zero": "0"}
    assert frames[1]["function"] == "func_a"
    assert frames[1]["variables"]["a"] == "A"
    assert frames[2]["function"] == "test_format_frames"
    assert frames[2]["variables"]["e"] == "E"