|
| 1 | +#!/usr/bin/env python3.4 |
| 2 | +""" |
| 3 | +Check all the tests work with python3.4 and gpython |
| 4 | +
|
| 5 | +Note that this isn't quite the same as running the unit tests - the |
| 6 | +unit tests should be preferred. This is a quick check to make sure |
| 7 | +the tests run with python3. |
| 8 | +""" |
| 9 | + |
| 10 | +import os |
| 11 | +import sys |
| 12 | +from subprocess import Popen, PIPE, STDOUT |
| 13 | + |
| 14 | +testwith = ("python3.4", "gpython") |
| 15 | + |
| 16 | +def runtests(dirpath, filenames): |
| 17 | + """Run the tests found""" |
| 18 | + print("Running tests in %s" % dirpath) |
| 19 | + for name in filenames: |
| 20 | + if not name.endswith(".py") or name.startswith("lib") or name.startswith("raise"): |
| 21 | + continue |
| 22 | + print("Testing %s" % name) |
| 23 | + fullpath = os.path.join(dirpath, name) |
| 24 | + for cmd in testwith: |
| 25 | + prog = [cmd, fullpath] |
| 26 | + p = Popen(prog, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True) |
| 27 | + stdout, stderr = p.communicate("") |
| 28 | + rc = p.returncode |
| 29 | + if rc != 0: |
| 30 | + print("*** %s %s Fail ***" % (cmd, fullpath)) |
| 31 | + print("="*60) |
| 32 | + sys.stdout.write(stdout.decode("utf-8")) |
| 33 | + print("="*60) |
| 34 | + |
| 35 | +def main(): |
| 36 | + binary = os.path.abspath(__file__) |
| 37 | + home = os.path.dirname(binary) |
| 38 | + os.chdir(home) |
| 39 | + print("Scanning %s for tests" % home) |
| 40 | + |
| 41 | + for dirpath, dirnames, filenames in os.walk("."): |
| 42 | + if os.path.basename(dirpath) == "tests": |
| 43 | + runtests(dirpath, filenames) |
| 44 | + |
| 45 | +if __name__ == "__main__": |
| 46 | + main() |
0 commit comments