[TIP] pytest and ipynb

Pete Forman petef4+usenet at gmail.com
Sat Jun 18 00:29:10 PDT 2016

Hans Fangohr <fangohr.hans at gmail.com> writes:

> Pete,
>> nbval provides a good way to test notebooks but my last questions
>> still stand. Is TDD fundamentally a bad fit for Jupyter or is just
>> that no-one has written a suitable implementation. If the latter then
>> I might step up to the mark.
> Ah, I had missed that you core question was how to (wether?) use TDD
> in Jupyter.
> I am certainly very interested in that question. I don’t think it is
> clear that TDD is generally a bad fit for Jupyter - I’d rather think
> nobody has explored this yet (or at least I haven’t heard about it),
> both from a workflow and a tools perspective.
> What is your anticipated model here? Write the tests in a normal
> python file, and develop in the notebook? Or have the tests in a
> different notebook? Or something else?

Either of your first two suggestions would work for me: test_foo.py or
test_foo.ipynb to test foo.ipynb. I've played a bit with pytest-ipynb
now and that does the latter. It can import Python modules and unit test

What is needed is to import another notebook as the system under test. I
have seen a length way of doing that and presume that it will either
find its way into IPython or a package on PyPI.

Because pytest-ipynb is using cells to hold its tests decorator based
pytest features such as parameterize and xfail won't work.

Pete Forman
(formerly on http://petef.22web.org/payg.html)

More information about the testing-in-python mailing list