2015-02-25 12 views
0

Мне интересно, есть ли способ разделить вызовы функций на несколько строк для doctest. Например, что-то вродеDoctest: разделение docstring для вызова функции Python на несколько строк

>>> result = some_func(some_param=1, another_param=4, a_third_param='super_long_string') 

Я попытался

>>> result = some_func(some_param=1, another_param=4, 
    ...  a_third_param='super_long_string') 


>>> result = some_func(some_param=1, another_param=4, \ 
         a_third_param='super_long_string') 

Или

>>> result = some_func(#doctest: +NORMALIZE_WHITESPACE 
      some_param=1, 
      another_param=4, 
      a_third_param='super_long_string') 

Но и не будет работать. Любые идеи или советы?

Edit: Я бегу в doctests через nosetests -sv --with-doctest

ответ

2

Ваш второй пример очень близок к тому, что работает для меня. После того, как я поставил набор эллипсов, я добавлю пять пробелов.

Причина, по которой я добавляю пять пробелов, состоит в том, что первое пространство соответствует приглашению, а остальные четыре соответствуют уровню отступа.

Вот пример, который работает для меня с помощью python 2.7 и функции, которую вы предоставили.

def some_func(some_param, another_param, a_third_param): 
    """ 
    Does something at least some of the time. 

    Examples 
    -------- 

    >>> some_func(
    ...  some_param=1, 
    ...  another_param=4, 
    ...  a_third_param='super_long_string') 
    'Worked' 
    """ 
    return 'Worked' 

if __name__ == "__main__": 
    import doctest 
    doctest.testmod() 
+0

К сожалению, это была опечатка в моем примере выше. Я также попробовал 5 пробелов после '...' и все еще та же проблема 'имеет непоследовательные ведущие пробелы', но спасибо за помощь! – Sebastian

+0

Я предполагаю, что эта проблема специфична для команды 'nosetests -sv -with-doctest'. Я использую python 3.4.0 и нос 1.3.4 – Sebastian