forked from getlogbook/logbook
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_groups.py
91 lines (61 loc) · 2.23 KB
/
test_groups.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import logbook
def test_groups(logger):
def inject_extra(record):
record.extra['foo'] = 'bar'
group = logbook.LoggerGroup(processor=inject_extra)
group.level = logbook.ERROR
group.add_logger(logger)
with logbook.TestHandler() as handler:
logger.warn('A warning')
logger.error('An error')
assert (not handler.has_warning('A warning'))
assert handler.has_error('An error')
assert handler.records[0].extra['foo'] == 'bar'
def test_group_disabled():
group = logbook.LoggerGroup()
logger1 = logbook.Logger('testlogger1')
logger2 = logbook.Logger('testlogger2')
group.add_logger(logger1)
group.add_logger(logger2)
# Test group disable
group.disable()
with logbook.TestHandler() as handler:
logger1.warn('Warning 1')
logger2.warn('Warning 2')
assert not handler.has_warnings
# Test group enable
group.enable()
with logbook.TestHandler() as handler:
logger1.warn('Warning 1')
logger2.warn('Warning 2')
assert handler.has_warning('Warning 1')
assert handler.has_warning('Warning 2')
# Test group disabled, but logger explicitly enabled
group.disable()
logger1.enable()
with logbook.TestHandler() as handler:
logger1.warn('Warning 1')
logger2.warn('Warning 2')
assert handler.has_warning('Warning 1')
assert not handler.has_warning('Warning 2')
# Logger 1 will be enabled by using force=True
group.disable(force=True)
with logbook.TestHandler() as handler:
logger1.warn('Warning 1')
logger2.warn('Warning 2')
assert not handler.has_warning('Warning 1')
assert not handler.has_warning('Warning 2')
# Enabling without force means logger 1 will still be disabled.
group.enable()
with logbook.TestHandler() as handler:
logger1.warn('Warning 1')
logger2.warn('Warning 2')
assert not handler.has_warning('Warning 1')
assert handler.has_warning('Warning 2')
# Force logger 1 enabled.
group.enable(force=True)
with logbook.TestHandler() as handler:
logger1.warn('Warning 1')
logger2.warn('Warning 2')
assert handler.has_warning('Warning 1')
assert handler.has_warning('Warning 2')