@@ -77,6 +77,8 @@ def test_firstlineno():
77
77
78
78
79
79
def test_code_attributes ():
80
+ import sys
81
+
80
82
code = wrapper ().__code__
81
83
assert code .co_argcount == 3
82
84
assert code .co_kwonlyargcount == 0
@@ -85,7 +87,8 @@ def test_code_attributes():
85
87
assert code .co_flags & (1 << 5 )
86
88
assert not code .co_flags & (1 << 2 )
87
89
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 ()
89
92
# assert code.co_consts
90
93
# assert set(code.co_names) == {'set', 'TypeError', 'print'}
91
94
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():
133
136
assert code .co_lnotab == code2 .co_lnotab
134
137
assert set (code .co_freevars ) == set (code2 .co_freevars )
135
138
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