|
63 | 63 | " save=False): # write outputs back to notebook on success?\n", |
64 | 64 | " \"Execute tests in notebook in `fn` except those with `skip_flags`\"\n", |
65 | 65 | " faulthandler.register(signal.SIGINT, file=sys.__stderr__, all_threads=True, chain=True)\n", |
| 66 | + " fn = Path(fn)\n", |
66 | 67 | " if basepath: sys.path.insert(0, str(basepath))\n", |
67 | | - " if not IN_NOTEBOOK: os.environ[\"IN_TEST\"] = '1'\n", |
68 | | - " flags=set(L(skip_flags)) - set(L(force_flags))\n", |
69 | | - " nb = NBProcessor(fn, rm_directives=False, process=True).nb\n", |
70 | | - " fm = nb_frontmatter(nb)\n", |
71 | | - " if str2bool(fm.get('skip_exec', False)) or nb_lang(nb) != 'python': return True, 0\n", |
72 | | - "\n", |
73 | | - " def _no_eval(cell):\n", |
74 | | - " if cell.cell_type != 'code': return True\n", |
75 | | - " if 'nbdev_export'+'(' in cell.source: return True\n", |
76 | | - " direc = getattr(cell, 'directives_', {}) or {}\n", |
77 | | - " if direc.get('eval:', [''])[0].lower() == 'false': return True\n", |
78 | | - " return flags & direc.keys()\n", |
79 | | - " \n", |
80 | | - " start = time.time()\n", |
81 | | - " k = CaptureShell(fn)\n", |
82 | | - " if do_print: print(f'Starting {fn}')\n", |
| 68 | + " prev_test = os.environ.get('IN_TEST')\n", |
| 69 | + " if not IN_NOTEBOOK: os.environ['IN_TEST'] = '1'\n", |
83 | 70 | " try:\n", |
84 | | - " with working_directory(fn.parent):\n", |
85 | | - " k.run_all(nb, exc_stop=True, preproc=_no_eval, verbose=verbose)\n", |
86 | | - " if save: write_nb(nb, fn)\n", |
87 | | - " res = True\n", |
88 | | - " except: \n", |
89 | | - " if showerr: sys.stderr.write(k.prettytb(fname=fn)+'\\n')\n", |
90 | | - " res=False\n", |
91 | | - " if do_print: print(f'- Completed {fn}')\n", |
92 | | - " return res,time.time()-start" |
| 71 | + " flags=set(L(skip_flags)) - set(L(force_flags))\n", |
| 72 | + " nb = NBProcessor(fn, rm_directives=False, process=True).nb\n", |
| 73 | + " fm = nb_frontmatter(nb)\n", |
| 74 | + " if str2bool(fm.get('skip_exec', False)) or nb_lang(nb) != 'python': return True, 0\n", |
| 75 | + "\n", |
| 76 | + " def _no_eval(cell):\n", |
| 77 | + " if cell.cell_type != 'code': return True\n", |
| 78 | + " if 'nbdev_export'+'(' in cell.source: return True\n", |
| 79 | + " direc = getattr(cell, 'directives_', {}) or {}\n", |
| 80 | + " if direc.get('eval:', [''])[0].lower() == 'false': return True\n", |
| 81 | + " return flags & direc.keys()\n", |
| 82 | + "\n", |
| 83 | + " start = time.time()\n", |
| 84 | + " k = CaptureShell(fn)\n", |
| 85 | + " if do_print: print(f'Starting {fn}')\n", |
| 86 | + " try:\n", |
| 87 | + " with working_directory(fn.parent):\n", |
| 88 | + " k.run_all(nb, exc_stop=True, preproc=_no_eval, verbose=verbose)\n", |
| 89 | + " if save: write_nb(nb, fn)\n", |
| 90 | + " res = True\n", |
| 91 | + " except: \n", |
| 92 | + " if showerr: sys.stderr.write(k.prettytb(fname=fn)+'\\n')\n", |
| 93 | + " res=False\n", |
| 94 | + " if do_print: print(f'- Completed {fn}')\n", |
| 95 | + " return res,time.time()-start\n", |
| 96 | + " finally:\n", |
| 97 | + " if prev_test is None: os.environ.pop('IN_TEST', None)\n", |
| 98 | + " else: os.environ['IN_TEST'] = prev_test\n" |
93 | 99 | ] |
94 | 100 | }, |
95 | 101 | { |
|
0 commit comments