test harness attempt
Jon Frechette
jonf at connix.com
Thu May 4 10:55:02 EDT 2000
Wow
Thanks, I don't think I would have figured that out in million years.
emile at fenx.com wrote:
>
> 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