Revision 138cd0ccaea183c3b4c17c6bbeafbdf148521170 authored by James Hensman on 08 June 2017, 09:58:17 UTC, committed by James Hensman on 08 June 2017, 09:58:17 UTC
1 parent 0b3ce9b
Raw File
from __future__ import print_function
import nbformat
from nbconvert.preprocessors import ExecutePreprocessor
from nbconvert.preprocessors.execute import CellExecutionError
import glob
import traceback
import unittest
import sys
import time
import os

class TestNotebooks(unittest.TestCase):
    def _execNotebook(self, ep, notebook_filename, nbpath):
        with open(notebook_filename) as f:
            nb =, as_version=nbformat.current_nbformat)
                out = ep.preprocess(nb, {'metadata': {'path': nbpath}})
            except CellExecutionError:
                print('-' * 60)
                print('-' * 60)
                self.assertTrue(False, 'Error executing the notebook %s. See above for error.' % notebook_filename)

    def test_all_notebooks(self):
        ''' Test all notebooks except blacklist. Blacklisted notebooks take too long.'''
        blacklist = ['svi_test.ipynb']
        pythonkernel = 'python'+str(sys.version_info[0])
        nbpath = '../doc/source/notebooks/'
        # see
        ep = ExecutePreprocessor(timeout=120, kernel_name=pythonkernel, interrupt_on_timeout=True)
        lfiles = glob.glob(nbpath+"*.ipynb")
        for notebook_filename in lfiles:
            if(os.path.basename(notebook_filename) not in blacklist):
                t = time.time()
                self._execNotebook(ep, notebook_filename, nbpath)
                print(notebook_filename, 'took %g seconds.' % (time.time()-t))

if __name__ == '__main__':
back to top