I have a Python3 function that returns a multi-line string. I want to test it with doctest, but can't get it to work. I've tried using the +NORMALIZE_WHITESPACE
directive without success.
def dummy():
"""Dummy test function
>>> dummy() # doctest: +NORMALIZE_WHITESPACE
'''Hello Mum
Hello Dad'''
"""
return """Hello Mum
Hello Dad"""
if __name__ == "__main__":
import doctest
doctest.testmod()
The above code fails with this error:
File "c:/foo.py", line 5, in __main__.dummy
Failed example:
dummy() # doctest: +NORMALIZE_WHITESPACE
Expected:
'''Hello Mum
Hello Dad'''
Got:
'Hello Mum\n Hello Dad'
I have tried changing the doctest line to include a literal \n
as follows:
>>> dummy() # doctest: +NORMALIZE_WHITESPACE
'Hello Mum\n Hello Dad'
But this fails with an almost identical error:
Failed example:
dummy() # doctest: +NORMALIZE_WHITESPACE
Expected:
'Hello Mum
Hello Dad'
Got:
'Hello Mum\n Hello Dad'
How can I test a multi-line string output with doctest?