[Python-Dev] Unittest/doctest formatting differences in 2.7a1? (original) (raw)
Olemis Lang olemis at gmail.com
Wed Dec 9 19:40:29 CET 2009
- Previous message: [Python-Dev] Unittest/doctest formatting differences in 2.7a1?
- Next message: [Python-Dev] Unittest/doctest formatting differences in 2.7a1?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Dec 9, 2009 at 12:45 PM, Ian Bicking <ianb at colorstudy.com> wrote:
On Wed, Dec 9, 2009 at 11:23 AM, Lennart Regebro <lregebro at jarn.com> wrote:
> Evolving the tests to avoid depending on these sorts of implementation > details is reasonable, IMO, and cuold even be considered a bugfix by > the Zope community. Evolving doctest.py so it can handle this by itself would be considered a bugfix by me. :) It's about time doctest got another run of development anyway.
+1 ... that's why I implemented dutest
BTW (I wanted more out of doctest ;o)
I can imagine a couple features that might help:
* Already in there, but sometimes hard to enable, is ellipsis. Can you already do this? >>> throwanexception() Traceback (most recent call last): ... DesiredException: ...
Probably useful ... unless /me want to match something inside the error message (which seems very hard to specify if error messages change from time to time )
I'd like to see doctests be able to enable the ELLIPSIS option internally and globally (currently it can only be enabled outside the doctest, or for a single line).
Depending on what you mean when you mention «internally and globally»
, you could do such kinds of things with dutest
too
* Another option might be something version-specific, like: >>> throwanexception() # +python<2.7_ _... old exception ..._ _>>> throwanexception() # +python>=2.7 ... new exception ...
You mean skip LOCs if python version is not «compatible» with the one specified in the doctests (e.g. # +python>=2.7) ?
Maybe for instance "# pyversion(less=2.7)" [...]
Or, maybe checkers could be extended so they could actually suppress the execution of code (avoiding throwanexception() from being called twice).
Ah ! Just what I thought !
IMO that choice should be made explicit in the test code but once again doctest does not support something like
{{{
_if sys.versioninfo[:3] <= (2, 7) :_ ... throw_an_exception() ... else : ... throw_an_exception() # +python>=2.7 ... }}}
I'd definitely prefer something like that or like what you've mentioned before (i.e. # +python<2.7) but the idea needs to be refined ;o)
To be more explicit, the main limitation is that you cannot make assertions for individual statements inside blocks (e.g. if, for , ...) mainly because that's not how interactive sessions look like
;o)
* Maybe slightly more general, would be the ability to extend OutputCheckers more easily than currently.
You can definitely play with these kind of things (e.g. change
OutputCheckers at runtime ;o) by using dutest
;o)
* Or, something more explicit than ELLIPSIS but able also be more flexible than currently possible, like: >>> throwanexception() Traceback (most recent call last): ... DesiredException: [[2.6 error message | 2.7 error message]]
IMO, this would be limited to be used only with tracebacks, and ellipsis are more general than that (match against anything) My preferences above.
PS: Sorry for the commercials . I'm just mentioning that there's something out there that enhances doctest to support some features you mentioned , that was proposed some time ago to be included in stdlib [3]_ and (at least in theory) is waiting for assessment &| approval . That time the main stopper was its recent release [1]_ , now it has about (184 + 60 + 117 = 361 downloads from PyPI ;o) [2]_ ...
.. [3] [Python-Dev] An OO API for doctest / unittest integration... (http://mail.python.org/pipermail/python-dev/2008-August/081761.html)
.. [1] [Python-Dev] An OO API for doctest / unittest integration... (http://mail.python.org/pipermail/python-dev/2008-August/081762.html)
.. [2] Download dutest @ PyPI (http://pypi.python.org/pypi/dutest)
-- Regards,
Olemis.
Blog ES: http://simelo-es.blogspot.com/ Blog EN: http://simelo-en.blogspot.com/
Featured article:
Depurando errores en aplicaciones web CGI con Python -
http://feedproxy.google.com/r/simelo-es/3/xxyDHHH1YZ8/depurando-errores-en-aplicaciones-web.html
- Previous message: [Python-Dev] Unittest/doctest formatting differences in 2.7a1?
- Next message: [Python-Dev] Unittest/doctest formatting differences in 2.7a1?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]