diff --git a/git/__init__.py b/git/__init__.py index 05a02a7ff..5b55e59eb 100644 --- a/git/__init__.py +++ b/git/__init__.py @@ -6,38 +6,11 @@ # flake8: noqa # @PydevCodeAnalysisIgnore from git.exc import * # @NoMove @IgnorePep8 -import os -import os.path as osp -import sys - from typing import List, Optional, Sequence, Tuple, Union, TYPE_CHECKING from git.types import PathLike __version__ = "git" - -# { Initialization -def _init_externals() -> None: - """Initialize external projects by putting them into the path""" - if __version__ == "git" and "PYOXIDIZER" not in os.environ: - sys.path.insert(1, osp.join(osp.dirname(__file__), "ext", "gitdb")) - - try: - import gitdb - except ImportError as e: - raise ImportError("'gitdb' could not be found in your PYTHONPATH") from e - # END verify import - - -# } END initialization - - -################# -_init_externals() -################# - -# { Imports - from gitdb.util import to_hex_sha try: @@ -62,8 +35,6 @@ def _init_externals() -> None: except GitError as _exc: raise ImportError("%s: %s" % (_exc.__class__.__name__, _exc)) from _exc -# } END imports - # __all__ must be statically defined by py.typed support # __all__ = [name for name, obj in locals().items() if not (name.startswith("_") or inspect.ismodule(obj))] __all__ = [ diff --git a/test/test_installation.py b/test/test_installation.py index 0cb0c71fa..3a0e43973 100644 --- a/test/test_installation.py +++ b/test/test_installation.py @@ -25,6 +25,7 @@ def setUp_venv(self, rw_dir): @with_rw_directory def test_installation(self, rw_dir): self.setUp_venv(rw_dir) + result = subprocess.run( [self.pip, "install", "."], stdout=subprocess.PIPE, @@ -35,12 +36,32 @@ def test_installation(self, rw_dir): result.returncode, msg=result.stderr or result.stdout or "Can't install project", ) - result = subprocess.run([self.python, "-c", "import git"], stdout=subprocess.PIPE, cwd=self.sources) + + result = subprocess.run( + [self.python, "-c", "import git"], + stdout=subprocess.PIPE, + cwd=self.sources, + ) self.assertEqual( 0, result.returncode, msg=result.stderr or result.stdout or "Selftest failed", ) + + result = subprocess.run( + [self.python, "-c", "import gitdb; import smmap"], + stdout=subprocess.PIPE, + cwd=self.sources, + ) + self.assertEqual( + 0, + result.returncode, + msg=result.stderr or result.stdout or "Dependencies not installed", + ) + + # Even IF gitdb or any other dependency is supplied during development + # by inserting its location into PYTHONPATH or otherwise patched into + # sys.path, make sure it is not wrongly inserted as the *first* entry. result = subprocess.run( [self.python, "-c", "import sys;import git; print(sys.path)"], stdout=subprocess.PIPE, @@ -53,4 +74,3 @@ def test_installation(self, rw_dir): syspath[0], msg="Failed to follow the conventions for https://docs.python.org/3/library/sys.html#sys.path", ) - self.assertTrue(syspath[1].endswith("gitdb"), msg="Failed to add gitdb to sys.path")