Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_pep352.cpython-34.pyc

�
g f��@s�ddlZddlZddlZddlZddlmZGdd�dej�ZGdd�dej�Z	e
dkr�ej�ndS)�N)�systemc@speZdZdZdd�Zdd�Zdd�ZdZdd
�Zdd�Z	dd�Z
dd�ZdS)�ExceptionClassTestsz]Tests for anything relating to exception objects themselves (e.g.,
    inheritance hierarchy)cCs|jttt��dS)N)�
assertTrue�
issubclass�	Exception�object)�self�r	�5/opt/alt/python34/lib64/python3.4/test/test_pep352.py�test_builtins_new_style
sz+ExceptionClassTests.test_builtins_new_stylecCs>x7dD]/}|jt||�d|jj|f�qWdS)N�args�__str__�__repr__z%s missing %s attribute)zargsz__str__z__repr__)r�hasattr�	__class__�__name__)rZins�attrr	r	r
�verify_instance_interfaces
z-ExceptionClassTests.verify_instance_interfacec"Cs+t�}xRtjj�D]A}y&t|t�rD|j|j�nWqtk
rYYqXqWt	t
jjt
jj
t�dd��}zs|j�j�}ytt|�}Wn#tk
r�|jd|�YnX|j||d|�|j|�g}d}x�|D]�}|j�}|jd�}	||	dd�}
d|
kr�|
jd�}|
|dd
�}|
d|d�}
t�|kr�|j|
�qq�nd	|
kr�|
jd	�}
|
d|
d�}
nytt|
�}Wn#tk
r|jd
|
�YnX||	kr8|j||f�n4||	krlx%|dd|	krh|j�qGWn|jt||dd�d|j|ddjf�y|j|��Wntk
r�YnX|j|
|�|j|
�|}|	}qWWd|j�X|jt|�dd|�dS)Nrzexception_hierarchy.txtzbase class %s not a built-inz%s not found�-��(��[z%s not a built-in exceptionz%s is not a subclass of %sz%s not accounted for���rrr) �set�builtins�__dict__�valuesr�
BaseException�addr�	TypeError�open�os�path�join�split�__file__�readline�rstrip�getattr�AttributeError�failZassertIn�discard�rindex�index�platform_system�append�poprr�close�assertEqual�len)rZexc_set�object_Zinheritance_treeZsuperclass_name�last_excZsuperclassesZ
last_depthZexc_lineZdepthZexc_nameZparen_indexZ
platform_nameZleft_bracket�excr	r	r
�test_inheritancesp	
	



	
	

z$ExceptionClassTests.test_inheritance�lengthr�str�reprcCsMxFt|j|�D]2\}\}}|j||d|||f�qWdS)Nz%s: %s != %s)�zip�interface_testsr3)r�resultsZ	test_nameZgivenZexpectedr	r	r
�interface_test_driverUs%z)ExceptionClassTests.interface_test_drivercCs�d}t|�}t|j�dg|jd|gt|�t|�gt|�|jjt|j�gf}|j|�dS)N�spamrr)rr4rr:r;rrr?)r�argr7r>r	r	r
�test_interface_single_argZs"(z-ExceptionClassTests.test_interface_single_argcCs�d}tt|��}t|�}t|j�|g|j|gt|�t|�gt|�|jjt|j�gf}|j	|�dS)N�)
�tuple�rangerr4rr:r;rrr?)rZ	arg_countrr7r>r	r	r
�test_interface_multi_argcs(z,ExceptionClassTests.test_interface_multi_argcCsit�}t|j�dg|jt�gt|�dgt|�|jjdgf}|j|�dS)Nr�z())	rr4rrDr:r;rrr?)rr7r>r	r	r
�test_interface_no_argms
	!z)ExceptionClassTests.test_interface_no_argN)r9zargszstrzrepr)r�
__module__�__qualname__�__doc__rrr8r=r?rBrFrHr	r	r	r
rs=	
rc@sjeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�
UsageTestszTest usage of exceptionscCs>y
|�Wntk
r"dSYnX|jdt|��dS)z6Make sure that raising 'object_' triggers a TypeError.Nz!TypeError expected for raising %s)r r+�type)rr5r	r	r
�raise_failsys


	zUsageTests.raise_failscCs�y#y
t�Wn|k
r!YnXWn:tk
r7Yn)tk
r_|jdt|��YnXy&y
t�Wn|fk
r�YnXWn>tk
r�dSYn)tk
r�|jdt|��YnXdS)z,Catching 'object_' should raise a TypeError.z#TypeError expected when catching %sNz;TypeError expected when catching %s as specified in a tuple)rr r+rM)rr5r	r	r
�catch_fails�s&

	


	

	zUsageTests.catch_failscCs7Gdd�dt�}|j|�|j|��dS)Nc@seZdZdS)zDUsageTests.test_raise_new_style_non_exception.<locals>.NewStyleClassN)rrIrJr	r	r	r
�
NewStyleClass�srP)rrN)rrPr	r	r
�"test_raise_new_style_non_exception�s
z-UsageTests.test_raise_new_style_non_exceptioncCs|jd�dS)Nr@)rN)rr	r	r
�test_raise_string�szUsageTests.test_raise_stringcCs7Gdd�dt�}|j|�|j|��dS)Nc@seZdZdS)zAUsageTests.test_catch_non_BaseException.<locals>.NonBaseExceptionN)rrIrJr	r	r	r
�NonBaseException�srS)rrO)rrSr	r	r
�test_catch_non_BaseException�s
z'UsageTests.test_catch_non_BaseExceptioncCs|jt��dS)N)rOr)rr	r	r
�!test_catch_BaseException_instance�sz,UsageTests.test_catch_BaseException_instancecCs|jd�dS)Nr@)rO)rr	r	r
�test_catch_string�szUsageTests.test_catch_stringN)rrIrJrKrNrOrQrRrTrUrVr	r	r	r
rLus
rL�__main__)Zunittestr�warningsr"�platformrr/ZTestCaserrLr�mainr	r	r	r
�<module>smB