Coverage for /opt/homebrew/lib/python3.11/site-packages/_pytest/python_path.py: 75%

16 statements  

« prev     ^ index     » next       coverage.py v7.2.3, created at 2023-05-04 13:14 +0700

1import sys 

2 

3import pytest 

4from pytest import Config 

5from pytest import Parser 

6 

7 

8def pytest_addoption(parser: Parser) -> None: 

9 parser.addini("pythonpath", type="paths", help="Add paths to sys.path", default=[]) 

10 

11 

12@pytest.hookimpl(tryfirst=True) 

13def pytest_load_initial_conftests(early_config: Config) -> None: 

14 # `pythonpath = a b` will set `sys.path` to `[a, b, x, y, z, ...]` 

15 for path in reversed(early_config.getini("pythonpath")): 

16 sys.path.insert(0, str(path)) 

17 

18 

19@pytest.hookimpl(trylast=True) 

20def pytest_unconfigure(config: Config) -> None: 

21 for path in config.getini("pythonpath"): 

22 path_str = str(path) 

23 if path_str in sys.path: 

24 sys.path.remove(path_str)