Running DocTest on Strings

notanotheridiot johannes.wollard at gmail.com
Fri Jun 30 03:04:07 EDT 2006


André wrote:
> Paddy wrote:
> > notanotheridiot wrote:
> > > Hi,
> > > I have two strings - a docstring containing doctests and a code string
> > > containing code to be tested with those doctests. I've been trying for
> > > a day now to run the test without concatenating the two strings,
> > > adding:
> > >
> > > import doctest
> > > doctest.testmod
> > >
> > > to the bottom, writing it all to a file and executing it using popen().
> > >
> > > There must be some way of doing this without writing to a temporary
> > > file, any ideas?
> > >
> > > thanks in advance,
> > >
> > > johannes Woolard
> > Create the concatenated string then exec it?
>
> I know from experience that this approach does not work.  When you do
> that, the entire module from which it is run turns out to be scanned
> for doctests - not only the string being executed by exec.  However, I
> understand that Johannes found a solution.
>
> André
>
> >
> > - Pad.

Got it, I've blogged about it here:
http://pytute.blogspot.com/2006/06/say-no-to-temporary-files.html
Basically the trick is to pass the docstring ino the exec environment
as a variable and use the advanced doctest api to get a doctest.

Johannes




More information about the Python-list mailing list