When writing python doctests, how does one properly introduce newline characters within a string in the test? Here's a simple example:
def remove_newlines(text):
"""
>>> remove_newlines("line1 \n"
... "still line 1\r"
... "now line2 \n"
... "more line2\n")
line1 still line1
now line2 more line2
"""
return text.replace('\n', '')
import doctest
doctest.run_docstring_examples(remove_newlines, globals())
The output of which is:
Traceback (most recent call last):
...
ValueError: line 3 of the docstring for NoName has inconsistent leading whitespace: '"'
You need to escape the backslash.
The docstring is itself a string where \n
means newline. In
def foo():
"""
print "Hello world\n";
"""
pass
the docstring doesn't contain a valid Python statement but contains instead a newline inside the quoted string