I don't know why but it seems that google groups stripped the indentation from 
the code. I just wanted to ensure you that in the examples that I have run
the definition of myfunc contained correctly indented code!

On Monday, 23 September 2013 15:45:43 UTC+1, Luca Cerone  wrote:
> .. doctest:: example_fake
> 
> 
> 
>    >>> def myfun(x,verbose):
> 
>    ...    print "random output"
> 
>    ...    return x
> 
>    >>> myfun(10)
> 
>    10
> 
> 
> 
> When you run make doctest the test fails with this message:
> 
> 
> 
> File "tutorial.rst", line 11, in example_fake
> 
> Failed example:
> 
>     myfun(10)
> 
> Expected:
> 
>     10
> 
> Got:
> 
>     random output
> 
>     10
> 
> 
> 
> In this case (imagine that "random output" is really random, therefore I can 
> not easily filter it, if not ignoring several lines. This would be quite easy 
> if ellipsis and line continuation wouldn't have the same sequence of 
> characters, but unfortunately this is not the case.
> 
> 
> 
> The method you proposed still is not applicable, because I have no way to use 
> startswith() and endswith()...
> 
> 
> 
> The following code could do what I want if I could ignore the output...
> 
> 
> 
>    >>> def myfun(x,verbose):
> 
>    ...    print "random output"
> 
>    ...    return x
> 
>    >>> result = myfun(10) #should ignore the output here!
> 
>    >>> print result
> 
>    10
> 
> 
> 
> fails with this message:
> 
> 
> 
> File "tutorial.rst", line 11, in example_fake
> 
> Failed example:
> 
>     result = myfun(10)
> 
> Expected nothing
> 
> Got:
> 
>     random output
> 
> 
> 
> (line 11 contains: >>> result = myfun(10))
> 
> 
> 
> A SKIP directive is not feasible either:
> 
> 
> 
> .. doctest:: example_fake
> 
> 
> 
>    >>> def myfun(x):
> 
>    ...    print "random output"
> 
>    ...    return x
> 
>    >>> result = myfun(10) # doctest: +SKIP 
> 
>    >>> result
> 
>    10
> 
> 
> 
> fails with this error message:
> 
> File "tutorial.rst", line 12, in example_fake
> 
> Failed example:
> 
>     result
> 
> Exception raised:
> 
>     Traceback (most recent call last):
> 
>       File "/usr/lib/python2.7/doctest.py", line 1289, in __run
> 
>         compileflags, 1) in test.globs
> 
>       File "<doctest example_fake[2]>", line 1, in <module>
> 
>         result
> 
>     NameError: name 'result' is not defined
> 
> 
> 
> As you can see is not that I want something too weird, is just that sometimes 
> you can't control what the function display and ignoring the output is a 
> reasonable way to implement a doctest.
> 
> 
> 
> Hope these examples helped to understand better what my problem is.
> 
> 
> 
> Thanks all of you guys for the hints, suggestions and best practices :)

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to