# HG changeset patch # User Gregory Szorc # Date 1398013022 25200 # Node ID a884548f5421727162eb08d263a35f2883f64033 # Parent 522e3d24a4616e33cf8bad2395195ba7107a91d1 run-tests: move more path calculations into TestRunner diff -r 522e3d24a461 -r a884548f5421 tests/run-tests.py --- a/tests/run-tests.py Sun Apr 20 09:54:28 2014 -0700 +++ b/tests/run-tests.py Sun Apr 20 09:57:02 2014 -0700 @@ -1019,6 +1019,34 @@ return self._run(tests) def _run(self, tests): + if self.options.with_hg: + self.inst = None + self.bindir = os.path.dirname(os.path.realpath( + self.options.with_hg)) + self.tmpbindir = os.path.join(self.hgtmp, 'install', 'bin') + os.makedirs(self.tmpbindir) + + # This looks redundant with how Python initializes sys.path from + # the location of the script being executed. Needed because the + # "hg" specified by --with-hg is not the only Python script + # executed in the test suite that needs to import 'mercurial' + # ... which means it's not really redundant at all. + self.pythondir = self.bindir + else: + self.inst = os.path.join(self.hgtmp, "install") + self.bindir = os.environ["BINDIR"] = os.path.join(self.inst, + "bin") + self.tmpbindir = self.bindir + self.pythondir = os.path.join(self.inst, "lib", "python") + + os.environ["BINDIR"] = self.bindir + os.environ["PYTHON"] = PYTHON + + path = [self.bindir] + os.environ["PATH"].split(os.pathsep) + if self.tmpbindir != self.bindir: + path = [self.tmpbindir] + path + os.environ["PATH"] = os.pathsep.join(path) + # Include TESTDIR in PYTHONPATH so that out-of-tree extensions # can run .../tests/run-tests.py test-foo where test-foo # adds an extension to HGRC. Also include run-test.py directory to @@ -1434,33 +1462,6 @@ tmpdir = tempfile.mkdtemp('', 'hgtests.', d) runner.hgtmp = os.environ['HGTMP'] = os.path.realpath(tmpdir) - if options.with_hg: - runner.inst = None - runner.bindir = os.path.dirname(os.path.realpath(options.with_hg)) - runner.tmpbindir = os.path.join(runner.hgtmp, 'install', 'bin') - os.makedirs(runner.tmpbindir) - - # This looks redundant with how Python initializes sys.path from - # the location of the script being executed. Needed because the - # "hg" specified by --with-hg is not the only Python script - # executed in the test suite that needs to import 'mercurial' - # ... which means it's not really redundant at all. - runner.pythondir = runner.bindir - else: - runner.inst = os.path.join(runner.hgtmp, "install") - runner.bindir = os.environ["BINDIR"] = os.path.join(runner.inst, - "bin") - runner.tmpbindir = runner.bindir - runner.pythondir = os.path.join(runner.inst, "lib", "python") - - os.environ["BINDIR"] = runner.bindir - os.environ["PYTHON"] = PYTHON - - path = [runner.bindir] + os.environ["PATH"].split(os.pathsep) - if runner.tmpbindir != runner.bindir: - path = [runner.tmpbindir] + path - os.environ["PATH"] = os.pathsep.join(path) - return runner.run(tests) if __name__ == '__main__':