File: test_log_record.py

package info (click to toggle)
logbook 1.7.0-1.0
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,140 kB
  • sloc: python: 6,558; makefile: 141
file content (58 lines) | stat: -rw-r--r-- 1,697 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import sys

import logbook

from .utils import capturing_stderr_context


def test_exc_info_when_no_exceptions_exist(logger):
    with capturing_stderr_context() as captured:
        with logbook.StreamHandler(sys.stderr):
            logger.debug("message", exc_info=True)
    assert "Traceback" not in captured.getvalue()


def test_exc_info_false():
    with logbook.handlers.TestHandler() as handler:
        logbook.debug("message here", exc_info=False)
    [record] = handler.records
    assert not record.formatted_exception


def test_exc_info_exception_instance(logger):
    with logbook.handlers.TestHandler() as handler:
        try:
            raise ValueError("error here")
        except Exception as e:
            error = e
        logger.exception(exc_info=error)
    [record] = handler.records
    assert isinstance(record.exc_info, tuple)
    assert len(record.exc_info) == 3
    assert "Traceback" in record.formatted_exception


def test_extradict(active_handler, logger):
    logger.warn("Test warning")
    record = active_handler.records[0]
    record.extra["existing"] = "foo"
    assert record.extra["nonexisting"] == ""
    assert record.extra["existing"] == "foo"


def test_calling_frame(active_handler, logger):
    logger.warn("test")
    assert active_handler.records[0].calling_frame == sys._getframe()


def test_frame_correction(active_handler, logger):
    def inner():
        logger.warn("test", frame_correction=+1)

    inner()
    assert active_handler.records[0].calling_frame == sys._getframe()


def test_dispatcher(active_handler, logger):
    logger.warn("Logbook is too awesome for stdlib")
    assert active_handler.records[0].dispatcher == logger