HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/__pycache__/test_decorators.cpython-311.opt-1.pyc
�

��Vck<����ddlmZddlZddlmZd�ZGd�de��ZGd�de��Z	dd	�Z
d
�Zd�ZGd�d
ej
��ZGd�dej
��Zedkrej��dSdS)�)�supportN)�
MethodTypec����fd�}|S)Nc�<��|j����|S�N)�__dict__�update)�func�kwdss ��(D:\Python311\Lib\test\test_decorators.py�decoratezfuncattrs.<locals>.decorates����
���T�"�"�"����)rr
s` r�	funcattrsrs#���������Orc�$�eZdZed���ZdS)�MiscDecoratorsc����fd�}|S)Nc����|jd<|S)N�author)r)r
�names �rr
z'MiscDecorators.author.<locals>.decorates���&*�D�M�(�#��Krr)rr
s` rrzMiscDecorators.authors#���	�	�	�	�	��rN)�__name__�
__module__�__qualname__�staticmethodrrrrrrs-����������\���rrc��eZdZd�ZdS)�DbcheckErrorc�V�t�|d|�d|�d|�d|�d�	��dS)Nzdbcheck z failed (func=z args=z kwds=�))�	Exception�__init__)�self�exprstrr
�argsrs     rr zDbcheckError.__init__sF�����4�4�#�G�G�T�T�T�4�4�4����"7�	8�	8�	8�	8�	8rN)rrrr rrrrrs#������8�8�8�8�8rrc��������fd�}|S)z+Decorator to implement debugging assertionsc�P����t�d�jzd��������fd�}|S)Nz
dbcheck-%s�evalc�Z��t�����st��||����|i|��Sr)r&r)r#r�exprr"r
�globals�localss  �����r�checkz(dbcheck.<locals>.decorate.<locals>.check s@�����g�v�.�.�
>�"�7�D�$��=�=�=��4��&��&�&�&r)�compiler)r
r+r(r"r)r*s` @���rr
zdbcheck.<locals>.decoratesQ������w��t�}� <�f�E�E��	'�	'�	'�	'�	'�	'�	'�	'�	'��rr)r"r)r*r
s``` r�dbcheckr-s/�������������Orc����fd�}|S)z&Decorator to count calls to a functionc�@�����j�d��<���fd�}�|_|S)Nrc�4����xxdz
cc<�|i|��S)N�r)r#r�countsr
�	func_names  ���r�callz*countcalls.<locals>.decorate.<locals>.call.s4����9�����"�����4��&��&�&�&r�r)r
r4r3r2s` @�rr
zcountcalls.<locals>.decorate+sG������M�	���y��	'�	'�	'�	'�	'�	'�	'�"��
��rr)r2r
s` r�
countcallsr6)s#���������Orc�2���i���fd�}�j|_|S)Nc�n��	�|S#t$r�|�}|�|<|cYSt$r�|�cYSwxYwr)�KeyError�	TypeError)r#�resr
�saveds  ��rr4zmemoize.<locals>.call9sn���	���;����	�	�	��$��+�C��E�$�K��J�J�J��	�	�	��4��;����	���s��4�4�4r5)r
r4r<s` @r�memoizer=7s7�����E�	�	�	�	�	�	��M�D�M��Krc�n�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�TestDecoratorsc���Gd�dt��}|�|���d��|�|�����d��dS)Nc�$�eZdZed���ZdS)�%TestDecorators.test_single.<locals>.Cc��dS�N�*rrrr�fooz)TestDecorators.test_single.<locals>.C.fooLs�� �brN)rrrrrFrrr�CrBKs#������
� � ��\� � � rrGrE)�object�assertEqualrF�r!rGs  r�test_singlezTestDecorators.test_singleJsv��	!�	!�	!�	!�	!��	!�	!�	!�	
��������"�%�%�%������������B�'�'�'�'�'rc�h�d�}||��}|�|j|��|�|j|��dD]4}|�t||��t||�����5|�t|��|�|����|S)Nc��|Srr��xs rr
z0TestDecorators.check_wrapper_attrs.<locals>.funcRs���Hr)rrr�__doc__�__annotations__)�assertIs�__func__�__wrapped__�getattrrI�repr�format)r!�method_wrapper�
format_strr
�wrapper�attrs      r�check_wrapper_attrsz"TestDecorators.check_wrapper_attrsQs���	�	�	� �.��&�&���
�
�g�&��-�-�-��
�
�g�)�4�0�0�0�3�	/�	/�D��M�M�'�'�4�0�0�!�$��-�-�
/�
/�
/�
/�	
����g���
�(9�(9�$�(?�(?�@�@�@��rc�z�|�td��}|�|d��d��dS)Nz<staticmethod({!r})>r1)r\rrI�r!rZs  r�test_staticmethodz TestDecorators.test_staticmethodas>���*�*�<�9O�P�P��	
��������Q�'�'�'�'�'rc�t�|�td��}|�t|d��dS)Nz<classmethod({!r})>r1)r\�classmethod�assertRaisesr:r^s  r�test_classmethodzTestDecorators.test_classmethodgs6���*�*�;�8M�N�N�����)�W�a�0�0�0�0�0rc���t��}|�d��d���}|�|��d��|�|jd��dS)N�Cleesec��dSrDrrrrrFz'TestDecorators.test_dotted.<locals>.foons���"rrE)rrrI)r!�
decoratorsrFs   r�test_dottedzTestDecorators.test_dottedlsi��#�%�%�
�	�	�	�8�	$�	$���
%�	$����������#�#�#������X�.�.�.�.�.rc���d�}d}tdd���}||i|��d���}|�|��d��|�|j||f��|dd	d
d���d
���}|�|��d��|�|jdtd
d���f��|dd��d���}|�|jdif��dS)Nc������fd�}|S)Nc�.��t|d��f��|S)N�dbval)�setattr)r
r#rs ��rr
z@TestDecorators.test_argforms.<locals>.noteargs.<locals>.decoratexs�����g��d�|�4�4�4��rr)r#rr
s`` r�noteargsz.TestDecorators.test_argforms.<locals>.noteargsws)����
�
�
�
�
�
��Or)�Now�is�the�timer1�)�one�twoc��dSrDrrrr�f1z(TestDecorators.test_argforms.<locals>.f1����rrE�terry�gilliam�idle�cleese)�eric�johnc��dS)N�Trrrr�f2z(TestDecorators.test_argforms.<locals>.f2�rxrr�)ryrzc��dSrrrrr�f3z(TestDecorators.test_argforms.<locals>.f3�s���$r)r1rs)�dictrIrl)r!rnr#rrwr�r�s       r�
test_argformszTestDecorators.test_argformsssA��	�	�	�.����q�!�!�!��	��4�	 �4�	 �	 ���
!�	 ���������r�"�"�"������D�$�<�0�0�0�	��'�9�6��	A�	A�	A���
B�	A���������r�"�"�"������$8�%)�v�H�%E�%E�%E�$G�	H�	H�	H�
��!�Q�����
��������F�B�<�0�0�0�0�0rc��td��d���}|�|dd��d��|�t|dd��dS)Nzargs[1] is not Nonec��||zSrr)�a�bs  r�fz&TestDecorators.test_dbcheck.<locals>.f�s���q�5�Lrr1rs�)r-rIrbr)r!r�s  r�test_dbcheckzTestDecorators.test_dbcheck�se��	�&�	'�	'�	�	�
(�	'�	������1�a���!�$�$�$����,��1�d�3�3�3�3�3rc�,�i}tt|��d�����}|�|jd��|�|t	d�����|�|d��d��|�|dd��|�|d��d��|�|dd��|�|d��d	��|�|dd��|�|d
g��d
d
g��|�|dd��|�|d
g��d
d
g��|�|dd��dS)Nc��|dzS)NrsrrNs r�doublez+TestDecorators.test_memoize.<locals>.double�s
���q�5�Lrr�r)r�rs�r1r���
)r=r6rIrr�)r!r2r�s   r�test_memoizezTestDecorators.test_memoize�s�����	�	�F�	�	�	�	�
�	�
��	������(�3�3�3������Q����0�0�0�	
��������A�&�&�&������)�1�-�-�-���������A�&�&�&������)�1�-�-�-���������A�&�&�&������)�1�-�-�-�	
����������B�x�0�0�0������)�1�-�-�-�����������B�x�0�0�0������)�1�-�-�-�-�-rc�T�dD]Z}t|dd��|�t��5td|�d�dd��ddd��n#1swxYwY�[dD]X}t|dd��|�t��5t	d|�d���ddd��n#1swxYwY�Yd�}td|�	��}d
tfdtfdtfd
tffD]8\}}d|z}t|dd��}|�|t||���9dS)N)zx,zx, yzx = y�passz
import sys�test�exec�@�
def f(): pass)z1.+2jz
[1, 2][-1]z(1, 2)�Truez...�Noner&c��t�r)�NotImplementedError�r
s r�unimpz)TestDecorators.test_errors.<locals>.unimp�s��%�%r)�nullvalr��undefr�znullval.attrr�z$@%s
def f(): pass
assert f() is None)
r,rb�SyntaxErrorr:r�r��	NameError�AttributeErrorr�r&)r!�stmtr(r��context�exc�codestr�codes        r�test_errorszTestDecorators.test_errors�s��B�	C�	C�D��D�&�&�)�)�)��"�"�;�/�/�
C�
C��1�D�1�1�1�6�6�B�B�B�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C�
C����
C�
C�
C�
C��M�	0�	0�D��D�&�&�)�)�)��"�"�9�-�-�
0�
0��.��.�.�.�/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	&�	&�	&��t�5�1�1�1��#�Y�/�%�y�1�*�N�;�#�%8�9�;�	8�	8�I�D�#�?��E�G��7�F�F�3�3�D����c�4��w�7�7�7�7�
	8�	8s#�A�A	�A	�
B-�-B1	�4B1	c�:�dD]}td|�d�dd���dS)N)z(x,)z(x, y)zx := yz(x := y)zx @yz(x @ y)zx[0]zw[x].y.zzw + x - (y + z)z	x(y)()(z)z[w, x, y][z]zx.yr�r�r�r�)r,)r!r(s  r�test_expressionszTestDecorators.test_expressions�s@��
�	?�	?�D�
�-��-�-�-�v�v�>�>�>�>�		?�	?rc�L�Gd�dt��}|�|�����d��|�|jjd��|�|jjd��|�|jjd��dS)Nc�^�eZdZedd���ed���d�����ZdS)�%TestDecorators.test_double.<locals>.Cr1�haha)�abc�xyzrE)�boohc��dSrDr)r!s rrFz)TestDecorators.test_double.<locals>.C.foo�s��"$�"rN)rrrrrFrrrrGr��sK������
�Y�1�&�
)�
)�
)�
�Y�B�
�
�
�$�$� �
�*�
)�$�$�$rrGrEr1r�)rHrIrFr�r�r�rJs  r�test_doublezTestDecorators.test_double�s���	%�	%�	%�	%�	%��	%�	%�	%�	
�����������B�'�'�'�������A�&�&�&�������F�+�+�+�������R�(�(�(�(�(rc��d�}|d��|d��d�����}|�|��dd��dS)Nc����fd�}|S)z�Decorator factory that returns a decorator that replaces the
            passed-in function with one that returns the value of 'num'c����fd�S)Nc����Srr)�nums�r�<lambda>zJTestDecorators.test_order.<locals>.callnum.<locals>.deco.<locals>.<lambda>�s���s�rr)r
r�s �r�decoz8TestDecorators.test_order.<locals>.callnum.<locals>.deco�s���"�{�{�{�"rr)r�r�s` r�callnumz*TestDecorators.test_order.<locals>.callnum�s!���
#�
#�
#�
#�
#��Krrsr1c��dSrDrrrrrFz&TestDecorators.test_order.<locals>.foo�s���"rz,Application order of decorators is incorrect)rI)r!r�rFs   r�
test_orderzTestDecorators.test_order�st��	�	�	�
�����	�������
��
�����������J�	L�	L�	L�	L�	Lrc����	�g��fd��	G��	fd�dt��}t|gd���\}}}gd�}g�|�|j��|�|j��|�|j��d�������}|�|��d��|��|��g�d�}|�|j��|�|j��|�|j��|������}|�|��d��|��|��dS)	Nc�F�����d�z����fd�}|S)N�makedecc�8����d�z��|S)N�calldec��append)r
�actions�tags ��rr
zHTestDecorators.test_eval_order.<locals>.make_decorator.<locals>.decorate�s������y�3��/�/�/��rr�)r�r
r�s` �r�make_decoratorz6TestDecorators.test_eval_order.<locals>.make_decorator�s?�����N�N�9�s�?�+�+�+�
�
�
�
�
�
��Orc�"��eZdZd�Z��fd�ZdS)�8TestDecorators.test_eval_order.<locals>.NameLookupTracerc��||_dSr)�index)r!r�s  rr zATestDecorators.test_eval_order.<locals>.NameLookupTracer.__init__s
��"��
�
�
rc���|dkrd�}}n|dkrdt|j��}}��d||jfz��|S)Nr��evalname�arg�evalargsz%s%d)�strr�r�)r!�fname�opnamer;r�r�s    ��r�__getattr__zDTestDecorators.test_eval_order.<locals>.NameLookupTracer.__getattr__s`����,�,�@�#-�~�C�F�F��e�^�@�#-�s�4�:���C�F����v����(<�<�=�=�=��
rN)rrrr r�)r�r�s��r�NameLookupTracerr�sB�������
#�
#�
#�
�
�
�
�
�
�
�
rr�)r1rsr�)�	evalname1�	evalargs1�makedec1�	evalname2�	evalargs2�makedec2�	evalname3�	evalargs3�makedec3�calldec3�calldec2�calldec1c��dSrDrrrrrFz+TestDecorators.test_eval_order.<locals>.foos	���"rrEc��dSrDrrrr�barz+TestDecorators.test_eval_order.<locals>.bar"s��"�"r)rH�mapr�r�rI)
r!r��c1�c2�c3�expected_actionsrFr�r�r�s
        @@r�test_eval_orderzTestDecorators.test_eval_order�s�������	�	�	�	�	�	�	�	�	�	�	�	�	��	�	�	��)�;�;�;�7�7�
��B��B�B�B��
��	�	�	�2�6�	"�	"�	�	�	�2�6�	"�	"�	�	�	�2�6�	"�	"���
#�	"�
#�	"�
#�	"�	���������#�#�#�����"2�3�3�3������'�b�����'�'�(A��(9�(9�"�&�(A�(A�B[�"�BS�BS�TV�TZ�B[�B[�\_�B`�B`�(a�(a�b�b����������#�#�#�����"2�3�3�3�3�3rc������Gd�d���G�fd�d����fd��G�fd�d��}|�|���d��|�|���d	��|�|�����d��|�|�����d	��dS)
Nc��eZdZd�Zd�ZdS)�OTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.BoundWrapperc��||_dSr�rT�r!�wrappeds  rr zXTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.BoundWrapper.__init__)���#*�� � � rc��|j|i|��Srr�)r!r#�kwargss   r�__call__zXTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.BoundWrapper.__call__,s��'�t�'��8��8�8�8rN)rrrr r�rrr�BoundWrapperr�(s2������
+�
+�
+�
9�
9�
9�
9�
9rr�c� ��eZdZd�Z�fd�ZdS)�JTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.Wrapperc��||_dSrr�r�s  rr zSTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.Wrapper.__init__0r�rc�P��|j�||��}�|��Sr)rT�__get__)r!�instance�owner�bound_functionr�s    �rr�zRTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.Wrapper.__get__3s+���!%�!1�!9�!9�(�E�!J�!J��#�|�N�3�3�3rN)rrrr r�)r�s�r�Wrapperr�/s=�������
+�
+�
+�
4�
4�
4�
4�
4�
4�
4rrc����|��Srr)r�rs �r�	decoratorzLTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.decorator7s����7�7�#�#�#rc�\��eZdZ�ed�����Ze�d�����ZdS)�HTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.Classc��dS�N�spamr��clss r�innerzNTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.Class.inner;s	���vrc��dS)N�eggsrrs r�outerzNTestDecorators.test_wrapped_descriptor_inside_classmethod.<locals>.Class.outerAs	��
�vrN)rrrrar
r
)rs�r�Classr:s]�������
�
�
�
��[��Y�
��
�
�
��Y��[�
�
�
rrrr)rIr
r
)r!rr�rrs  @@@r�*test_wrapped_descriptor_inside_classmethodz9TestDecorators.test_wrapped_descriptor_inside_classmethod's6�����	9�	9�	9�	9�	9�	9�	9�	9�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	$�	$�	$�	$�	$�	�	�	�	�	�	�	�	�	�	�	
���������/�/�/����������/�/�/������������&�1�1�1������������&�1�1�1�1�1rc���Gd�d���G�fd�d��}|�|���d��dS)Nc��eZdZd�ZdS)�@TestDecorators.test_bound_function_inside_classmethod.<locals>.Ac��dSrr�r!r	s  rrFzDTestDecorators.test_bound_function_inside_classmethod.<locals>.A.fooOs���vrN)rrrrFrrr�ArNs#������
�
�
�
�
rrc�@��eZdZe���j��ZdS)�@TestDecorators.test_bound_function_inside_classmethod.<locals>.BN)rrrrarFr�)rs�r�BrRs&��������+�a�a�c�c�g�&�&�C�C�Crrr)rIr�)r!rrs  @r�&test_bound_function_inside_classmethodz5TestDecorators.test_bound_function_inside_classmethodMs����	�	�	�	�	�	�	�	�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	
��������&�)�)�)�)�)rc�J����Gd�d���Gd�d�����fD�]��G���fd�d��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���|��|�|���|��|��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���|��|�|���|��d�}|��|���|����|��|��|���||����|��|��|���||����|��|��|���|����t|����|�t|���|����|��|�t|���||����|��|�t|���||����|��|�t|���|����t|������dS)Nc�"�eZdZd�Zd�Zdd�ZdS)�RTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod1c��||_dSrr��r!r
s  rr z[TestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod1.__init__Ys
�� ��	�	�	rc��t|jd��r#|j�||����S|�|��S)Nr�)�hasattrr
r�rs  rr�z[TestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod1.__call__\sF���4�9�i�0�0�9�6�4�9�,�,�S�#�6�6�8�8�8��y�y��~�~�%rNc�D�|�t|��}t||��Sr��typer�r!r�r�s   rr�zZTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod1.__get__a�%���+� ��N�N�E�!�$��.�.�.rr�rrrr r�r�rrr�MyClassMethod1rXsF������
!�
!�
!�
&�
&�
&�

/�
/�
/�
/�
/�
/rr'c�"�eZdZd�Zd�Zdd�ZdS)�RTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod2c�L�t|t��r|j}||_dSr)�
isinstancerarSr
rs  rr z[TestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod2.__init__gs&���d�K�0�0�)��=�D� ��	�	�	rc�,�|�|��Srr�rs  rr�z[TestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod2.__call__ls���y�y��~�~�%rNc�D�|�t|��}t||��Srr"r$s   rr�zZTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.MyClassMethod2.__get__or%rrr&rrr�MyClassMethod2r)fsF������
!�
!�
!�

&�
&�
&�
/�
/�
/�
/�
/�
/rr.c����eZdZ�d���Ze�d�����Z�ed�����Zeed�����Z��d�����Z��d�����Z	dS)�ETestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.Ac��|Srrrs rrwzHTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.A.f1vs���Jrc��|Srrrs rr�zHTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.A.f2z�	���Jrc��|Srrrs rr�zHTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.A.f3r3rc��|Srrrs r�f4zHTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.A.f4�r3rc��|Srrrs r�f5zHTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.A.f5�r3rc��|Srrrs r�f6zHTestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.A.f6�r3rN)
rrrrwrar�r�r6r8r:)r'r.�
myclassmethods���rrr0us��������������������������������������������� ��������� ������rrc��|Srrrs rr�zETestDecorators.test_wrapped_classmethod_inside_classmethod.<locals>.f�s���
r)
rRrwr�r�r6r8r:r�r#ra)r!rr�r�r'r.r;s    @@@r�+test_wrapped_classmethod_inside_classmethodz:TestDecorators.test_wrapped_classmethod_inside_classmethodWs������	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�-�n�=�7	@�7	@�M�
�
�
�
�
�
�
�
�
�
�
�
�<
�M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$�����A��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$��M�M�!�$�$�&�&�!�$�$�$�
�
�
�
�M�M�5�-�-��*�*�2�2�1�5�5�7�7��;�;�;��M�M�8�-�-��*�*�2�2�1�a�8�8�:�:�A�>�>�>��M�M�8�-�-��*�*�2�2�1�a�8�8�:�:�A�>�>�>��M�M�5�-�-��*�*�2�2�1�5�5�7�7��a���A�A�A��M�M�3�+�a�.�.�0�0��3�3�5�5�q�9�9�9��M�M�6�+�a�.�.�0�0��A�6�6�8�8�!�<�<�<��M�M�6�+�a�.�.�0�0��A�6�6�8�8�!�<�<�<��M�M�3�+�a�.�.�0�0��3�3�5�5�t�A�w�w�?�?�?�?�o7	@�7	@rN)rrrrKr\r_rcrhr�r�r�r�r�r�r�r�rrr=rrrr?r?Hs������(�(�(���� (�(�(�1�1�1�
/�/�/�1�1�1�64�4�4�.�.�.�68�8�8�4?�?�?�)�)�)�
L�
L�
L�;4�;4�;4�z$2�$2�$2�L*�*�*�T@�T@�T@�T@�T@rr?c� �eZdZd�Zd�Zd�ZdS)�TestClassDecoratorsc�x�d�}|Gd�dt����}|�|jd��dS)Nc��d|_|S)N�Hello��extrarNs r�plainz.TestClassDecorators.test_simple.<locals>.plain�����A�G��Hrc��eZdZdS)�*TestClassDecorators.test_simple.<locals>.CN�rrrrrrrGrH�s�������rrGrB�rHrIrD)r!rErGs   r�test_simplezTestClassDecorators.test_simple�sU��	�	�	�
���������
��������'�*�*�*�*�*rc��d�}d�}||Gd�dt������}|�|jd��dS)Nc��d|_|S)Nr�rCrNs r�tenz,TestClassDecorators.test_double.<locals>.ten�s���A�G��Hrc�&�|xjdz
c_|S)N�rCrNs r�add_fivez1TestClassDecorators.test_double.<locals>.add_five�s��
�G�G�q�L�G�G��Hrc��eZdZdS)�*TestClassDecorators.test_double.<locals>.CNrIrrrrGrS���������rrG�rJ)r!rNrQrGs    rr�zTestClassDecorators.test_double�sn��	�	�	�	�	�	�
�	���������

��
��������"�%�%�%�%�%rc��d�}d�}||Gd�dt������}|�|jd��dS)Nc��d|_|S)N�firstrCrNs r�
applied_firstz5TestClassDecorators.test_order.<locals>.applied_first�rFrc��d|_|S)N�secondrCrNs r�applied_secondz6TestClassDecorators.test_order.<locals>.applied_second�s���A�G��Hrc��eZdZdS)�)TestClassDecorators.test_order.<locals>.CNrIrrrrGr^�rTrrGr[rJ)r!rYr\rGs    rr�zTestClassDecorators.test_order�sn��	�	�	�	�	�	�
�	���������
��
��������(�+�+�+�+�+rN)rrrrKr�r�rrrr?r?�sA������+�+�+�&�&�&�
,�
,�
,�
,�
,rr?�__main__)NN)r�r�unittest�typesrrrHrrrr-r6r=�TestCaser?r?r�mainrrr�<module>rds]��������������������������f����8�8�8�8�8�I�8�8�8�	�	�	�	�
�
�
�
�
�
�"c@�c@�c@�c@�c@�X�&�c@�c@�c@�J!,�!,�!,�!,�!,�(�+�!,�!,�!,�F�z����H�M�O�O�O�O�O��r