steve at REMOVE-THIS-cybersource.com.au
Sun Sep 5 17:30:29 CEST 2010
I'm writing a "literate programming" document, example.txt, which mixes
text and code in ReST format:
This is my excellent module for making spam. It has
one public function, ``make_spam``, which takes a
single argument for how much spam to make:
>>> from module import make_spam
'spam spam spam'
If you ask for too little spam, you get a bonus:
'spam spam spam GLORIOUS SPAM!!!'
I run the doctests with:
python2.6 -m doctest examples.txt
and the first example passes, but the second fails with NameError:
make_spam not defined.
I have a work-around, I do an import at the start of *every* doctest
block, but that's ugly. More complex (realistic) examples sometimes need
setup code, which I'd like to survive from one block to the next:
>>> it = iter(make_spam(5).split())
text goes here
but of course that also fails. This surprises me, because doctests in
functions or classes can mix descriptive text between tests without this
Am I doing something wrong, or is doctest fundamentally broken when
executing tests in a text file?
More information about the Python-list