diff -r 43ca24b772d6 -r fcdff048a8e5 tests/run-tests.py --- a/tests/run-tests.py Tue Dec 11 17:13:17 2018 +0100 +++ b/tests/run-tests.py Thu Dec 13 00:18:47 2018 -0500 @@ -3019,7 +3019,7 @@ # least on Windows for now, deal with .pydistutils.cfg bugs # when they happen. nohome = b'' - cmd = (b'%(exe)s setup.py %(pure)s clean --all' + cmd = (b'"%(exe)s" setup.py %(pure)s clean --all' b' build %(compiler)s --build-base="%(base)s"' b' install --force --prefix="%(prefix)s"' b' --install-lib="%(libdir)s"' @@ -3042,7 +3042,7 @@ makedirs(self._bindir) vlog("# Running", cmd) - if os.system(_strpath(cmd)) == 0: + if subprocess.call(_strpath(cmd), shell=True) == 0: if not self.options.verbose: try: os.remove(installerrs) @@ -3121,15 +3121,15 @@ if self._hgpath is not None: return self._hgpath - cmd = b'%s -c "import mercurial; print (mercurial.__path__[0])"' + cmd = b'"%s" -c "import mercurial; print (mercurial.__path__[0])"' cmd = cmd % PYTHON if PYTHON3: cmd = _strpath(cmd) - pipe = os.popen(cmd) - try: - self._hgpath = _bytespath(pipe.read().strip()) - finally: - pipe.close() + + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) + out, err = p.communicate() + + self._hgpath = out.strip() return self._hgpath