Stefan Behnel wrote:
> Dag Sverre Seljebotn wrote:
>
>> I now have code sitting on my drive for a doctesthack directive. What it
>> does is work around the limitations of the doctest module by
>> automatically creating a global __test__ dictionary mapping descriptive
>> names to function and method docstrings.
>>
>> 1) Can I push it?
>> 2) Can I make it the default? It never does anything if a __test__
>> already exists, so it should be fully backwards compatible. The only
>> downside I can see is a little bit of extra memory used.
>>
>> Line numbers are embedded into the test names (the keys in __dict__).
>>
>> Note: This does not solve the problem of doctest being unable to print
>> line numbers for class docstrings. Also the test procedure ends up
>> flowing a little bit different from the Python module (as each function
>> is a seperate testcase, and not simply part of the module test). As the
>> name says, it is a hack.
>>
>
> Now that I know what kind of problems this does *not* fix and what new
> problems it introduces, what about some more detail what kind of problem
> this actually fixes?
>
What it fixes is that I can take a simple pyx file like this:
def func(x):
"""
>>> func(3)
"""
...
and then test it like I would a Python module:
python -c 'import doctest; import mymod; doctest.testmod(mymod)'
doctest does not pick up the function docstring automatically as it
reports negative to inspect.isfunction, however putting those functions
in the __test__ dict works around it.
Arguments in favor:
- Lowers the barrier. It is the kind of thing which took me by surprise
when I first met it; letting this be the default could save half an hour
for every new Cython user.
- This also allows very easily writing function-wise doctests in the
Cython test suite
An approach which requires a custom script for doctesting Cython files
is here:
http://wiki.cython.org/FAQ#HowcanIrundoctestsinCythoncode.28pyxfiles.29.3F
But I happen to like this approach better as it lower the barriers and
makes peoples test scripts simpler without Cython-specific logic.
Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev