2016-03-19 9 views
0

私のモジュールにdoctestsを書いています。私はdocstrings内の行を79文字以内に制限する

$ python -m doctest test_db.py 
Failed example: 
    cur.execute('select * from users').fetchall() 
Expected: 
    [('admin', 'Admin', 1, 'admin123'),  ('foo', 'bar', 2, 'foo123'),  ('john', 'doe', 3, 'john123')] 
Got: 
    [('admin', 'Admin', 1, 'admin123'), ('foo', 'bar', 2, 'foo123'), ('john', 'doe', 3, 'john123')] 
********************************************************************** 

参考に直面しています

関連するコード

def foo(): 
    """ 
    Populates the database with 'VALUES' 

    >>> import sqlite3 
    >>> con = sqlite3.connect('test.db') 
    >>> cur = con.cursor() 
    >>> cur.execute('select * from users').fetchall() 
    [('admin', 'Admin', 1, 'admin123'), \ 
    ('foo', 'bar', 2, 'foo123'), \ 
    ('john', 'doe', 3, 'john123')] 
    >>> 

    """ 

    try: 
     con = sqlite3.connect('test.db') 
     cursor = con.cursor() 
     cursor.executemany("INSERT INTO users VALUES (?, ?, ?, ?)", VALUES) 
     connection.commit() 
     connection.close() 
    except sqlite3.OperationalError as msg: 
     return msg 

問題は

私はこれらの中に見えたが、関連する何かを見つけることができませんでした

答えて

1

余分な空白を削除してください。

def foo(): 
    """ 
    Populates the database with 'VALUES' 

    >>> import sqlite3 
    >>> con = sqlite3.connect('test.db') 
    >>> cur = con.cursor() 
    >>> cur.execute('select * from users').fetchall() 
    [('admin', 'Admin', 1, 'admin123'), \ 
('foo', 'bar', 2, 'foo123'), \ 
('john', 'doe', 3, 'john123')] 
    >>> 

    """ 
+0

ドキュメントストリングの標準的な解釈は、この方法で先行する空白を無視することです。 doctestはそうしないと私はむしろ驚いています。 – Kevin

+0

合意はしていますが、目に見えるものはありませんか? –

+0

問題は、OPが文字列内の行継続文字を使用していることです。したがって、それらは新しい行とはみなされず、したがって空白の無知の規則に従わない。 –

関連する問題