Merge pull request #6525 from blueyed/typing-session

typing: Session.__init__
This commit is contained in:
Daniel Hahler 2020-01-23 00:16:08 +01:00 committed by GitHub
commit ad02f6f879
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 5 deletions

View File

@ -6,21 +6,30 @@ import importlib
import os import os
import sys import sys
from typing import Dict from typing import Dict
from typing import FrozenSet
from typing import List
import attr import attr
import py import py
import _pytest._code import _pytest._code
from _pytest import nodes from _pytest import nodes
from _pytest.compat import TYPE_CHECKING
from _pytest.config import Config
from _pytest.config import directory_arg from _pytest.config import directory_arg
from _pytest.config import hookimpl from _pytest.config import hookimpl
from _pytest.config import UsageError from _pytest.config import UsageError
from _pytest.fixtures import FixtureManager from _pytest.fixtures import FixtureManager
from _pytest.nodes import Node
from _pytest.outcomes import exit from _pytest.outcomes import exit
from _pytest.runner import collect_one_node from _pytest.runner import collect_one_node
from _pytest.runner import SetupState from _pytest.runner import SetupState
if TYPE_CHECKING:
from _pytest.python import Package
class ExitCode(enum.IntEnum): class ExitCode(enum.IntEnum):
""" """
.. versionadded:: 5.0 .. versionadded:: 5.0
@ -383,7 +392,7 @@ class Session(nodes.FSCollector):
# Set on the session by fixtures.pytest_sessionstart. # Set on the session by fixtures.pytest_sessionstart.
_fixturemanager = None # type: FixtureManager _fixturemanager = None # type: FixtureManager
def __init__(self, config): def __init__(self, config: Config) -> None:
nodes.FSCollector.__init__( nodes.FSCollector.__init__(
self, config.rootdir, parent=None, config=config, session=self, nodeid="" self, config.rootdir, parent=None, config=config, session=self, nodeid=""
) )
@ -394,14 +403,16 @@ class Session(nodes.FSCollector):
self.trace = config.trace.root.get("collection") self.trace = config.trace.root.get("collection")
self._norecursepatterns = config.getini("norecursedirs") self._norecursepatterns = config.getini("norecursedirs")
self.startdir = config.invocation_dir self.startdir = config.invocation_dir
self._initialpaths = frozenset() self._initialpaths = frozenset() # type: FrozenSet[py.path.local]
# Keep track of any collected nodes in here, so we don't duplicate fixtures # Keep track of any collected nodes in here, so we don't duplicate fixtures
self._node_cache = {} self._node_cache = {} # type: Dict[str, List[Node]]
# Dirnames of pkgs with dunder-init files.
self._pkg_roots = {} # type: Dict[py.path.local, Package]
self._bestrelpathcache = _bestrelpath_cache( self._bestrelpathcache = _bestrelpath_cache(
config.rootdir config.rootdir
) # type: Dict[str, str] ) # type: Dict[str, str]
# Dirnames of pkgs with dunder-init files.
self._pkg_roots = {}
self.config.pluginmanager.register(self, name="session") self.config.pluginmanager.register(self, name="session")