|
12 | 12 | from typing import List |
13 | 13 | from typing import Optional |
14 | 14 | from typing import Set |
| 15 | +from typing import Union |
15 | 16 |
|
16 | 17 | import attr |
17 | 18 | import py |
|
24 | 25 | from _pytest import nodes |
25 | 26 | from _pytest._io import TerminalWriter |
26 | 27 | from _pytest.config import Config |
| 28 | +from _pytest.config import ExitCode |
| 29 | +from _pytest.config.argparsing import Parser |
27 | 30 | from _pytest.main import Session |
28 | 31 | from _pytest.python import Module |
29 | 32 |
|
@@ -316,11 +319,12 @@ def pytest_collection_modifyitems(self, session, config, items): |
316 | 319 | else: |
317 | 320 | self._report_status += "not deselecting items." |
318 | 321 |
|
319 | | - def pytest_sessionfinish(self, session): |
| 322 | + def pytest_sessionfinish(self, session: Session) -> None: |
320 | 323 | config = self.config |
321 | 324 | if config.getoption("cacheshow") or hasattr(config, "slaveinput"): |
322 | 325 | return |
323 | 326 |
|
| 327 | + assert config.cache is not None |
324 | 328 | saved_lastfailed = config.cache.get("cache/lastfailed", {}) |
325 | 329 | if saved_lastfailed != self.lastfailed: |
326 | 330 | config.cache.set("cache/lastfailed", self.lastfailed) |
@@ -358,15 +362,15 @@ def pytest_collection_modifyitems( |
358 | 362 | def _get_increasing_order(self, items): |
359 | 363 | return sorted(items, key=lambda item: item.fspath.mtime(), reverse=True) |
360 | 364 |
|
361 | | - def pytest_sessionfinish(self, session): |
| 365 | + def pytest_sessionfinish(self, session: Session) -> None: |
362 | 366 | config = self.config |
363 | 367 | if config.getoption("cacheshow") or hasattr(config, "slaveinput"): |
364 | 368 | return |
365 | 369 |
|
366 | 370 | config.cache.set("cache/nodeids", self.cached_nodeids) |
367 | 371 |
|
368 | 372 |
|
369 | | -def pytest_addoption(parser): |
| 373 | +def pytest_addoption(parser: Parser) -> None: |
370 | 374 | group = parser.getgroup("general") |
371 | 375 | group.addoption( |
372 | 376 | "--lf", |
@@ -424,16 +428,18 @@ def pytest_addoption(parser): |
424 | 428 | ) |
425 | 429 |
|
426 | 430 |
|
427 | | -def pytest_cmdline_main(config): |
| 431 | +def pytest_cmdline_main(config: Config) -> Optional[Union[int, ExitCode]]: |
428 | 432 | if config.option.cacheshow: |
429 | 433 | from _pytest.main import wrap_session |
430 | 434 |
|
431 | 435 | return wrap_session(config, cacheshow) |
| 436 | + return None |
432 | 437 |
|
433 | 438 |
|
434 | 439 | @pytest.hookimpl(tryfirst=True) |
435 | 440 | def pytest_configure(config: Config) -> None: |
436 | | - config.cache = Cache.for_config(config) |
| 441 | + # Type ignored: pending mechanism to store typed objects scoped to config. |
| 442 | + config.cache = Cache.for_config(config) # type: ignore # noqa: F821 |
437 | 443 | config.pluginmanager.register(LFPlugin(config), "lfplugin") |
438 | 444 | config.pluginmanager.register(NFPlugin(config), "nfplugin") |
439 | 445 |
|
|
0 commit comments