Deprecate pytest_collect_directory Fix #571 Co-authored-by: Daniel Hahler <github@thequod.de>
This commit is contained in:
		
							parent
							
								
									b11bfa106c
								
							
						
					
					
						commit
						9fd71d6fe0
					
				| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					Deprecate the unused/broken `pytest_collect_directory` hook.
 | 
				
			||||||
 | 
					It was misaligned since the removal of the ``Directory`` collector in 2010
 | 
				
			||||||
 | 
					and incorrect/unusable as soon as collection was split from test execution.
 | 
				
			||||||
| 
						 | 
					@ -49,3 +49,8 @@ NO_PRINT_LOGS = PytestDeprecationWarning(
 | 
				
			||||||
    "--no-print-logs is deprecated and scheduled for removal in pytest 6.0.\n"
 | 
					    "--no-print-logs is deprecated and scheduled for removal in pytest 6.0.\n"
 | 
				
			||||||
    "Please use --show-capture instead."
 | 
					    "Please use --show-capture instead."
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COLLECT_DIRECTORY_HOOK = PytestDeprecationWarning(
 | 
				
			||||||
 | 
					    "The pytest_collect_directory hook is not working.\n"
 | 
				
			||||||
 | 
					    "Please use collect_ignore in conftests or pytest_collection_modifyitems."
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,6 +4,7 @@ from typing import Optional
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from pluggy import HookspecMarker
 | 
					from pluggy import HookspecMarker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from .deprecated import COLLECT_DIRECTORY_HOOK
 | 
				
			||||||
from _pytest.compat import TYPE_CHECKING
 | 
					from _pytest.compat import TYPE_CHECKING
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if TYPE_CHECKING:
 | 
					if TYPE_CHECKING:
 | 
				
			||||||
| 
						 | 
					@ -205,7 +206,7 @@ def pytest_ignore_collect(path, config):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@hookspec(firstresult=True)
 | 
					@hookspec(firstresult=True, warn_on_impl=COLLECT_DIRECTORY_HOOK)
 | 
				
			||||||
def pytest_collect_directory(path, parent):
 | 
					def pytest_collect_directory(path, parent):
 | 
				
			||||||
    """ called before traversing a directory for collection files.
 | 
					    """ called before traversing a directory for collection files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -221,6 +221,7 @@ class TestGeneralUsage:
 | 
				
			||||||
            "E   {}: No module named 'qwerty'".format(exc_name),
 | 
					            "E   {}: No module named 'qwerty'".format(exc_name),
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.filterwarnings("always::pytest.PytestDeprecationWarning")
 | 
				
			||||||
    def test_early_skip(self, testdir):
 | 
					    def test_early_skip(self, testdir):
 | 
				
			||||||
        testdir.mkdir("xyz")
 | 
					        testdir.mkdir("xyz")
 | 
				
			||||||
        testdir.makeconftest(
 | 
					        testdir.makeconftest(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -257,6 +257,7 @@ class TestCollectPluginHookRelay:
 | 
				
			||||||
        assert len(wascalled) == 1
 | 
					        assert len(wascalled) == 1
 | 
				
			||||||
        assert wascalled[0].ext == ".abc"
 | 
					        assert wascalled[0].ext == ".abc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @pytest.mark.filterwarnings("ignore:.*pytest_collect_directory.*")
 | 
				
			||||||
    def test_pytest_collect_directory(self, testdir):
 | 
					    def test_pytest_collect_directory(self, testdir):
 | 
				
			||||||
        wascalled = []
 | 
					        wascalled = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue