diff --git a/aws_lambda_builders/workflows/python_pip/packager.py b/aws_lambda_builders/workflows/python_pip/packager.py index 575ecb7d2..7a752d70c 100644 --- a/aws_lambda_builders/workflows/python_pip/packager.py +++ b/aws_lambda_builders/workflows/python_pip/packager.py @@ -772,12 +772,14 @@ def _execute(self, command, args, env_vars=None, shim=None): main_args = [command] + args LOG.debug("calling pip %s", " ".join(main_args)) rc, out, err = self._wrapped_pip.main(main_args, env_vars=env_vars, shim=shim) + LOG.debug("pip stdout: %s", out) + LOG.debug("pip stderr: %s", err) return rc, out, err def build_wheel(self, wheel, directory, compile_c=True): """Build an sdist into a wheel file.""" arguments = ["--no-deps", "--wheel-dir", directory, wheel] - env_vars = self._osutils.environ() + env_vars = self._osutils.original_environ() shim = "" if not compile_c: env_vars.update(pip_no_compile_c_env_vars) diff --git a/aws_lambda_builders/workflows/python_pip/utils.py b/aws_lambda_builders/workflows/python_pip/utils.py index 207b4cdd4..06ab8ab96 100644 --- a/aws_lambda_builders/workflows/python_pip/utils.py +++ b/aws_lambda_builders/workflows/python_pip/utils.py @@ -16,9 +16,6 @@ class OSUtils(object): - def environ(self): - return os.environ - def original_environ(self): # https://pyinstaller.readthedocs.io/en/stable/runtime-information.html#ld-library-path-libpath-considerations env = dict(os.environ) diff --git a/tests/functional/workflows/python_pip/test_packager.py b/tests/functional/workflows/python_pip/test_packager.py index 2a674afe8..8a2b85749 100644 --- a/tests/functional/workflows/python_pip/test_packager.py +++ b/tests/functional/workflows/python_pip/test_packager.py @@ -4,7 +4,7 @@ import tarfile import io from collections import defaultdict, namedtuple -from unittest import mock +from unittest import TestCase, mock import pytest @@ -182,7 +182,7 @@ def osutils(): @pytest.fixture def empty_env_osutils(): class EmptyEnv(object): - def environ(self): + def original_environ(self): return {} return EmptyEnv() @@ -830,6 +830,16 @@ def test_build_into_existing_dir_with_preinstalled_packages(self, tmpdir, osutil assert installed_packages == ["bar"] +class TestPipRunner(TestCase): + def test_build_wheel_calls_pip_without_ld_library_path(self): + pip_mock = mock.Mock() + pip_mock.main.return_value = (0, "out", "err") + os_utils_mock = mock.Mock() + pip_runner = PipRunner(mock.Mock(), pip_mock, os_utils_mock) + pip_runner.build_wheel("wheel", "dir") + os_utils_mock.original_environ.assert_called_once() + + class TestSubprocessPip(object): def test_can_invoke_pip(self): pip = SubprocessPip(python_exe=sys.executable) diff --git a/tests/unit/workflows/python_pip/test_packager.py b/tests/unit/workflows/python_pip/test_packager.py index e2d4300bc..cdd339811 100644 --- a/tests/unit/workflows/python_pip/test_packager.py +++ b/tests/unit/workflows/python_pip/test_packager.py @@ -61,7 +61,7 @@ class CustomEnv(OSUtils): def __init__(self, env): self._env = env - def environ(self): + def original_environ(self): return self._env