a  zeH@s4ddlZddlZddlZeZGdddejZdS)Nc@s,eZdZddZefddZefddZdS)BytecodeTestCasecCst}tj||d|S)N)file)ioStringIOdisgetvalue)selfcosr P/opt/bitninja-python-dojo/embedded/lib/python3.9/test/support/bytecode_helper.pyget_disassembly_as_string sz*BytecodeTestCase.get_disassembly_as_stringcCstt|D](}|j|kr |tus*|j|kr |Sq ||}|turTd||f}nd}||||f}||dS)Nz%s not found in bytecode: %sz!(%s,%r) not found in bytecode: %s)rget_instructionsopname _UNSPECIFIEDargvalr failrxrrZinstrZ disassemblymsgr r r assertInBytecodes   z!BytecodeTestCase.assertInBytecodecCsdt|D]T}|j|kr ||}|tur8d||f}n|j|krTd}||||f}||q dS)Nz%s occurs in bytecode: %sz(%s,%r) occurs in bytecode: %s)rrrr rrrrr r r assertNotInBytecodes   z$BytecodeTestCase.assertNotInBytecodeN)__name__ __module__ __qualname__r rrrr r r r r s r)ZunittestrrobjectrZTestCaserr r r r s