diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2022-07-10 17:36:56 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2022-07-11 06:49:50 +0200 |
commit | e2b7b2a7436979808adc5a3da0e46766bba9a900 (patch) | |
tree | 7f7e30d85565f1b5ec360e61a5ca2ac2d7e6f3a3 /pylint/testutils | |
parent | 46abb7246baac1effc68cb73852fb2cead959726 (diff) | |
download | pylint-git-e2b7b2a7436979808adc5a3da0e46766bba9a900.tar.gz |
[testutils] Add a parameter to context manager changing sys.path or cwd
Diffstat (limited to 'pylint/testutils')
-rw-r--r-- | pylint/testutils/utils.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/pylint/testutils/utils.py b/pylint/testutils/utils.py index ee36b2199..40470b016 100644 --- a/pylint/testutils/utils.py +++ b/pylint/testutils/utils.py @@ -8,6 +8,8 @@ import contextlib import os import sys from collections.abc import Generator, Iterator +from copy import copy +from pathlib import Path from typing import TextIO @@ -23,18 +25,26 @@ def _patch_streams(out: TextIO) -> Iterator[None]: @contextlib.contextmanager -def _test_sys_path() -> Generator[None, None, None]: +def _test_sys_path( + replacement_sys_path: list[str] | None = None, +) -> Generator[None, None, None]: original_path = sys.path try: + if replacement_sys_path is not None: + sys.path = copy(replacement_sys_path) yield finally: sys.path = original_path @contextlib.contextmanager -def _test_cwd() -> Generator[None, None, None]: +def _test_cwd( + current_working_directory: str | Path | None = None, +) -> Generator[None, None, None]: original_dir = os.getcwd() try: + if current_working_directory is not None: + os.chdir(current_working_directory) yield finally: os.chdir(original_dir) |