Skip to content

Commit 583c2a2

Browse files
committed
Fix check_untyped_defs errors in logging
1 parent 1984c10 commit 583c2a2

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

src/_pytest/logging.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
import logging
33
import re
44
from contextlib import contextmanager
5+
from typing import AbstractSet
6+
from typing import Dict
7+
from typing import List
8+
from typing import Mapping
59

610
import py
711

@@ -32,14 +36,15 @@ class ColoredLevelFormatter(logging.Formatter):
3236
logging.INFO: {"green"},
3337
logging.DEBUG: {"purple"},
3438
logging.NOTSET: set(),
35-
}
39+
} # type: Mapping[int, AbstractSet[str]]
3640
LEVELNAME_FMT_REGEX = re.compile(r"%\(levelname\)([+-.]?\d*s)")
3741

38-
def __init__(self, terminalwriter, *args, **kwargs):
42+
def __init__(self, terminalwriter, *args, **kwargs) -> None:
3943
super().__init__(*args, **kwargs)
4044
self._original_fmt = self._style._fmt
41-
self._level_to_fmt_mapping = {}
45+
self._level_to_fmt_mapping = {} # type: Dict[int, str]
4246

47+
assert self._fmt is not None
4348
levelname_fmt_match = self.LEVELNAME_FMT_REGEX.search(self._fmt)
4449
if not levelname_fmt_match:
4550
return
@@ -216,31 +221,31 @@ def catching_logs(handler, formatter=None, level=None):
216221
class LogCaptureHandler(logging.StreamHandler):
217222
"""A logging handler that stores log records and the log text."""
218223

219-
def __init__(self):
224+
def __init__(self) -> None:
220225
"""Creates a new log handler."""
221226
logging.StreamHandler.__init__(self, py.io.TextIO())
222-
self.records = []
227+
self.records = [] # type: List[logging.LogRecord]
223228

224-
def emit(self, record):
229+
def emit(self, record: logging.LogRecord) -> None:
225230
"""Keep the log records in a list in addition to the log text."""
226231
self.records.append(record)
227232
logging.StreamHandler.emit(self, record)
228233

229-
def reset(self):
234+
def reset(self) -> None:
230235
self.records = []
231236
self.stream = py.io.TextIO()
232237

233238

234239
class LogCaptureFixture:
235240
"""Provides access and control of log capturing."""
236241

237-
def __init__(self, item):
242+
def __init__(self, item) -> None:
238243
"""Creates a new funcarg."""
239244
self._item = item
240245
# dict of log name -> log level
241-
self._initial_log_levels = {} # Dict[str, int]
246+
self._initial_log_levels = {} # type: Dict[str, int]
242247

243-
def _finalize(self):
248+
def _finalize(self) -> None:
244249
"""Finalizes the fixture.
245250
246251
This restores the log levels changed by :meth:`set_level`.
@@ -453,7 +458,7 @@ def _create_formatter(self, log_format, log_date_format):
453458
):
454459
formatter = ColoredLevelFormatter(
455460
create_terminal_writer(self._config), log_format, log_date_format
456-
)
461+
) # type: logging.Formatter
457462
else:
458463
formatter = logging.Formatter(log_format, log_date_format)
459464

0 commit comments

Comments
 (0)