test harness attempt
emile at fenx.com
emile at fenx.com
Thu May 4 10:36:59 EDT 2000
Jon,
I made a few tweaks, and got what appears to be what you're trying
to do (see code below).
Your object.py module is known as main when it starts, which is why
you couldn't reference it as object.
HTH,
Emile van Sebille
emile at fenx.com
Jon Frechette <jonf at connix.com> wrote in message
news:<391185E7.6CD5BC93 at connix.com>...
> I am trying to figure out how to write a test harness for my class. I want pass a code string to a function that will print the string and then exec it. The function should be able to compare the
> value of the statement against an expected value. I've have managed to get it half-way working but I can't seem to do an assignment in an 'exec' statement. Is there any way to do this ? Any help would
> be greatly appreciated.
>
<sample snipped>
import sys
def nObjects():
return Object._nObjs
def _test():
print '\ntesting object'
_run( 'x = Object()' )
_run( 'y = Object()' )
_run( 'z = Object()' )
_run( 'nObjects()', 3 )
def _run( codeStr, test = None ):
if test == None:
print codeStr
exec codeStr in sys.modules[__name__].__dict__
else:
print codeStr,
exec '_x_ = ' + codeStr in sys.modules[__name__].__dict__
print '(expecting: ' + `test` + ' got: ' +
`sys.modules[__name__].__dict__["_x_"]` + ')'
class Object:
_nObjs = 0
def __init__( self ):
Object._nObjs = Object._nObjs + 1
if __name__ == "__main__":
_test()
More information about the Python-list
mailing list