forked from jupyterlab/jupyterlab
/
test_examples.py
54 lines (42 loc) · 1.38 KB
/
test_examples.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# -*- 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.
"""
import glob
import os.path as osp
import subprocess
import sys
here = osp.abspath(osp.dirname(__file__))
def header(path):
test_name = osp.basename(path)
print('\n'.join((
'\n',
'*' * 40,
'Starting %s test' % test_name,
'*' * 40
)), flush=True)
def main():
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)]
count = 0
for path in sorted(paths):
if osp.basename(path) == 'node':
header(path)
runner = osp.join(path, 'main.py')
subprocess.check_call([sys.executable, runner])
count += 1
continue
if not osp.exists(osp.join(path, 'main.py')):
continue
count += 1
header(path)
runner = osp.join(here, 'example_check.py')
subprocess.check_call([sys.executable, runner, path])
print('\n\n%s tests complete!' % count)
if __name__ == "__main__":
main()