main: add Session.startpath, make Session.startdir a property that can be deprecated
Same as in Config.
This commit is contained in:
		
							parent
							
								
									6a174afdfe
								
							
						
					
					
						commit
						ccdadb64ea
					
				| 
						 | 
					@ -25,6 +25,7 @@ import attr
 | 
				
			||||||
import _pytest._code
 | 
					import _pytest._code
 | 
				
			||||||
from _pytest import nodes
 | 
					from _pytest import nodes
 | 
				
			||||||
from _pytest.compat import final
 | 
					from _pytest.compat import final
 | 
				
			||||||
 | 
					from _pytest.compat import LEGACY_PATH
 | 
				
			||||||
from _pytest.compat import legacy_path
 | 
					from _pytest.compat import legacy_path
 | 
				
			||||||
from _pytest.config import Config
 | 
					from _pytest.config import Config
 | 
				
			||||||
from _pytest.config import directory_arg
 | 
					from _pytest.config import directory_arg
 | 
				
			||||||
| 
						 | 
					@ -301,7 +302,7 @@ def wrap_session(
 | 
				
			||||||
    finally:
 | 
					    finally:
 | 
				
			||||||
        # Explicitly break reference cycle.
 | 
					        # Explicitly break reference cycle.
 | 
				
			||||||
        excinfo = None  # type: ignore
 | 
					        excinfo = None  # type: ignore
 | 
				
			||||||
        session.startdir.chdir()
 | 
					        os.chdir(session.startpath)
 | 
				
			||||||
        if initstate >= 2:
 | 
					        if initstate >= 2:
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                config.hook.pytest_sessionfinish(
 | 
					                config.hook.pytest_sessionfinish(
 | 
				
			||||||
| 
						 | 
					@ -476,7 +477,6 @@ class Session(nodes.FSCollector):
 | 
				
			||||||
        self.shouldstop: Union[bool, str] = False
 | 
					        self.shouldstop: Union[bool, str] = False
 | 
				
			||||||
        self.shouldfail: Union[bool, str] = False
 | 
					        self.shouldfail: Union[bool, str] = False
 | 
				
			||||||
        self.trace = config.trace.root.get("collection")
 | 
					        self.trace = config.trace.root.get("collection")
 | 
				
			||||||
        self.startdir = config.invocation_dir
 | 
					 | 
				
			||||||
        self._initialpaths: FrozenSet[Path] = frozenset()
 | 
					        self._initialpaths: FrozenSet[Path] = frozenset()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        self._bestrelpathcache: Dict[Path, str] = _bestrelpath_cache(config.rootpath)
 | 
					        self._bestrelpathcache: Dict[Path, str] = _bestrelpath_cache(config.rootpath)
 | 
				
			||||||
| 
						 | 
					@ -497,6 +497,24 @@ class Session(nodes.FSCollector):
 | 
				
			||||||
            self.testscollected,
 | 
					            self.testscollected,
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @property
 | 
				
			||||||
 | 
					    def startpath(self) -> Path:
 | 
				
			||||||
 | 
					        """The path from which pytest was invoked.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .. versionadded:: 6.3.0
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        return self.config.invocation_params.dir
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @property
 | 
				
			||||||
 | 
					    def stardir(self) -> LEGACY_PATH:
 | 
				
			||||||
 | 
					        """The path from which pytest was invoked.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Prefer to use ``startpath`` which is a :class:`pathlib.Path`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        :type: LEGACY_PATH
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        return legacy_path(self.startpath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _node_location_to_relpath(self, node_path: Path) -> str:
 | 
					    def _node_location_to_relpath(self, node_path: Path) -> str:
 | 
				
			||||||
        # bestrelpath is a quite slow function.
 | 
					        # bestrelpath is a quite slow function.
 | 
				
			||||||
        return self._bestrelpathcache[node_path]
 | 
					        return self._bestrelpathcache[node_path]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue