from test
.test_support
import verify
, verbose
, TestFailed
, run_unittest
# Minimal tests for dis module
"""%(_f
.func_code
.co_firstlineno
+ 1,
_f
.func_code
.co_firstlineno
+ 2)
%-4d 0 SETUP_LOOP 23 (to 26)
>> 26 LOAD_CONST 0 (None)
"""%(bug708901
.func_code
.co_firstlineno
+ 1,
bug708901
.func_code
.co_firstlineno
+ 2,
bug708901
.func_code
.co_firstlineno
+ 3)
class DisTests(unittest
.TestCase
):
def do_disassembly_test(self
, func
, expected
):
# Trim trailing blanks (if any).
lines
= [line
.rstrip() for line
in lines
]
expected
= expected
.split("\n")
"events did not match expectation:\n" +
"\n".join(difflib
.ndiff(expected
,
self
.assertEqual(dis
.opmap
["STOP_CODE"], 0)
self
.assertEqual(dis
.opmap
["LOAD_CONST"] in dis
.hasconst
, True)
self
.assertEqual(dis
.opmap
["STORE_NAME"] in dis
.hasname
, True)
self
.assertEqual(dis
.opname
[dis
.opmap
["LOAD_FAST"]], "LOAD_FAST")
def test_boundaries(self
):
self
.assertEqual(dis
.opmap
["EXTENDED_ARG"], dis
.EXTENDED_ARG
)
self
.assertEqual(dis
.opmap
["STORE_NAME"], dis
.HAVE_ARGUMENT
)
self
.do_disassembly_test(_f
, dis_f
)
def test_bug_708901(self
):
self
.do_disassembly_test(bug708901
, dis_bug708901
)
if __name__
== "__main__":