Merge branch 'sys_argv' of https://github.com/aimileus/setuptools into maint/44.x
This commit is contained in:
commit
b5022cdbf6
|
@ -0,0 +1 @@
|
|||
Set sys.argv[0] in setup script run by build_meta.__legacy__
|
|
@ -232,6 +232,12 @@ class _BuildMetaLegacyBackend(_BuildMetaBackend):
|
|||
if script_dir not in sys.path:
|
||||
sys.path.insert(0, script_dir)
|
||||
|
||||
# Some setup.py scripts (e.g. in pygame and numpy) use sys.argv[0] to
|
||||
# get the directory of the source code. They expect it to refer to the
|
||||
# setup.py script.
|
||||
sys_argv_0 = sys.argv[0]
|
||||
sys.argv[0] = setup_script
|
||||
|
||||
try:
|
||||
super(_BuildMetaLegacyBackend,
|
||||
self).run_setup(setup_script=setup_script)
|
||||
|
@ -242,6 +248,7 @@ class _BuildMetaLegacyBackend(_BuildMetaBackend):
|
|||
# the original path so that the path manipulation does not persist
|
||||
# within the hook after run_setup is called.
|
||||
sys.path[:] = sys_path
|
||||
sys.argv[0] = sys_argv_0
|
||||
|
||||
# The primary backend
|
||||
_BACKEND = _BuildMetaBackend()
|
||||
|
|
|
@ -406,6 +406,28 @@ class TestBuildMetaBackend:
|
|||
|
||||
assert expected == sorted(actual)
|
||||
|
||||
_sys_argv_0_passthrough = {
|
||||
'setup.py': DALS("""
|
||||
import os
|
||||
import sys
|
||||
|
||||
__import__('setuptools').setup(
|
||||
name='foo',
|
||||
version='0.0.0',
|
||||
)
|
||||
|
||||
sys_argv = os.path.abspath(sys.argv[0])
|
||||
file_path = os.path.abspath('setup.py')
|
||||
assert sys_argv == file_path
|
||||
""")
|
||||
}
|
||||
|
||||
def test_sys_argv_passthrough(self, tmpdir_cwd):
|
||||
build_files(self._sys_argv_0_passthrough)
|
||||
build_backend = self.get_build_backend()
|
||||
with pytest.raises(AssertionError):
|
||||
build_backend.build_sdist("temp")
|
||||
|
||||
|
||||
class TestBuildMetaLegacyBackend(TestBuildMetaBackend):
|
||||
backend_name = 'setuptools.build_meta:__legacy__'
|
||||
|
@ -417,3 +439,9 @@ class TestBuildMetaLegacyBackend(TestBuildMetaBackend):
|
|||
|
||||
build_backend = self.get_build_backend()
|
||||
build_backend.build_sdist("temp")
|
||||
|
||||
def test_sys_argv_passthrough(self, tmpdir_cwd):
|
||||
build_files(self._sys_argv_0_passthrough)
|
||||
|
||||
build_backend = self.get_build_backend()
|
||||
build_backend.build_sdist("temp")
|
||||
|
|
Loading…
Reference in New Issue