|
1 | 1 | """Helpers for tests."""
|
2 | 2 |
|
3 |
| -import contextlib |
4 | 3 | import functools
|
5 |
| -import logging |
6 | 4 | import sys
|
7 | 5 | from pathlib import Path
|
8 | 6 |
|
|
12 | 10 | from weasyprint.css.targets import TargetCollector
|
13 | 11 | from weasyprint.formatting_structure import boxes, build
|
14 | 12 | from weasyprint.html import HTML5_UA_STYLESHEET
|
15 |
| -from weasyprint.logger import LOGGER |
| 13 | +from weasyprint.logger import capture_logs |
16 | 14 | from weasyprint.text.fonts import FontConfiguration
|
17 | 15 | from weasyprint.urls import path2url
|
18 | 16 |
|
@@ -73,35 +71,6 @@ def resource_path(name):
|
73 | 71 | TEST_UA_FONT_CONFIG = FontConfiguration()
|
74 | 72 | TEST_UA_STYLESHEET = CSS(resource_path('tests_ua.css'), font_config=TEST_UA_FONT_CONFIG)
|
75 | 73 |
|
76 |
| -class CallbackHandler(logging.Handler): |
77 |
| - """A logging handler that calls a function for every message.""" |
78 |
| - def __init__(self, callback): |
79 |
| - logging.Handler.__init__(self) |
80 |
| - self.emit = callback |
81 |
| - |
82 |
| - |
83 |
| -@contextlib.contextmanager |
84 |
| -def capture_logs(): |
85 |
| - """Return a context manager that captures all logged messages.""" |
86 |
| - logger = LOGGER |
87 |
| - messages = [] |
88 |
| - |
89 |
| - def emit(record): |
90 |
| - if record.name == 'weasyprint.progress': |
91 |
| - return |
92 |
| - messages.append(f'{record.levelname.upper()}: {record.getMessage()}') |
93 |
| - |
94 |
| - previous_handlers = logger.handlers |
95 |
| - previous_level = logger.level |
96 |
| - logger.handlers = [] |
97 |
| - logger.addHandler(CallbackHandler(emit)) |
98 |
| - logger.setLevel(logging.DEBUG) |
99 |
| - try: |
100 |
| - yield messages |
101 |
| - finally: |
102 |
| - logger.handlers = previous_handlers |
103 |
| - logger.level = previous_level |
104 |
| - |
105 | 74 |
|
106 | 75 | def assert_no_logs(function):
|
107 | 76 | """Decorator that asserts that nothing is logged in a function."""
|
|
0 commit comments