run-tests: avoid set PYTHONUSERBASE environment variable to None stable
authorMihai Popescu <mihai@unity3d.com>
Mon, 08 Jan 2018 13:52:43 +0100
branchstable
changeset 35540 f948c5b3f5c9
parent 35539 d1aae6d4efc5
child 35541 87676e8ee056
run-tests: avoid set PYTHONUSERBASE environment variable to None According to python documentation, get_config_var can return None and it was during running mercurial tests under a virtual environment with the local built mercurial installed as a python package with `pip install -e .`. On the other hand, if mercurial is installed in the user library folders with `pip install --local -e .` the issue doesn't reproduce. The fallback is that it will just set an empty string and everything should work as before, according to https://www.python.org/dev/peps/pep-0370/: The path to the user base directory can be overwritten with the environment variable PYTHONUSERBASE. The default location is used when PYTHONUSERBASE is not set or empty.
tests/run-tests.py
--- a/tests/run-tests.py	Sun Jan 07 12:07:29 2018 +0900
+++ b/tests/run-tests.py	Mon Jan 08 13:52:43 2018 +0100
@@ -1021,7 +1021,7 @@
             offset = '' if i == 0 else '%s' % i
             env["HGPORT%s" % offset] = '%s' % (self._startport + i)
         env = os.environ.copy()
-        env['PYTHONUSERBASE'] = sysconfig.get_config_var('userbase')
+        env['PYTHONUSERBASE'] = sysconfig.get_config_var('userbase') or ''
         env['HGEMITWARNINGS'] = '1'
         env['TESTTMP'] = self._testtmp
         env['HOME'] = self._testtmp