run-tests: forward Python USER_BASE from site (issue5425)

We do this so that any linters installed via pip install --user don't
break. See https://docs.python.org/2/library/site.html#site.USER_BASE
for a description of what this nonsense is all about.

An alternative would be to not set HOME, but that'll cause other
problems (see issue2707), or to forward every single path entry from
sys.path in PYTHONPATH (which seems sketchy in its own way).
This commit is contained in:
Augie Fackler 2016-11-10 16:07:24 -05:00
parent 96be8ae269
commit edf8ac03be

View File

@ -58,6 +58,11 @@ import signal
import socket
import subprocess
import sys
try:
import sysconfig
except ImportError:
# sysconfig doesn't exist in Python 2.6
sysconfig = None
import tempfile
import threading
import time
@ -818,6 +823,8 @@ class Test(unittest.TestCase):
offset = '' if i == 0 else '%s' % i
env["HGPORT%s" % offset] = '%s' % (self._startport + i)
env = os.environ.copy()
if sysconfig is not None:
env['PYTHONUSERBASE'] = sysconfig.get_config_var('userbase')
env['TESTTMP'] = self._testtmp
env['HOME'] = self._testtmp
# This number should match portneeded in _getport