23 lines
		
	
	
		
			630 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			630 B
		
	
	
	
		
			Python
		
	
	
	
| # content of conftest.py
 | |
| import json
 | |
| 
 | |
| import pytest
 | |
| 
 | |
| 
 | |
| class ManifestDirectory(pytest.Directory):
 | |
|     def collect(self):
 | |
|         manifest_path = self.path / "manifest.json"
 | |
|         manifest = json.loads(manifest_path.read_text(encoding="utf-8"))
 | |
|         ihook = self.ihook
 | |
|         for file in manifest["files"]:
 | |
|             yield from ihook.pytest_collect_file(
 | |
|                 file_path=self.path / file, parent=self
 | |
|             )
 | |
| 
 | |
| 
 | |
| @pytest.hookimpl
 | |
| def pytest_collect_directory(path, parent):
 | |
|     if path.joinpath("manifest.json").is_file():
 | |
|         return ManifestDirectory.from_parent(parent=parent, path=path)
 | |
|     return None
 |