In Python (3.3.2) doctest, ellipsis (...
) can match any string. So, for the code below
def foo():
"""
>>> foo()
hello ...
"""
print("hello world")
when running doctest it shouldn't raise any error. But
$ python -m doctest foo.py
**********************************************************************
File "./foo.py", line 3, in foo.foo
Failed example:
foo()
Expected:
hello ...
Got:
hello world
**********************************************************************
1 items had failures:
1 of 1 in foo.foo
***Test Failed*** 1 failures.
What I must do to enable the ellipis? As far as I can tell it is disable by default.
I know that add # doctest: +ELLIPSIS
, as in the code below, solve it, but I like to enable ellipsis for all tests.
def foo():
"""
>>> foo() # doctest: +ELLIPSIS
hello ...
"""
print("hello world")
You can pass in optionflags
to the testmod
method, but this requires you to run the module itself instead of the doctest
module:
def foo():
"""
>>> foo()
hello ...
"""
print("hello world")
if __name__ == "__main__":
import doctest
doctest.testmod(verbose=True, optionflags=doctest.ELLIPSIS)
Output:
$ python foo.py
Trying:
foo()
Expecting:
hello ...
ok
1 items had no tests:
__main__
1 items passed all tests:
1 tests in __main__.foo
1 tests in 2 items.
1 passed and 0 failed.
Test passed.