def test_newcode_withfilename(): |
source = py.code.Source(""" |
def f(): |
def g(): |
pass |
""") |
co = compile(str(source)+'\n', 'nada', 'exec') |
obj = 'hello' |
-> newco = py.code.Code(co).new(rec=True, co_filename=obj) |
def walkcode(co): |
for x in co.co_consts: |
if isinstance(x, type(co)): |
for y in walkcode(x): |
yield y |
yield co |
|
names = [] |
for code in walkcode(newco): |
assert newco.co_filename == obj |
assert newco.co_filename is obj |
names.append(code.co_name) |
assert 'f' in names |
assert 'g' in names |