2016-11-25 5 views
1

Ich habe eine Funktion mit einem Docstring, der wie folgt aussieht und ich möchte testen, dass der Docstring korrekt ist. Ich verwende derzeit das Doctest-Modul dazu. Ich kann jedoch keine Möglichkeit finden, neue Zeilenzeichen und Zeilenumbrüche im Docstring darzustellen, ohne dass es abstürzt. Hier ist ein Beispiel, das das Problem repliziert:Sonderzeichen und Zeilenumbrüche in Python Doctest

def foo(): 
    r""" 
    >>> foo() == ['1\n2\n',\ 
    '3'] 
    True 
    """ 
    return ['1\n2\n', '3'] 

import doctest 
doctest.testmod() 

Dies führt zu dem Fehler:

Failed example: 
foo() == ['1\n2\n',\ 
Exception raised: 
    Traceback (most recent call last): 
     File "C:\Python34\lib\doctest.py", line 1318, in __run 
     compileflags, 1), test.globs) 
     File "<doctest __main__.foo[0]>", line 1 
     foo() == ['1\n2\n',\ 
         ^
    SyntaxError: unexpected EOF while parsing 

Wie würde ich dies zu erreichen?

Antwort

0

Verwenden Auslassungs ...:

def foo(): 
    r""" 
    >>> foo() == ['1\n2\n', 
    ... '3'] 
    True 
    """ 
    return ['1\n2\n', '3'] 

import doctest 
doctest.testmod() 

(source)

Verwandte Themen