code = """
def foo(b, c):
'''
pre:
b < c
'''
print 'foo'
a = 2
d = bar(a)
print d
return b+a+c+d
def bar(val):
print 'bar', val
return 42
def baz(b,c):
try:
return foo(b,c)
finally:
bar(3)
class Mumble:
def __init__(self, param):
self.p = param
def frobble(self, b):
return 3 * self.p + b
def __del__(self):
print 'Mumble goes poof'
def truc():
m = Mumble(2)
r = m.frobble(1)
print 'truc', r, 'expected 7'
return r
"""
import os, sys
import os.path as osp
def _make_filename(name):
dir = sys.path[0] # see setup_class()
if not name.endswith('.py'):
name += ".py"
return osp.join(dir, name)
def write_module(name):
f = open(_make_filename(name), 'w')
f.write(code)
f.close()