summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2022-07-12 13:33:19 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2022-07-13 10:18:45 +0200
commit379aa4fc9bf744f7b60824a635442e2e0c525f83 (patch)
tree0c39f1ad7e4b5719694ad6a0ccf5b5eec78afcb7
parent216f71556dcf34008b31e992f0e96986b9dd7c60 (diff)
downloadpylint-git-379aa4fc9bf744f7b60824a635442e2e0c525f83.tar.gz
[refactor] Move the context manager for pythonpath in pylint.testutil
-rw-r--r--pylint/testutils/utils.py20
-rw-r--r--tests/test_self.py50
2 files changed, 38 insertions, 32 deletions
diff --git a/pylint/testutils/utils.py b/pylint/testutils/utils.py
index 40470b016..5a672905a 100644
--- a/pylint/testutils/utils.py
+++ b/pylint/testutils/utils.py
@@ -50,6 +50,26 @@ def _test_cwd(
os.chdir(original_dir)
+@contextlib.contextmanager
+def _test_environ_pythonpath(
+ new_pythonpath: str | None,
+) -> Generator[None, None, None]:
+ original_pythonpath = os.environ.get("PYTHONPATH")
+ if new_pythonpath:
+ os.environ["PYTHONPATH"] = new_pythonpath
+ elif new_pythonpath is None and original_pythonpath is not None:
+ # If new_pythonpath is None, make sure to delete PYTHONPATH if present
+ del os.environ["PYTHONPATH"]
+ try:
+ yield
+ finally:
+ if original_pythonpath:
+ os.environ["PYTHONPATH"] = original_pythonpath
+ elif new_pythonpath is not None:
+ # Only delete PYTHONPATH if new_pythonpath wasn't None
+ del os.environ["PYTHONPATH"]
+
+
def create_files(paths: list[str], chroot: str = ".") -> None:
"""Creates directories and files found in <path>.
diff --git a/tests/test_self.py b/tests/test_self.py
index dcaee0363..2f702e362 100644
--- a/tests/test_self.py
+++ b/tests/test_self.py
@@ -17,7 +17,7 @@ import sys
import tempfile
import textwrap
import warnings
-from collections.abc import Generator, Iterator
+from collections.abc import Iterator
from copy import copy
from io import BytesIO, StringIO
from os.path import abspath, dirname, join
@@ -37,7 +37,12 @@ from pylint.reporters import JSONReporter
from pylint.reporters.text import BaseReporter, ColorizedTextReporter, TextReporter
from pylint.testutils._run import _add_rcfile_default_pylintrc
from pylint.testutils._run import _Run as Run
-from pylint.testutils.utils import _patch_streams, _test_cwd, _test_sys_path
+from pylint.testutils.utils import (
+ _patch_streams,
+ _test_cwd,
+ _test_environ_pythonpath,
+ _test_sys_path,
+)
from pylint.utils import utils
if sys.version_info >= (3, 11):
@@ -742,25 +747,6 @@ class TestRunTC:
@staticmethod
def test_modify_sys_path() -> None:
- @contextlib.contextmanager
- def test_environ_pythonpath(
- new_pythonpath: str | None,
- ) -> Generator[None, None, None]:
- original_pythonpath = os.environ.get("PYTHONPATH")
- if new_pythonpath:
- os.environ["PYTHONPATH"] = new_pythonpath
- elif new_pythonpath is None and original_pythonpath is not None:
- # If new_pythonpath is None, make sure to delete PYTHONPATH if present
- del os.environ["PYTHONPATH"]
- try:
- yield
- finally:
- if original_pythonpath:
- os.environ["PYTHONPATH"] = original_pythonpath
- elif new_pythonpath is not None:
- # Only delete PYTHONPATH if new_pythonpath wasn't None
- del os.environ["PYTHONPATH"]
-
cwd = "/tmp/pytest-of-root/pytest-0/test_do_not_import_files_from_0"
default_paths = [
"/usr/local/lib/python39.zip",
@@ -772,62 +758,62 @@ class TestRunTC:
mock_getcwd.return_value = cwd
paths = [cwd, *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath(None):
+ with _test_environ_pythonpath(None):
modify_sys_path()
assert sys.path == paths[1:]
paths = [cwd, cwd, *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath("."):
+ with _test_environ_pythonpath("."):
modify_sys_path()
assert sys.path == paths[1:]
paths = [cwd, "/custom_pythonpath", *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath("/custom_pythonpath"):
+ with _test_environ_pythonpath("/custom_pythonpath"):
modify_sys_path()
assert sys.path == paths[1:]
paths = [cwd, "/custom_pythonpath", cwd, *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath("/custom_pythonpath:"):
+ with _test_environ_pythonpath("/custom_pythonpath:"):
modify_sys_path()
assert sys.path == [paths[1]] + paths[3:]
paths = ["", cwd, "/custom_pythonpath", *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath(":/custom_pythonpath"):
+ with _test_environ_pythonpath(":/custom_pythonpath"):
modify_sys_path()
assert sys.path == paths[2:]
paths = [cwd, cwd, "/custom_pythonpath", *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath(":/custom_pythonpath:"):
+ with _test_environ_pythonpath(":/custom_pythonpath:"):
modify_sys_path()
assert sys.path == paths[2:]
paths = [cwd, cwd, *default_paths]
sys.path = copy(paths)
- with test_environ_pythonpath(":."):
+ with _test_environ_pythonpath(":."):
modify_sys_path()
assert sys.path == paths[1:]
sys.path = copy(paths)
- with test_environ_pythonpath(f":{cwd}"):
+ with _test_environ_pythonpath(f":{cwd}"):
modify_sys_path()
assert sys.path == paths[1:]
sys.path = copy(paths)
- with test_environ_pythonpath(".:"):
+ with _test_environ_pythonpath(".:"):
modify_sys_path()
assert sys.path == paths[1:]
sys.path = copy(paths)
- with test_environ_pythonpath(f"{cwd}:"):
+ with _test_environ_pythonpath(f"{cwd}:"):
modify_sys_path()
assert sys.path == paths[1:]
paths = ["", cwd, *default_paths, cwd]
sys.path = copy(paths)
- with test_environ_pythonpath(cwd):
+ with _test_environ_pythonpath(cwd):
modify_sys_path()
assert sys.path == paths[1:]