Running DocTest on Strings

N

notanotheridiot

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
 
P

Paddy

notanotheridiot said:
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?

- Pad.
 
?

=?iso-8859-1?B?QW5kcuk=?=

Paddy said:
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é
 
N

notanotheridiot

André said:
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é

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top