Mercurial > hg
comparison tests/hghave.py @ 28582:cdbc25306696
run-tests: add --with-python3 to define a Python 3 interpreter
Currently, very few parts of Mercurial run under Python 3, notably the
test harness.
We want to write tests that run Python 3. For example, we want to
extend test-check-py3-compat.t to parse and load Python files.
However, we have a problem: finding appropriate files requires
running `hg files` and this requires Python 2 until `hg` works
with Python 3.
As a temporary workaround, we add --with-python3 to the test harness
to allow us to define the path to a Python 3 interpreter. This
interpreter is made available to the test environment via $PYTHON3 so
tests can run things with Python 3 while the test harness and `hg`
invocations continue to run from Python 2. To round out the feature,
a "py3exe" hghave check has been added.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Fri, 18 Mar 2016 16:17:56 -0700 |
parents | e13e0e189990 |
children | f29cab5c519c |
comparison
equal
deleted
inserted
replaced
28581:3c8f0a605504 | 28582:cdbc25306696 |
---|---|
441 | 441 |
442 @check("py3k", "running with Python 3.x") | 442 @check("py3k", "running with Python 3.x") |
443 def has_py3k(): | 443 def has_py3k(): |
444 return 3 == sys.version_info[0] | 444 return 3 == sys.version_info[0] |
445 | 445 |
446 @check("py3exe", "a Python 3.x interpreter is available") | |
447 def has_python3exe(): | |
448 return 'PYTHON3' in os.environ | |
449 | |
446 @check("pure", "running with pure Python code") | 450 @check("pure", "running with pure Python code") |
447 def has_pure(): | 451 def has_pure(): |
448 return any([ | 452 return any([ |
449 os.environ.get("HGMODULEPOLICY") == "py", | 453 os.environ.get("HGMODULEPOLICY") == "py", |
450 os.environ.get("HGTEST_RUN_TESTS_PURE") == "--pure", | 454 os.environ.get("HGTEST_RUN_TESTS_PURE") == "--pure", |