Currently when a new notebook is added, one needs to either create a new test_x.py file that replicates a lot of the code in tests/test_notebooks.py, or add a new set of functions in test_notebooks (test_resources, _exec_notebook, test_new_notebook). I think it's possible to change the _exec_notebook and test_X functions so that for each new notebook we only need to add a new test_resources function, and then have a test_notebooks function that loops through each of these resources functions and calls _exec_notebook with the parameters in them.