Can python doctest ignore some output lines?

doctest, python

Solution

With `doctest.ELLIPSIS`, you can use `...` to mean "match any string here". You can set `doctest` options with a doctest directive, to make it active for just one test case: one example in the online docs is:

>>> print range(20) # doctest:+ELLIPSIS
[0, 1, ..., 18, 19]

If you want a doctest option to be active throughout, you can pass it as the `optionflags=` argument to whatever doctest functions you use, e.g. `doctest.testfile`. (You can pass multiple option flags there by using the `|` operator to bit-or them).

Problem

I'd like to write a doctest like this: ``` """ >>> print a.string() foo : a bar : b date : <I don't care about the date output> baz : c """ ``` Is there any way to do this? I think it would make more sense to switch to unittest, but I'm curious whether it's possible to specify a range of output that shouldn't be matched for the test in doctest. Thanks!

Original source

Related problems