Merge pull request #9286 from bluetech/legacypath-subplugins
legacypath: support late-loading of pytester plugin
This commit is contained in:
		
						commit
						d6e6b9696d
					
				| 
						 | 
				
			
			@ -400,13 +400,11 @@ def Node_fspath_set(self: Node, value: LEGACY_PATH) -> None:
 | 
			
		|||
    self.path = Path(value)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.hookimpl
 | 
			
		||||
def pytest_configure(config: pytest.Config) -> None:
 | 
			
		||||
    mp = pytest.MonkeyPatch()
 | 
			
		||||
    config.add_cleanup(mp.undo)
 | 
			
		||||
 | 
			
		||||
    if config.pluginmanager.has_plugin("pytester"):
 | 
			
		||||
        config.pluginmanager.register(LegacyTestdirPlugin, "legacypath-pytester")
 | 
			
		||||
 | 
			
		||||
    if config.pluginmanager.has_plugin("tmpdir"):
 | 
			
		||||
        # Create TmpdirFactory and attach it to the config object.
 | 
			
		||||
        #
 | 
			
		||||
| 
						 | 
				
			
			@ -452,3 +450,14 @@ def pytest_configure(config: pytest.Config) -> None:
 | 
			
		|||
 | 
			
		||||
    # Add Node.fspath property.
 | 
			
		||||
    mp.setattr(Node, "fspath", property(Node_fspath, Node_fspath_set), raising=False)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.hookimpl
 | 
			
		||||
def pytest_plugin_registered(
 | 
			
		||||
    plugin: object, manager: pytest.PytestPluginManager
 | 
			
		||||
) -> None:
 | 
			
		||||
    # pytester is not loaded by default and is commonly loaded from a conftest,
 | 
			
		||||
    # so checking for it in `pytest_configure` is not enough.
 | 
			
		||||
    is_pytester = plugin is manager.get_plugin("pytester")
 | 
			
		||||
    if is_pytester and not manager.is_registered(LegacyTestdirPlugin):
 | 
			
		||||
        manager.register(LegacyTestdirPlugin, "legacypath-pytester")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue