@@ -77,6 +77,8 @@ def test_firstlineno():
7777
7878
7979def test_code_attributes ():
80+ import sys
81+
8082 code = wrapper ().__code__
8183 assert code .co_argcount == 3
8284 assert code .co_kwonlyargcount == 0
@@ -85,7 +87,8 @@ def test_code_attributes():
8587 assert code .co_flags & (1 << 5 )
8688 assert not code .co_flags & (1 << 2 )
8789 assert not code .co_flags & (1 << 3 )
88- # assert code.co_code
90+ if sys .implementation .name == 'graalpython' :
91+ assert code .co_code .decode ().strip () == wrapper ().__truffle_source__ .strip ()
8992 # assert code.co_consts
9093 # assert set(code.co_names) == {'set', 'TypeError', 'print'}
9194 assert set (code .co_varnames ) == {'arg_l' , 'kwarg_case' , 'kwarg_other' , 'loc_1' , 'loc_3' , 'inner_func' }
@@ -133,3 +136,28 @@ def test_code_copy():
133136 assert code .co_lnotab == code2 .co_lnotab
134137 assert set (code .co_freevars ) == set (code2 .co_freevars )
135138 assert set (code .co_cellvars ) == set (code2 .co_cellvars )
139+
140+
141+ def test_module_code ():
142+ import sys
143+ m = __import__ ('package.moduleA' )
144+ with open (m .__file__ , 'r' ) as MODULE :
145+ source = MODULE .read ()
146+ code = compile (source , m .__file__ , 'exec' )
147+ assert code .co_argcount == 0
148+ assert code .co_kwonlyargcount == 0
149+ assert code .co_nlocals == 0
150+ # assert code.co_stacksize == 0
151+ # assert code.co_flags == 0
152+ if sys .implementation .name == 'graalpython' :
153+ assert code .co_code .decode ().strip () == source .strip ()
154+ # assert code.co_consts == tuple()
155+ # assert set(code.co_names) == set()
156+ assert set (code .co_varnames ) == set ()
157+ assert code .co_filename .endswith ("__init__.py" )
158+ assert code .co_name .startswith ("<module" )
159+ if sys .implementation .name == 'graalpython' :
160+ assert code .co_firstlineno == 1
161+ # assert code.co_lnotab == b''
162+ assert code .co_freevars == tuple ()
163+ assert code .co_cellvars == tuple ()
0 commit comments