Index: third_party/typ/run |
diff --git a/third_party/typ/run b/third_party/typ/run |
index 4c0e8097fc0135f86871ce54a9c557f757ba7efb..9bea31fbb4ba704cf9f277d3c1f082b7e351af59 100755 |
--- a/third_party/typ/run |
+++ b/third_party/typ/run |
@@ -10,8 +10,9 @@ |
from tools import cov |
+is_python3 = bool(sys.version_info.major == 3) |
+has_python34 = False |
verbose = False |
- |
repo_dir = os.path.abspath(os.path.dirname(__file__)) |
path_to_cov = os.path.join(repo_dir, 'tools', 'cov.py') |
path_to_runner = os.path.join(repo_dir, 'typ', 'runner.py') |
@@ -27,6 +28,8 @@ |
def main(argv): |
parser = argparse.ArgumentParser(prog='run') |
+ parser.add_argument('--no3', action='store_true', |
+ help='Do not run the tests under Python 3.') |
parser.add_argument('-v', '--verbose', action='store_true') |
subps = parser.add_subparsers() |
@@ -57,6 +60,13 @@ |
global verbose |
if args.verbose: |
verbose = True |
+ global has_python34 |
+ if not args.no3: |
+ try: |
+ ver = subprocess.check_output(['python3', '--version']) |
+ has_python34 = ver.split()[1] >= '3.4' |
+ except: |
+ pass |
args.func(args) |
@@ -71,8 +81,11 @@ |
args.source = [os.path.join(repo_dir, 'typ')] |
argv = cov.argv_from_args(args) |
cov_args = [path_to_runner, '-j', '1'] |
- python = sys.executable |
- call([python, path_to_cov] + argv + cov_args) |
+ print('Running coverage of unit tests for Python 2.7.') |
+ call(['python', path_to_cov] + argv + cov_args) |
+ if has_python34: |
+ print('Running coverage of unit tests for Python 3.4.') |
+ call(['python3', path_to_cov] + argv + cov_args) |
def run_help(args): |
@@ -86,17 +99,20 @@ |
def run_tests(args): |
- python = sys.executable |
- # Test running the typ module directly if it is in sys.path. |
- call([python, '-m', 'typ', 'typ.tests.main_test.TestMain.test_basic']) |
+ print('Testing running the typ module directly if it is in sys.path.') |
+ call(['python', '-m', 'typ', 'typ.tests.main_test.TestMain.test_basic']) |
- # Testing running the runner directly if nothing is in sys.path.' |
+ print('Testing running the runner directly if nothing is in sys.path.') |
home_dir = os.environ['HOME'] |
- call([python, path_to_runner, 'typ.tests.main_test.TestMain.test_basic'], |
+ call(['python', path_to_runner, 'typ.tests.main_test.TestMain.test_basic'], |
cwd=home_dir) |
- # Run the remaining tests. |
- call([python, path_to_runner]) |
+ # Now run all the tests under Python2 and Python3. |
+ print('Running the unit tests under Python 2.') |
+ call(['python', path_to_runner]) |
+ if has_python34: |
+ print('Running the unit tests under Python 3.4.') |
+ call(['python3', path_to_runner]) |
if __name__ == '__main__': |