123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- # -*- 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()
|