|
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