Esempio n. 1
0
 def inner():
     try:
         a = 0
         fn = "inner"
         _jetsamed_fn()
     except Exception as ex:
         save_jetsam(ex, locals(), fn="fn")
         raise
Esempio n. 2
0
    def outer():
        try:

            fn = "outer"
            b = 0
            inner()
        except Exception as ex:
            save_jetsam(ex, locals(), fn="fn")
            raise
Esempio n. 3
0
def _jetsamed_fn(*args, **kwargs):
    b = 1
    try:
        a = 1
        b = 2
        _scream()
    except Exception as ex:
        save_jetsam(ex, locals(), a="a", b="b")
        raise
Esempio n. 4
0
def test_jetsam_bad_keys(keys, caplog):
    caplog.set_level(logging.INFO)
    with pytest.raises(AssertionError, match="Bad `salvage_mappings`") as excinfo:
        try:
            raise Exception("ABC")
        except Exception as ex:
            save_jetsam(ex, {}, **keys)

    assert not hasattr(excinfo.value, "jetsam")
    assert "Suppressed error while annotating exception" not in caplog.text
Esempio n. 5
0
def test_jetsam_bad_locals_given(locs, caplog):
    caplog.set_level(logging.INFO)
    with pytest.raises(AssertionError, match="Bad `locs`") as excinfo:
        try:
            raise Exception("ABC")
        except Exception as ex:
            save_jetsam(ex, locs, a="a")
            raise

    assert not hasattr(excinfo.value, "jetsam")
    assert "Suppressed error while annotating exception" not in caplog.text
Esempio n. 6
0
def test_jetsam_dummy_locals(caplog):
    with pytest.raises(Exception, match="ABC") as excinfo:
        try:
            raise Exception("ABC")
        except Exception as ex:
            save_jetsam(ex, {"a": 1}, a="a", bad="bad")
            raise

    assert isinstance(excinfo.value.jetsam, dict)
    assert excinfo.value.jetsam == {"a": 1, "bad": None}
    assert "Suppressed error" not in caplog.text
Esempio n. 7
0
def test_jetsam_bad_existing_annotation(annotation, caplog):
    caplog.set_level(logging.INFO)
    with pytest.raises(Exception, match="ABC") as excinfo:
        try:
            ex = Exception("ABC")
            ex.jetsam = annotation
            raise ex
        except Exception as ex:
            save_jetsam(ex, {}, a="a")
            raise

    assert excinfo.value.jetsam == {"a": None}
    assert "Suppressed error while annotating exception" not in caplog.text