12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # -*- coding: utf-8 -*-
- """
- This file is meant to be used to test all of the example here and and
- in ../packages/services/examples. We import each of the applications
- and add instrument them with a puppeteer test that makes sure
- there are no console errors or uncaught errors prior to a sentinel
- string being printed (see chrome-example-test.js for the sentinel strings
- checked before the browser.close() call).
- """
- import argparse
- import glob
- import os.path as osp
- import subprocess
- import sys
- import tempfile
- here = osp.abspath(osp.dirname(__file__))
- def header(path):
- test_name = osp.basename(path)
- print(
- "\n".join(("\n", "*" * 40, "Starting %s test in %s" % (test_name, path), "*" * 40)),
- flush=True,
- )
- def main():
- parser = argparse.ArgumentParser()
- parser.add_argument("--testPath", help="paths containing this string are tested")
- args = parser.parse_args()
- paths = [i for i in glob.glob("%s/*" % here) if osp.isdir(i)]
- services_dir = osp.abspath(osp.join(here, "../packages/services/examples"))
- paths += [i for i in glob.glob("%s/*" % services_dir)]
- if args.testPath:
- paths = [p for p in paths if args.testPath in p]
- print("Testing %s" % paths)
- count = 0
- for path in sorted(paths):
- if osp.basename(path) == "node":
- with tempfile.TemporaryDirectory() as cwd:
- header(path)
- runner = osp.join(path, "main.py")
- subprocess.check_call([sys.executable, runner], cwd=cwd)
- count += 1
- elif osp.exists(osp.join(path, "main.py")):
- with tempfile.TemporaryDirectory() as cwd:
- header(path)
- runner = osp.join(here, "example_check.py")
- subprocess.check_call([sys.executable, runner, path], cwd=cwd)
- count += 1
- print("\n\n%s tests complete!" % count)
- if __name__ == "__main__":
- main()
|