Move Config.{invocation_dir,rootdir,inifile} to legacypath plugin
This commit is contained in:
		
							parent
							
								
									d979f82fb0
								
							
						
					
					
						commit
						84722a7904
					
				| 
						 | 
					@ -49,7 +49,6 @@ from _pytest._code import filter_traceback
 | 
				
			||||||
from _pytest._io import TerminalWriter
 | 
					from _pytest._io import TerminalWriter
 | 
				
			||||||
from _pytest.compat import final
 | 
					from _pytest.compat import final
 | 
				
			||||||
from _pytest.compat import importlib_metadata
 | 
					from _pytest.compat import importlib_metadata
 | 
				
			||||||
from _pytest.compat import LEGACY_PATH
 | 
					 | 
				
			||||||
from _pytest.compat import legacy_path
 | 
					from _pytest.compat import legacy_path
 | 
				
			||||||
from _pytest.outcomes import fail
 | 
					from _pytest.outcomes import fail
 | 
				
			||||||
from _pytest.outcomes import Skipped
 | 
					from _pytest.outcomes import Skipped
 | 
				
			||||||
| 
						 | 
					@ -950,17 +949,6 @@ class Config:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            self.cache: Optional[Cache] = None
 | 
					            self.cache: Optional[Cache] = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					 | 
				
			||||||
    def invocation_dir(self) -> LEGACY_PATH:
 | 
					 | 
				
			||||||
        """The directory from which pytest was invoked.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Prefer to use :attr:`invocation_params.dir <InvocationParams.dir>`,
 | 
					 | 
				
			||||||
        which is a :class:`pathlib.Path`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        :type: LEGACY_PATH
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        return legacy_path(str(self.invocation_params.dir))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def rootpath(self) -> Path:
 | 
					    def rootpath(self) -> Path:
 | 
				
			||||||
        """The path to the :ref:`rootdir <rootdir>`.
 | 
					        """The path to the :ref:`rootdir <rootdir>`.
 | 
				
			||||||
| 
						 | 
					@ -971,16 +959,6 @@ class Config:
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        return self._rootpath
 | 
					        return self._rootpath
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					 | 
				
			||||||
    def rootdir(self) -> LEGACY_PATH:
 | 
					 | 
				
			||||||
        """The path to the :ref:`rootdir <rootdir>`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Prefer to use :attr:`rootpath`, which is a :class:`pathlib.Path`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        :type: LEGACY_PATH
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        return legacy_path(str(self.rootpath))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def inipath(self) -> Optional[Path]:
 | 
					    def inipath(self) -> Optional[Path]:
 | 
				
			||||||
        """The path to the :ref:`configfile <configfiles>`.
 | 
					        """The path to the :ref:`configfile <configfiles>`.
 | 
				
			||||||
| 
						 | 
					@ -991,16 +969,6 @@ class Config:
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        return self._inipath
 | 
					        return self._inipath
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					 | 
				
			||||||
    def inifile(self) -> Optional[LEGACY_PATH]:
 | 
					 | 
				
			||||||
        """The path to the :ref:`configfile <configfiles>`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Prefer to use :attr:`inipath`, which is a :class:`pathlib.Path`.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        :type: Optional[LEGACY_PATH]
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        return legacy_path(str(self.inipath)) if self.inipath else None
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def add_cleanup(self, func: Callable[[], None]) -> None:
 | 
					    def add_cleanup(self, func: Callable[[], None]) -> None:
 | 
				
			||||||
        """Add a function to be called when the config object gets out of
 | 
					        """Add a function to be called when the config object gets out of
 | 
				
			||||||
        use (usually coninciding with pytest_unconfigure)."""
 | 
					        use (usually coninciding with pytest_unconfigure)."""
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -331,6 +331,37 @@ def TerminalReporter_startdir(self: TerminalReporter) -> LEGACY_PATH:
 | 
				
			||||||
    return legacy_path(self.startpath)
 | 
					    return legacy_path(self.startpath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def Config_invocation_dir(self: pytest.Config) -> LEGACY_PATH:
 | 
				
			||||||
 | 
					    """The directory from which pytest was invoked.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Prefer to use :attr:`invocation_params.dir <InvocationParams.dir>`,
 | 
				
			||||||
 | 
					    which is a :class:`pathlib.Path`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :type: LEGACY_PATH
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    return legacy_path(str(self.invocation_params.dir))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def Config_rootdir(self: pytest.Config) -> LEGACY_PATH:
 | 
				
			||||||
 | 
					    """The path to the :ref:`rootdir <rootdir>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Prefer to use :attr:`rootpath`, which is a :class:`pathlib.Path`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :type: LEGACY_PATH
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    return legacy_path(str(self.rootpath))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def Config_inifile(self: pytest.Config) -> Optional[LEGACY_PATH]:
 | 
				
			||||||
 | 
					    """The path to the :ref:`configfile <configfiles>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Prefer to use :attr:`inipath`, which is a :class:`pathlib.Path`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :type: Optional[LEGACY_PATH]
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    return legacy_path(str(self.inipath)) if self.inipath else None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def pytest_configure(config: pytest.Config) -> None:
 | 
					def pytest_configure(config: pytest.Config) -> None:
 | 
				
			||||||
    mp = pytest.MonkeyPatch()
 | 
					    mp = pytest.MonkeyPatch()
 | 
				
			||||||
    config.add_cleanup(mp.undo)
 | 
					    config.add_cleanup(mp.undo)
 | 
				
			||||||
| 
						 | 
					@ -361,3 +392,10 @@ def pytest_configure(config: pytest.Config) -> None:
 | 
				
			||||||
    mp.setattr(
 | 
					    mp.setattr(
 | 
				
			||||||
        TerminalReporter, "startdir", property(TerminalReporter_startdir), raising=False
 | 
					        TerminalReporter, "startdir", property(TerminalReporter_startdir), raising=False
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Add Config.{invocation_dir,rootdir,inifile} properties.
 | 
				
			||||||
 | 
					    mp.setattr(
 | 
				
			||||||
 | 
					        pytest.Config, "invocation_dir", property(Config_invocation_dir), raising=False
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    mp.setattr(pytest.Config, "rootdir", property(Config_rootdir), raising=False)
 | 
				
			||||||
 | 
					    mp.setattr(pytest.Config, "inifile", property(Config_inifile), raising=False)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue