B
    u9a@                 @   s4   d dl Z d dlZd dlZe ZG dd de jZdS )    Nc               @   s,   e Zd Zdd ZefddZefddZdS )BytecodeTestCasec             C   s   t  }tj||d | S )N)file)ioStringIOdisgetvalue)selfcos r   %/usr/lib/python3.7/bytecode_helper.pyget_disassembly_as_string   s    z*BytecodeTestCase.get_disassembly_as_stringc             C   st   x2t |D ]$}|j|kr|tks,|j|kr|S qW | |}|tkrTd||f }nd}||||f }| | d S )Nz%s not found in bytecode:
%sz!(%s,%r) not found in bytecode:
%s)r   get_instructionsopname_UNSPECIFIEDargvalr   fail)r   xr   r   instrdisassemblymsgr   r   r   assertInBytecode   s    

z!BytecodeTestCase.assertInBytecodec             C   sh   xbt |D ]T}|j|kr| |}|tkr:d||f }n|j|krVd}||||f }| | qW d S )Nz%s occurs in bytecode:
%sz(%s,%r) occurs in bytecode:
%s)r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   assertNotInBytecode   s    


z$BytecodeTestCase.assertNotInBytecodeN)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   	   s   r   )Zunittestr   r   objectr   ZTestCaser   r   r   r   r   <module>   s   