-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_loggy.py
63 lines (43 loc) · 1.62 KB
/
test_loggy.py
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
59
60
61
62
import logging
from logging import Logger
import pytest
from conftest import CustomLogFormatter
from loggy import loggy
from loggy.exceptions import MutuallyExclusiveArgumentsError
def test_log_format():
log_format = ("(%(filename)s:%(lineno)d:%(funcName)s)", "%m-%d-%Y %I:%M:%S %p %Z")
log = loggy.get_loggy(log_format=log_format)
log.info("test")
assert log.handlers[0].formatter._fmt == log_format[0]
def test_log_initiates():
log = loggy.get_loggy()
assert type(log) == Logger
def test_mutually_exclusive_args():
with pytest.raises(MutuallyExclusiveArgumentsError):
loggy.get_loggy(
use_color=True,
log_file={"filename": "some-file.log"},
)
def test_custom_log_level():
loggy.addLoggingLevel("TRACE", logging.DEBUG - 5)
loggy.get_loggy()
assert hasattr(logging, "TRACE")
def test_log_file(tmp_path):
tmp_file = tmp_path / "log_file.log"
log = loggy.get_loggy(log_file={"filename": tmp_file})
assert tmp_path.exists()
log.info("Test")
with tmp_file.open() as f:
lines = f.readlines()
assert len(lines) == 1
def test_custom_log_level_add_color():
loggy.addLoggingLevel("CUSTOM_LEVEL", logging.DEBUG - 5)
additional_color = {logging.CUSTOM_LEVEL: "\033[38;20m"}
custom_formatter = CustomLogFormatter(
color_dict=additional_color
)
log = loggy.get_loggy()
log.handlers[0].formatter = custom_formatter
handler_colors = log.handlers[0].formatter.COLORS
assert logging.CUSTOM_LEVEL in handler_colors
assert additional_color[logging.CUSTOM_LEVEL] == handler_colors[logging.CUSTOM_LEVEL]