Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_abc.cpython-311.opt-2.pyc
�

�Kej^����	ddlZddlZddlZddlmZd�Zeejej��\ZZ	Z
eejej��\ZZZ
edkrej��dSdS)�N)�
isabstractc����G�fd�dtj��}G��fd�dtj��}G�fd�dtj��}|||fS)Nc�.��eZdZ�fd�Z�fd�Z�fd�ZdS)�#test_factory.<locals>.TestLegacyAPIc���tjd���}|�|j��d�}|�t|d����Gd�d����}|�t|��Gd�d|��}|�|��j	d	��|�t|j	dd
����dS)Nc��dS�N���selfs �7/usr/local/apps/python3/lib/python3.11/test/test_abc.py�foozMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.foo����4�c��dSr	r
rs r
�barzMtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.bar����r�__isabstractmethod__c�.�eZdZejd���ZdS)�Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.Cc��dS�N�r
rs r
rzOtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.C.foos��&'�arN)�__name__�
__module__�__qualname__�abc�abstractpropertyrr
rr
�Crs'�������%�'�'�&�%�'�'�'rr��	metaclassc�.��eZdZe�fd���Z�xZS)�Ktest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.Dc�*��t��jSr	��superr�r�	__class__s �r
rzOtest_factory.<locals>.TestLegacyAPI.test_abstractproperty_basics.<locals>.D.foo����&+�g�g�k�1r)rrr�propertyr�
__classcell__�r(s@r
�Dr#s0��������1�1�1�1���1�1�1�1�1rr-rF)rr�
assertTruer�assertFalse�hasattr�assertRaises�	TypeError�assertEqualr�getattr�rrrrr-�abc_ABCMetas     �r
�test_abstractproperty_basicsz@test_factory.<locals>.TestLegacyAPI.test_abstractproperty_basicss���
�
!���"�
!���O�O�C�4�5�5�5�������W�S�*@�A�A�B�B�B�
(�
(�
(�
(�
(�k�
(�
(�
(�
(�
���i��+�+�+�
2�
2�
2�
2�
2�A�
2�
2�
2�
���Q�Q�S�S�W�a�(�(�(����W�Q�U�,B�E�J�J�K�K�K�K�Krc����tjd���}|�|j��td���}|�t
|dd����Gd�d����}|�t|��Gd�d	|��}|�	|�
��d	��|�	|���
��d	��dS)
Nc��dSr	r
��clss r
rzPtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.foo$����$rc��dSr	r
r:s r
rzPtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.bar'r<rrFc�.�eZdZejd���ZdS)�Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.Cc��|jSr	�rr:s r
rzRtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.C.foo,s
��%(�\�1rN)rrrr�abstractclassmethodrr
rr
rr?+s'�������(�1�1�)�(�1�1�1rrr c�.��eZdZe�fd���Z�xZS)�Ntest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.Dc�D��t�����Sr	r%�r;r(s �r
rzRtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics.<locals>.D.foo0����%*�W�W�[�[�]�]�2r�rrr�classmethodrr+r,s@r
r-rD/�0��������2�2�2�2���2�2�2�2�2rr-)rrBr.rrIr/r4r1r2r3rr5s     �r
�test_abstractclassmethod_basicszCtest_factory.<locals>.TestLegacyAPI.test_abstractclassmethod_basics#s���
�
$���%�
$���O�O�C�4�5�5�5�
����[�����W�S�*@�%�H�H�I�I�I�
2�
2�
2�
2�
2�k�
2�
2�
2�
2�
���i��+�+�+�
3�
3�
3�
3�
3�A�
3�
3�
3�
���Q�U�U�W�W�c�*�*�*����Q�Q�S�S�W�W�Y�Y��,�,�,�,�,rc����tjd���}|�|j��td���}|�t
|dd����Gd�d����}|�t|��Gd�d	|��}|�	|�
��d
��|�	|���
��d
��dS)Nc��dSr	r
r
rr
rzQtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.foo6����trc��dSr	r
r
rr
rzQtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.bar9rNrrFc�.�eZdZejd���ZdS)�Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.Cc��dSrr
r
rr
rzStest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.C.foo>���"#�!rN)rrrr�abstractstaticmethodrr
rr
rrQ=s'�������)�#�#�*�)�#�#�#rrr c�$�eZdZed���ZdS)�Otest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.Dc��dS�N�r
r
rr
rzStest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics.<locals>.D.fooBrSrN�rrr�staticmethodrr
rr
r-rVA�#�������#�#���#�#�#rr-rY)rrTr.rr[r/r4r1r2r3rr5s     �r
� test_abstractstaticmethod_basicszDtest_factory.<locals>.TestLegacyAPI.test_abstractstaticmethod_basics5s���
�
%��O�&�
%���O�O�C�4�5�5�5�
��O��\�����W�S�*@�%�H�H�I�I�I�
$�
$�
$�
$�
$�k�
$�
$�
$�
$�
���i��+�+�+�
$�
$�
$�
$�
$�A�
$�
$�
$�
���Q�U�U�W�W�a�(�(�(����Q�Q�S�S�W�W�Y�Y��*�*�*�*�*rN)rrrr7rKr]�r6s�r
�
TestLegacyAPIrse�������	L�	L�	L�	L�	L�"	-�	-�	-�	-�	-�$	+�	+�	+�	+�	+�	+�	+rr_c�4��eZdZd�Zd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Z	�fd�Z
�fd	�Z�fd
�Z�fd�Z
�fd�Z�fd
�Z��fd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Zd�Z�fd�Zd�Z�fd�Z�fd�Z�fd�Z�fd�Z�fd�Zd�Z�fd�Z�fd�Z �fd�Z!d S)!�test_factory.<locals>.TestABCc�2�Gd�dtj��}|�t|��tj��|�t|��Gd�d|��}|�|���d��dS)Nc�>�eZdZeejd�����ZdS)�8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.Cc��|jSr	rAr:s r
rz<test_factory.<locals>.TestABC.test_ABC_helper.<locals>.C.fooM�
��%(�\�1rN�rrrrIr�abstractmethodrr
rr
rrdL�1��������#�1�1�$�#���1�1�1rrc�.��eZdZe�fd���Z�xZS)�8test_factory.<locals>.TestABC.test_ABC_helper.<locals>.Dc�D��t�����Sr	r%rFs �r
rz<test_factory.<locals>.TestABC.test_ABC_helper.<locals>.D.fooSrGrrHr,s@r
r-rkRrJrr-)r�ABCr3�type�ABCMetar1r2r)rrr-s   r
�test_ABC_helperz-test_factory.<locals>.TestABC.test_ABC_helperJs���
2�
2�
2�
2�
2�C�G�
2�
2�
2�
���T�!�W�W�c�k�2�2�2����i��+�+�+�
3�
3�
3�
3�
3�A�
3�
3�
3�
���Q�U�U�W�W�c�*�*�*�*�*rc��tjd���}|�|j��d�}|�t|d����dS)Nc��dSr	r
rs r
rzEtest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.fooXrrc��dSr	r
rs r
rzEtest_factory.<locals>.TestABC.test_abstractmethod_basics.<locals>.bar[rrr)rrhr.rr/r0)rrrs   r
�test_abstractmethod_basicsz8test_factory.<locals>.TestABC.test_abstractmethod_basicsWs\��
�
��� �
���O�O�C�4�5�5�5�������W�S�*@�A�A�B�B�B�B�Brc����ttjd�����}|�|j��d�}|�t
|dd����Gd�d�����|�t���G�fd�d	���}|�	|��j
d
��dS)Nc��dSr	r
rs r
rzGtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.foo_s���4rc��dSr	r
rs r
rzGtest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.barcrrrFc�>�eZdZeejd�����ZdS)�Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Cc��dSrr
rs r
rzItest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.C.foog���&'�arN)rrrr*rrhrr
rr
rryfs1��������#�'�'�$�#���'�'�'rrr c�D���eZdZ�jj�fd���Z�xZS)�Etest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.Dc�*��t��jSr	r%r's �r
rzItest_factory.<locals>.TestABC.test_abstractproperty_basics.<locals>.D.foolr)r�rrrr�getterr+�r(rs@�r
r-r}k�5�����������1�1�1�1���1�1�1�1�1rr-r)r*rrhr.rr/r4r1r2r3r)rrrr-rr6s    @�r
r7z:test_factory.<locals>.TestABC.test_abstractproperty_basics^s����
�
�
��� �
��X���O�O�C�4�5�5�5�������W�S�*@�%�H�H�I�I�I�
(�
(�
(�
(�
(�k�
(�
(�
(�
(�
���i��+�+�+�
2�
2�
2�
2�
2�
2�
2�A�
2�
2�
2�
���Q�Q�S�S�W�a�(�(�(�(�(rc���ttjd�����}|�|j��td���}|�t
|dd����Gd�d����}|�t|��Gd�d	|��}|�	|�
��d	��|�	|���
��d	��dS)
Nc��dSr	r
r:s r
rzJtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.fooqs���$rc��dSr	r
r:s r
rzJtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.barur<rrFc�>�eZdZeejd�����ZdS)�Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Cc��|jSr	rAr:s r
rzLtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.C.foozrfrNrgr
rr
rr�yrirrr c�.��eZdZe�fd���Z�xZS)�Htest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.Dc�D��t�����Sr	r%rFs �r
rzLtest_factory.<locals>.TestABC.test_abstractclassmethod_basics.<locals>.D.foorGrrHr,s@r
r-r�~rJrr-)rIrrhr.rr/r4r1r2r3rr5s     �r
rKz=test_factory.<locals>.TestABC.test_abstractclassmethod_basicsps(���
�
�
��� �
��[���O�O�C�4�5�5�5�
����[�����W�S�*@�%�H�H�I�I�I�
2�
2�
2�
2�
2�k�
2�
2�
2�
2�
���i��+�+�+�
3�
3�
3�
3�
3�A�
3�
3�
3�
���Q�U�U�W�W�c�*�*�*����Q�Q�S�S�W�W�Y�Y��,�,�,�,�,rc���ttjd�����}|�|j��td���}|�t
|dd����Gd�d����}|�t|��Gd�d	|��}|�	|�
��d
��|�	|���
��d
��dS)Nc��dSr	r
r
rr
rzKtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.foo�s���trc��dSr	r
r
rr
rzKtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.bar�rNrrFc�>�eZdZeejd�����ZdS)�Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.Cc��dSrr
r
rr
rzMtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.C.foo�s��"#�!rN)rrrr[rrhrr
rr
rr��s1��������#�#�#�$�#���#�#�#rrr c�$�eZdZed���ZdS)�Itest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.Dc��dSrXr
r
rr
rzMtest_factory.<locals>.TestABC.test_abstractstaticmethod_basics.<locals>.D.foo�rSrNrZr
rr
r-r��r\rr-rY)r[rrhr.rr/r4r1r2r3rr5s     �r
r]z>test_factory.<locals>.TestABC.test_abstractstaticmethod_basics�s&���
�
�
��O� �
��\���O�O�C�4�5�5�5�
��O��\�����W�S�*@�%�H�H�I�I�I�
$�
$�
$�
$�
$�k�
$�
$�
$�
$�
���i��+�+�+�
$�
$�
$�
$�
$�A�
$�
$�
$�
���Q�U�U�W�W�a�(�(�(����Q�Q�S�S�W�W�Y�Y��*�*�*�*�*rc�b��Gd�d����}d}|�t||��dS)Nc�.�eZdZejd���ZdS)�Ptest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.Cc��dSr	r
rs r
�
method_onez[test_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod.<locals>.C.method_one�����DrN)rrrrrhr�r
rr
rr���1�������#���$�#���rrr z'class C with abstract method method_one��assertRaisesRegexr2�rr�msgr6s   �r
�'test_object_new_with_one_abstractmethodzEtest_factory.<locals>.TestABC.test_object_new_with_one_abstractmethod�sW���
�
�
�
�
�k�
�
�
�
�=�C��"�"�9�c�1�5�5�5�5�5rc�b��Gd�d����}d}|�t||��dS)Nc�N�eZdZejd���Zejd���ZdS)�Rtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.Cc��dSr	r
rs r
r�z]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_one�r�rc��dSr	r
rs r
�
method_twoz]test_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods.<locals>.C.method_two�r�rN)rrrrrhr�r�r
rr
rr��sN�������#���$�#���#���$�#���rrr z4class C with abstract methods method_one, method_twor�r�s   �r
�)test_object_new_with_many_abstractmethodszGtest_factory.<locals>.TestABC.test_object_new_with_many_abstractmethods�sX���
�
�
�
�
�k�
�
�
�
�J�C��"�"�9�c�1�5�5�5�5�5rc����tjtjtjtjfD�]��G�fd�d����}|�|jdh��|�t|��|�	t|����Gd�d|��}|�|jdh��|�t|��|�	t|����Gd�d|��}|�|jt����|��|�t|����G�fd	�d
|��}|�|jdh��|�t|��|�	t|�������dS)Nc�,��eZdZ�d���Zd�ZdS)�Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Cc��dSr	r
rs r
rzLtest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.foo����#'�4rc��dSr	r
rs r
rzLtest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.C.bar�rrN)rrrrr��
abstractthings�r
rr��s-�������"�'�'�#�]�'�'�'�'�'�'rrr rc��eZdZd�ZdS)�Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Dc��dSr	r
rs r
rzLtest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.D.bar�rrN�rrrrr
rr
r-r���������'�'�'�'�'rr-c��eZdZd�ZdS)�Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Ec��dSr	r
rs r
rzLtest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.E.foo�rrN�rrrrr
rr
�Er��r�rr�c�&��eZdZ�d���ZdS)�Htest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.Fc��dSr	r
rs r
rzLtest_factory.<locals>.TestABC.test_abstractmethod_integration.<locals>.F.bar�r�rNr�r�s�r
�Fr��s$�������"�'�'�#�]�'�'�'rr�r)
rrhrrBrTr3�__abstractmethods__r1r2r.r�setr/)rrr-r�r�r�r6s     @�r
�test_abstractmethod_integrationz=test_factory.<locals>.TestABC.test_abstractmethod_integration�s����"%�"4�c�6J�"%�"9�"%�":�"<�
/�
/�
�(�(�(�(�(�(�(�+�(�(�(�(�� � ��!6���@�@�@��!�!�)�Q�/�/�/����
�1�
�
�.�.�.�(�(�(�(�(��(�(�(�� � ��!6���@�@�@��!�!�)�Q�/�/�/����
�1�
�
�.�.�.�(�(�(�(�(��(�(�(�� � ��!6����>�>�>������� � ��A���/�/�/�(�(�(�(�(�(�(��(�(�(�� � ��!6���@�@�@��!�!�)�Q�/�/�/����
�1�
�
�.�.�.�.�3
/�
/rc�������Gd�d�����|�t���G�fd�d����|�t���G�fd�d���}|�|��jd��Gd	�d
t���|�t
��5G�fd�d���}ddd��dS#1swxYwYdS)
Nc�x�eZdZeejd�����Zejejd�����ZdS)�Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Cc��dSrr
rs r
rzQtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.C.foo�r{rc��dSr	r
�r�vals  r
rzQtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.C.foo����$(�DrN)rrrr*rrhr�setterr
rr
rr��sT��������#�'�'�$�#���'����#�(�(�$�#���(�(�(rrr c�D���eZdZ�jj�fd���Z�xZS)�Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Dc�*��t��jSr	r%r's �r
rzQtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.D.foo�r)rrr�s@�r
r-r��r�rr-c�:��eZdZ�jjd���ZdS)�Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Ec��dSr	r
r�s  r
rzQtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.E.foo����$(�DrN�rrrrr��r-s�r
r�r���(����������(�(���(�(�(rr�rc��eZdZd�ZeZdS)�Stest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBoolc��t���r	)�
ValueErrorrs r
�__bool__z\test_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.NotBool.__bool__�s��$�,�,�&rN)rrrr��__len__r
rr
�NotBoolr��s"������'�'�'�"���rr�c�J��eZdZd�Z���e_ee��ZdS)�Mtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.Fc��dSr	r
rs r
rzQtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod.<locals>.F.bar�s���rN)rrrrrr*r)r�s�r
r�r��s9����������/6�w�y�y�C�,�"�(�3�-�-�C�C�Crr�)r1r2r3r�objectr�)rr�r�rr-r�r6s   @@@�r
�$test_descriptors_with_abstractmethodzBtest_factory.<locals>.TestABC.test_descriptors_with_abstractmethod�s�������
)�
)�
)�
)�
)�k�
)�
)�
)�
)�
���i��+�+�+�
2�
2�
2�
2�
2�
2�
2�A�
2�
2�
2�
���i��+�+�+�
)�
)�
)�
)�
)�
)�
)�A�
)�
)�
)�
���Q�Q�S�S�W�a�(�(�(�
#�
#�
#�
#�
#�&�
#�
#�
#��"�"�:�.�.�
(�
(�(�(�(�(�(�(�(��(�(�(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�
(�
(s�:C�C�Cc�8�����G�fd�d���G�fd�d�����|�t���G�fd�d����|�t���G�fd�d	���}|�|jj��dS)
Nc�B��eZdZdd�Z�fd�Z�fd�Zed���ZdS)�\test_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.DescriptorNc�"�||_||_dSr	)�_fget�_fset)r�fget�fsets   r
�__init__zetest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__init__�s��!%�D�J�!%�D�J�J�Jrc�&���||j��Sr	�r��r�callable�
Descriptors  �r
r�zctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.getter�s���%�:�h��
�;�;�;rc�&���|j|��Sr	r�r�s  �r
r�zctest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.setter�s���%�:�d�j�(�;�;�;rc�Z�t|jdd��pt|jdd��S)NrF)r4r�r�rs r
rzqtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Descriptor.__isabstractmethod__�s2��#�D�J�0F��N�N�R�&�t�z�3I�5�Q�Q�Srr	)rrrr�r�r�r*r�r�s�r
r�r��sy�������&�&�&�&�<�<�<�<�<�<�<�<�<�<��S�S���S�S�Srr�c�z��eZdZ�ejd�����Zejejd�����ZdS)�Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Cc��dSrr
rs r
rzWtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.C.foo�r{rc��dSr	r
r�s  r
rzWtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.C.foo�r�rN)rrrrrhrr�r�s�r
rr��sU���������#�'�'�$�#���'����#�(�(�$�#���(�(�(rrr c�D���eZdZ�jj�fd���Z�xZS)�Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Dc�*��t��jSr	r%r's �r
rzWtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.D.foo�r)rrr�s@�r
r-r��r�rr-c�:��eZdZ�jjd���ZdS)�Stest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.Ec��dSr	r
r�s  r
rzWtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod.<locals>.E.foor�rNr�r�s�r
r�r��r�rr�)r1r2r/rr)rr�rr-r�r6s  @@@�r
�*test_customdescriptors_with_abstractmethodzHtest_factory.<locals>.TestABC.test_customdescriptors_with_abstractmethod�s4������
S�
S�
S�
S�
S�
S�
S�
S�
S�
S�
)�
)�
)�
)�
)�
)�
)�k�
)�
)�
)�
)�
���i��+�+�+�
2�
2�
2�
2�
2�
2�
2�A�
2�
2�
2�
���i��+�+�+�
)�
)�
)�
)�
)�
)�
)�A�
)�
)�
)�
���Q�U�7�8�8�8�8�8rc���Gd�d����}|�|jdh��Gd�dt|��}Gd�d|���}dS)	Nc�.�eZdZejd���ZdS)�;test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.Ac��dSr	r
rs r
�xz=test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.A.xr�rN)rrrrrhrr
rr
�Ar�r�rrr rc��eZdZd�ZdS)�>test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.metac��dS�N�r
rs r
rz@test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.meta.xs���1rN)rrrrr
rr
�metars#����������rrc��eZdZdS)�;test_factory.<locals>.TestABC.test_metaclass_abc.<locals>.CN�rrrr
rr
rr	��������rr)r3r�rn)rrrrr6s    �r
�test_metaclass_abcz0test_factory.<locals>.TestABC.test_metaclass_abcs����
�
�
�
�
�k�
�
�
�
�
���Q�2�S�E�:�:�:�
�
�
�
�
�t�Q�
�
�
�
�
�
�
�
�d�
�
�
�
�
�
rc���Gd�d����}Gd�dt��}|��}|�t||����|�t||f����|�||��|�||f��|�|��}|�t||����|�t||f����|�||��|�||f��|�||��Gd�d|��}|��}|�t||����|�t||f����|�||��|�||f��dS)Nc��eZdZdS)�Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.ANr
r
rr
rrrrrr c��eZdZdS)�Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.BNr
r
rr
�Brrrrc��eZdZdS)�Atest_factory.<locals>.TestABC.test_registration_basics.<locals>.CNr
r
rr
rr!rrr)r�r/�
issubclass�assertNotIsInstance�registerr.�assertIsInstance�assertIs)rrr�b�B1r�cr6s       �r
�test_registration_basicsz6test_factory.<locals>.TestABC.test_registration_basicss���
�
�
�
�
�k�
�
�
�
�
�
�
�
�
�F�
�
�
�����A����Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1��$�$�Q��*�*�*��$�$�Q���-�-�-����A���B��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0��!�!�!�Q�'�'�'��!�!�!�a�T�*�*�*��M�M�"�a� � � �
�
�
�
�
�A�
�
�
�����A��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0��!�!�!�Q�'�'�'��!�!�!�a�T�*�*�*�*�*rc����Gd�d����}|jGd�dt����}|��}|�t||����|�t||f����|�||��|�||f��|jGd�d|����}|��}|�t||����|�t||f����|�||��|�||f��|�||�|����dS)Nc��eZdZdS)�Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.ANr
r
rr
rr *rrrr c��eZdZdS)�Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.BNr
r
rr
rr",��������rrc��eZdZdS)�Dtest_factory.<locals>.TestABC.test_register_as_class_deco.<locals>.CNr
r
rr
rr%4r#rr)rr�r.rrr)rrrrrrr6s      �r
�test_register_as_class_decoz9test_factory.<locals>.TestABC.test_register_as_class_deco)s����
�
�
�
�
�k�
�
�
�
�
�Z�
�
�
�
�
�F�
�
��Z�
�����A��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0��!�!�!�Q�'�'�'��!�!�!�a�T�*�*�*�
�Z�
�
�
�
�
�A�
�
��Z�
�����A��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0��!�!�!�Q�'�'�'��!�!�!�a�T�*�*�*��M�M�!�Q�Z�Z��]�]�+�+�+�+�+rc����Gd�d����}Gd�d��}|��}|�t||����|�t||f�������}|�|�����}|�||��|�t||����|�t||f����dS)Nc��eZdZdS)�Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.ANr
r
rr
rr)?rrrr c��eZdZdS)�Etest_factory.<locals>.TestABC.test_isinstance_invalidation.<locals>.BNr
r
rr
rr+Arrr)r/�
isinstancer�
assertGreaterr.)rrrr�	token_old�	token_newr6�abc_get_cache_tokens      ��r
�test_isinstance_invalidationz:test_factory.<locals>.TestABC.test_isinstance_invalidation>s$���
�
�
�
�
�k�
�
�
�
�
�
�
�
�
�
�
�
�����A����Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1�+�+�-�-�I�
�J�J�q�M�M�M�+�+�-�-�I����y�)�4�4�4��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0�0�0rc�V��Gd�d����}|�t��|�d|��|�d|f��|�t	t|����|�t	t|f����Gd�d|��}|�t
��Gd�dt
��}|�d	|��|�d	|f��|�t	t
|����|�t	t
|f����|�t	||����|�t	||f����dS)
Nc��eZdZdS)�Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.ANr
r
rr
rr4Nrrrr �*c��eZdZdS)�Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.BNr
r
rr
rr7Urrrc��eZdZdS)�Ctest_factory.<locals>.TestABC.test_registration_builtins.<locals>.CNr
r
rr
rr9X��������rr�)r�intrr.r�str�rrrrr6s    �r
�test_registration_builtinsz8test_factory.<locals>.TestABC.test_registration_builtinsMs����
�
�
�
�
�k�
�
�
�
�
�J�J�s�O�O�O��!�!�"�a�(�(�(��!�!�"�q�d�+�+�+��O�O�J�s�A�.�.�/�/�/��O�O�J�s�Q�D�1�1�2�2�2�
�
�
�
�
�A�
�
�
�
�J�J�s�O�O�O������C�����!�!�"�a�(�(�(��!�!�"�q�d�+�+�+��O�O�J�s�A�.�.�/�/�/��O�O�J�s�Q�D�1�1�2�2�2��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0�0�0rc����Gd�d����}|�|��Gd�d|��}|�t|j|��Gd�dt��}|�|��|�|��Gd�d	|��}|�|��|�t|j|��|�|��dS)
Nc��eZdZdS)�Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.ANr
r
rr
rrBarrrr c��eZdZdS)�Ftest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.A1Nr
r
rr
�A1rDdrrrEc��eZdZdS)�Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.BNr
r
rr
rrGgrrrc��eZdZdS)�Etest_factory.<locals>.TestABC.test_registration_edge_cases.<locals>.CNr
r
rr
rrIkrrr)rr1�RuntimeErrorr�)rrrErrr6s     �r
�test_registration_edge_casesz:test_factory.<locals>.TestABC.test_registration_edge_cases`s3���
�
�
�
�
�k�
�
�
�
�
�J�J�q�M�M�M�
�
�
�
�
�Q�
�
�
����l�B�K��;�;�;�
�
�
�
�
�F�
�
�
��K�K��N�N�N��K�K��N�N�N�
�
�
�
�
�A�
�
�
�
�J�J�q�M�M�M����l�A�J��:�:�:�
�J�J�q�M�M�M�M�Mrc�j��Gd�d����}|�td|jd��dS)Nc��eZdZdS)�@test_factory.<locals>.TestABC.test_register_non_class.<locals>.ANr
r
rr
rrNrrrrr zCan only register classesrY)r�r2r�rrr6s  �r
�test_register_non_classz5test_factory.<locals>.TestABC.test_register_non_classqs`���
�
�
�
�
�k�
�
�
�
��"�"�9�.I�#$�:�q�
2�
2�
2�
2�
2rc�.��Gd�d����}|�t||����|�t||f����Gd�d����}|�t||����|�t||f����|�t||����|�t||f����Gd�d����}|�|��Gd�d	|��}|�t||����|�t||f����Gd
�d|��}|�|��|�t||����|�t||f����|�t||����|�t||f����|�t||����|�t||f����|�t||����|�t||f����|�t||����|�t||f����|�t��Gd�d
t��}|�t||����|�t||f����|�d|��|�d|f��dS)Nc��eZdZdS)�Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.ANr
r
rr
rrSxrrrr c��eZdZdS)�Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.BNr
r
rr
rrU|rrrc��eZdZdS)�Itest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.CNr
r
rr
rrW�rrrc��eZdZdS)�Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.B1Nr
r
rr
rrY�rrrc��eZdZdS)�Jtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.C1Nr
r
rr
�C1r[�rrr\c��eZdZdS)�Mtest_factory.<locals>.TestABC.test_registration_transitiveness.<locals>.MyIntNr
r
rr
�MyIntr^�rrr_r5)r.rr/rr<r)rrrrrr\r_r6s       �r
� test_registration_transitivenessz>test_factory.<locals>.TestABC.test_registration_transitivenessws����
�
�
�
�
�k�
�
�
�
��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0�
�
�
�
�
�k�
�
�
�
����Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1����Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1�
�
�
�
�
�k�
�
�
�
�
�J�J�q�M�M�M�
�
�
�
�
�Q�
�
�
��O�O�J�r�1�-�-�.�.�.��O�O�J�r�A�4�0�0�1�1�1�
�
�
�
�
�Q�
�
�
��K�K��O�O�O����Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1����Z��2�.�.�/�/�/����Z��B�5�1�1�2�2�2��O�O�J�r�1�-�-�.�.�.��O�O�J�r�A�4�0�0�1�1�1��O�O�J�r�1�-�-�.�.�.��O�O�J�r�A�4�0�0�1�1�1��O�O�J�r�2�.�.�/�/�/��O�O�J�r�B�5�1�1�2�2�2��K�K�����
�
�
�
�
��
�
�
��O�O�J�u�a�0�0�1�1�1��O�O�J�u�q�d�3�3�4�4�4��!�!�"�a�(�(�(��!�!�"�q�d�+�+�+�+�+rc�������Gd�d�	���}|�t��5ti|��ddd��n#1swxYwY|�t��5td|��ddd��n#1swxYwYGd�d��}|�t��5t|��|��ddd��n#1swxYwYdd�d�d	�g}t|��D]�\}�G�fd
�d�	���}|�|���5|�t��5tt
|��ddd��n#1swxYwYddd��n#1swxYwY��d
��fd��G�fd�d�	���}|�t���5tt
|��ddd��dS#1swxYwYdS)Nc��eZdZdS)�Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.ANr
r
rr
rrc�rrrr r5c��eZdZdZdS)�Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.Cr5N)rrr�__mro__r
rr
rre�s���������rrc��gSr	r
)rs r
�<lambda>zMtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.<lambda>�s��"�rc��dS�Nr5r
r
rr
rhzMtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.<lambda>�s���rc��dgSrjr
r
rr
rhzMtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.<lambda>�s����rc���eZdZ�ZdS��Ftest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.SN�rrr�__subclasses__)�funcs�r
�Srn�s�������%)�N�N�Nrrr)�izexception from __subclasses__c�"��t����r	)�	Exception)�exc_msgs�r
�	raise_exczNtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.raise_exc�s�����(�(�(rc���eZdZ�ZdSrmro)rws�r
rrzFtest_factory.<locals>.TestABC.test_issubclass_bad_arguments.<locals>.S�s�������!*���r)r1r2r�	enumerate�subTestr<r�ru)
rrr�bogus_subclassesrsrrrvrqrwr6s
      @@@�r
�test_issubclass_bad_argumentsz;test_factory.<locals>.TestABC.test_issubclass_bad_arguments�s������
�
�
�
�
�k�
�
�
�
��"�"�9�-�-�
"�
"��2�q�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"��"�"�9�-�-�
"�
"��2�q�!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�

�
�
�
�
�
�
�
��"�"�9�-�-�
#�
#��1�1�3�3��"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#�����
���	 ��%�%5�6�6�
+�
+���4�*�*�*�*�*�*�*�+�*�*�*�*��\�\�A�\�&�&�+�+��*�*�9�5�5�+�+�"�3��*�*�*�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+��6�G�
)�
)�
)�
)�
)�
+�
+�
+�
+�
+�
+�
+�k�
+�
+�
+�
+��'�'�	�7�;�;�
#�
#��3��"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#�
#�
#s}�A�A�A�0B
�
B�B�?C$�$C(�+C(�3F�E0�$F�0E4�4F�7E4�8F�F	�F	�G)�)G-�0G-c���G�fd�dtj����|�t������|�t��f����Gd�d��}|�t|�����|�t|�f����Gd�d��}|�t|�����|�t|�f����dS)Nc�*��eZdZe�fd���ZdS)�:test_factory.<locals>.TestABC.test_subclasshook.<locals>.Ac�,��|�ur	d|jvStS)Nr)�__dict__�NotImplemented)r;rrs  �r
�__subclasshook__zKtest_factory.<locals>.TestABC.test_subclasshook.<locals>.A.__subclasshook__�s����a�x�x�$��
�2�2�)�)rN)rrrrIr�)rs�r
rr�s8��������*�*�*�*���*�*�*rrr c��eZdZdZdS)�:test_factory.<locals>.TestABC.test_subclasshook.<locals>.Br5Nr�r
rr
rr��s���������rrc��eZdZdZdS)�:test_factory.<locals>.TestABC.test_subclasshook.<locals>.Cr5N)rrr�spamr
rr
rr��s���������rr)rror/rr.)rrrrs   @r
�test_subclasshookz/test_factory.<locals>.TestABC.test_subclasshook�sL���
*�
*�
*�
*�
*�
*�
*�c�k�
*�
*�
*�
*�
���Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1�
�
�
�
�
�
�
�
��O�O�J�q�!�,�,�-�-�-��O�O�J�q�1�$�/�/�0�0�0�
�
�
�
�
�
�
�
����Z��1�-�-�.�.�.����Z��A�4�0�0�1�1�1�1�1rc�����Gd�d����}G�fd�dt���Gd�d|���}|��jd��|��|��jd	��dS)
Nc��eZdZdS)�Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.ANr
r
rr
rr��rrrr c�&���eZdZdZ��fd�Z�xZS)�Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.Brc�f���xjdz
c_t���|��Sr)�counterr&�__new__)r;rr(s ��r
r�zPtest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.B.__new__�s(����I�I��N�I�I� �7�7�?�?�3�/�/�/r)rrrr�r�r+)r(rs@�r
rr��sC����������0�0�0�0�0�0�0�0�0�0rrc��eZdZdS)�Htest_factory.<locals>.TestABC.test_all_new_methods_are_called.<locals>.CNr
r
rr
rr��rrrrr)r�r3r�)rrrrr6s   @�r
�test_all_new_methods_are_calledz=test_factory.<locals>.TestABC.test_all_new_methods_are_called�s�����
�
�
�
�
�k�
�
�
�
�
0�
0�
0�
0�
0�
0�
0�F�
0�
0�
0�

�
�
�
�
�A�q�
�
�
����Q�Y��*�*�*�
�A�C�C�C����Q�Y��*�*�*�*�*rc�`�|�ttjd����dS)N�	__slots__)r.r0rrmrs r
�test_ABC_has___slots__z4test_factory.<locals>.TestABC.test_ABC_has___slots__�s&���O�O�G�C�G�[�9�9�:�:�:�:�:rc	���d�}Gd�d��}Gd�d��}Gd�d|�||����}|�|j���dS)Nc�l���G��fd�dt��}t�|ddi��S)Nc���eZdZ��fd�ZdS)�^test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclassc����|�|��Sr	r
)r;�name�
this_bases�d�basesrs    ��r
r�zftest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass.<locals>.metaclass.__new__�s���#�t�D�%��3�3�3rN)rrrr�)r�rs��r
r!r��s3�������4�4�4�4�4�4�4�4rr!�temporary_classr
)rnr�)rr�r!s`` r
�with_metaclasszKtest_factory.<locals>.TestABC.test_tricky_new_works.<locals>.with_metaclass�sX����4�4�4�4�4�4�4�4��4�4�4��|�|�I�/@�"�b�I�I�Irc��eZdZdS)�>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.ANr
r
rr
rr��r:rrc��eZdZdS)�>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.BNr
r
rr
rr��r:rrc��eZdZdS)�>test_factory.<locals>.TestABC.test_tricky_new_works.<locals>.CNr
r
rr
rr��rrr)r3r()rr�rrrr6s     �r
�test_tricky_new_worksz3test_factory.<locals>.TestABC.test_tricky_new_works�s����
J�
J�
J�

�L�L�L�L�L�L�L��L�L�L�L�L�L�L�
�
�
�
�
�N�N�;��1�5�5�
�
�
����Q�[�+�6�6�6�6�6rc�2��Gd�d����}|`|�|jdh��|�t	|d����tj|��|�|jt����|��dS)Nc�.�eZdZejd���ZdS)�8test_factory.<locals>.TestABC.test_update_del.<locals>.Ac��dSr	r
rs r
rz<test_factory.<locals>.TestABC.test_update_del.<locals>.A.foo�r�rN�rrrrrhrr
rr
rr��r�rrr r)rr3r�r/r0r�update_abstractmethodsr�rOs  �r
�test_update_delz-test_factory.<locals>.TestABC.test_update_del�s����
�
�
�
�
�k�
�
�
�
�
�����Q�2�U�G�<�<�<����W�Q��.�.�/�/�/��&�q�)�)�)����Q�2�C�E�E�:�:�:�
�A�C�C�C�C�Crc���Gd�d����}tjd���}||_tj|��|�|jddh��d}|�t||��dS)Nc�.�eZdZejd���ZdS)�Htest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.Ac��dSr	r
rs r
rzLtest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.A.barr�rN)rrrrrhrr
rr
rr�r�rrr c��dSr	r
rs r
�updated_foozRtest_factory.<locals>.TestABC.test_update_new_abstractmethods.<locals>.updated_foo����rrrz&class A with abstract methods bar, foo)rrhrr�r3r�r�r2)rrr�r�r6s    �r
�test_update_new_abstractmethodsz=test_factory.<locals>.TestABC.test_update_new_abstractmethods
s����
�
�
�
�
�k�
�
�
�
�
�
�
�
� �
�
� �A�E��&�q�)�)�)����Q�2�U�E�N�C�C�C�:�C��"�"�9�c�1�5�5�5�5�5rc�P��Gd�d����}Gd�d|��}d}|�t||��|�|jdh��d�|_tj|��|��|�|jt����dS)	Nc�.�eZdZejd���ZdS)�Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.Ac��dSr	r
rs r
rzGtest_factory.<locals>.TestABC.test_update_implementation.<locals>.A.foor�rNr�r
rr
rr�r�rrr c��eZdZdS)�Ctest_factory.<locals>.TestABC.test_update_implementation.<locals>.BNr
r
rr
rr�#rrr� class B with abstract method foorc��dSr	r
rs r
rhzJtest_factory.<locals>.TestABC.test_update_implementation.<locals>.<lambda>*s���r)r�r2r3r�rrr�r��rrrr�r6s    �r
�test_update_implementationz8test_factory.<locals>.TestABC.test_update_implementations����
�
�
�
�
�k�
�
�
�
�

�
�
�
�
�A�
�
�
�5�C��"�"�9�c�1�5�5�5����Q�2�U�G�<�<�<�%�%�A�E��&�q�)�)�)�
�A�C�C�C����Q�2�C�E�E�:�:�:�:�:rc����Gd�d����}d�}tj|Gd�d|������}|��|�|jt	����dS)Nc�.�eZdZejd���ZdS)�Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.Ac��dSr	r
rs r
rzEtest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.A.foo3r�rNr�r
rr
rr�2r�rrr c��d�|_|S)Nc��dSr	r
rs r
rhzatest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.class_decorator.<locals>.<lambda>8s��t�r)rr:s r
�class_decoratorzOtest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.class_decorator7s��+�+����
rc��eZdZdS)�Atest_factory.<locals>.TestABC.test_update_as_decorator.<locals>.BNr
r
rr
rr�;s�������rr)rr�r3r�r�)rrr�rr6s    �r
�test_update_as_decoratorz6test_factory.<locals>.TestABC.test_update_as_decorator1s����
�
�
�
�
�k�
�
�
�
�

�
�
��
'�
�
�
�
�
�
�A�
�
��_�(�
'�
�
�A�C�C�C����Q�2�C�E�E�:�:�:�:�:rc���Gd�d��}tjd���}||_tj|��|��|�t|d����dS)Nc��eZdZdS)�<test_factory.<locals>.TestABC.test_update_non_abc.<locals>.ANr
r
rr
rr�Drrrc��dSr	r
rs r
r�zFtest_factory.<locals>.TestABC.test_update_non_abc.<locals>.updated_fooGr�rr�)rrhrr�r/r0)rrr�s   r
�test_update_non_abcz1test_factory.<locals>.TestABC.test_update_non_abcCs���
�
�
�
�
�
�
�
��
�
�
� �
�
� �A�E��&�q�)�)�)�
�A�C�C�C����W�Q�(=�>�>�?�?�?�?�?rc���Gd�d����}Gd�d|��}|��|`tj|��d}|�t||��dS)Nc�.�eZdZejd���ZdS)�Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.Ac��dSr	r
rs r
rzKtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.A.fooRr�rNr�r
rr
rr�Qr�rrr c��eZdZd�ZdS)�Gtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.Bc��dSr	r
rs r
rzKtest_factory.<locals>.TestABC.test_update_del_implementation.<locals>.B.fooW����DrNr�r
rr
rr�V�#����������rrr��rrr�r�r2r�s    �r
�test_update_del_implementationz<test_factory.<locals>.TestABC.test_update_del_implementationPs����
�
�
�
�
�k�
�
�
�
�

�
�
�
�
�A�
�
�
�
�A�C�C�C����&�q�)�)�)�4�C��"�"�9�c�1�5�5�5�5�5rc����Gd�d����}Gd�d|��}Gd�d|��}|��|`tj|��d}|�t||��dS)	Nc�.�eZdZejd���ZdS)�Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Ac��dSr	r
rs r
rzOtest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.A.fooer�rNr�r
rr
rr�dr�rrr c��eZdZdS)�Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.BNr
r
rr
rr�irrrc��eZdZd�ZdS)�Ktest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.Cc��dSr	r
rs r
rzOtest_factory.<locals>.TestABC.test_update_layered_implementation.<locals>.C.foomr�rNr�r
rr
rr�lr�rrz class C with abstract method foor�)rrrrr�r6s     �r
�"test_update_layered_implementationz@test_factory.<locals>.TestABC.test_update_layered_implementationcs����
�
�
�
�
�k�
�
�
�
�

�
�
�
�
�A�
�
�
�
�
�
�
�
�A�
�
�
�
�A�C�C�C����&�q�)�)�)�4�C��"�"�9�c�1�5�5�5�5�5rc�(��Gd�d����}Gd�d����}Gd�d||��}|�|jdh��|`tj|��|�|jt����|��dS)	Nc�.�eZdZejd���ZdS)�Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Ac��dSr	r
rs r
rzJtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.A.foo{r�rNr�r
rr
rr�zr�rrr c��eZdZd�ZdS)�Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Bc��dSr	r
rs r
rzJtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.B.foo�r�rNr�r
rr
rr�r�rrc�.�eZdZejd���ZdS)�Ftest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.Cc��dSr	r
rs r
rzJtest_factory.<locals>.TestABC.test_update_multi_inheritance.<locals>.C.foo�r�rNr�r
rr
rr��r�rrr)r3r�rrr�r�r>s    �r
�test_update_multi_inheritancez;test_factory.<locals>.TestABC.test_update_multi_inheritanceys����
�
�
�
�
�k�
�
�
�
�

�
�
�
�
�k�
�
�
�
�
�
�
�
�
�A�q�
�
�
�

���Q�2�U�G�<�<�<����&�q�)�)�)����Q�2�C�E�E�:�:�:�
�A�C�C�C�C�CrN)"rrrrprtr7rKr]r�r�r�r�r�rrr&r1r?rKrPr`r|r�r�r�r�r�r�r�r�r�r�r�r�)r6r0s��r
�TestABCraHs��������	+�	+�	+�	C�	C�	C�	)�	)�	)�	)�	)�$	-�	-�	-�	-�	-�(	+�	+�	+�	+�	+�(	6�	6�	6�	6�	6�		6�		6�		6�		6�		6�	/�	/�	/�	/�	/�8	(�	(�	(�	(�	(�>	9�	9�	9�	9�	9�<	�	�	�	�	�	+�	+�	+�	+�	+�0	,�	,�	,�	,�	,�*
	1�
	1�
	1�
	1�
	1�
	1�	1�	1�	1�	1�	1�&	�	�	�	�	�"	2�	2�	2�	2�	2�%	,�%	,�%	,�%	,�%	,�N.	#�.	#�.	#�.	#�.	#�`	2�	2�	2�$	+�	+�	+�	+�	+�	;�	;�	;�
	7�
	7�
	7�
	7�
	7�
	�
	�
	�
	�
	� 	6�	6�	6�	6�	6� 	;�	;�	;�	;�	;�(	;�	;�	;�	;�	;�$	@�	@�	@�	6�	6�	6�	6�	6�&	6�	6�	6�	6�	6�,	�	�	�	�	�	�	rr�c�$��eZdZ�fd�Z�fd�ZdS)�-test_factory.<locals>.TestABCWithInitSubclassc	����Gd�d����}i�G�fd�d��}Gd�d||dd	d
���}|��tdd	d
�����dS)Nc��eZdZdZdS)�\test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.abc_ABCr
N)rrrr�r
rr
�abc_ABCr��s�������	�	�	rr�r c�"���eZdZ��fd�Z�xZS)�htest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargsc�r��t�������|��dSr	�r&�__init_subclass__�update�r;�kwargsr(�saved_kwargss  ��r
r�zztest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceivesClassKwargs.__init_subclass__��3����G�G�-�-�/�/�/� �'�'��/�/�/�/�/r�rrrr�r+�r(rs@�r
�ReceivesClassKwargsr���>��������0�0�0�0�0�0�0�0�0�0rrc��eZdZdS)�]test_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass.<locals>.ReceiverNr
r
rr
�Receiverr�rrr	r�r)r�y�z�r3�dict)rr�rr	rr6s    @�r
�test_works_with_init_subclasszKtest_factory.<locals>.TestABCWithInitSubclass.test_works_with_init_subclass�s�����
�
�
�
�
�K�
�
�
�
��L�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
�
�
�
�
�.��1��Q�
�
�
�
����\�4�!�q�A�+>�+>�+>�?�?�?�?�?rc����i�G�fd�d��}Gd�d|�d���}|��td�����dS)Nc�"���eZdZ��fd�Z�xZS)�otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.Ac�r��t�������|��dSr	r�r�s  ��r
r�z�test_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.A.__init_subclass__�rrrrs@�r
rr�rrrc��eZdZdS)�otest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass.<locals>.BNr
r
rr
rr�rrr�test)r!r�)r�r
)rrrrr6s   @�r
�6test_positional_only_and_kwonlyargs_with_init_subclasszdtest_factory.<locals>.TestABCWithInitSubclass.test_positional_only_and_kwonlyargs_with_init_subclass�s������L�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�

�
�
�
�
�A��6�
�
�
�
����\�4�V�+<�+<�+<�=�=�=�=�=rN)rrrrrr^s�r
�TestABCWithInitSubclassr��sL�������
	@�
	@�
	@�
	@�
	@�
	>�
	>�
	>�
	>�
	>�
	>�
	>rr)�unittest�TestCase)r6r0r_r�rs``   r
�test_factoryrs�����5+�5+�5+�5+�5+�5+�5+��)�5+�5+�5+�pH	�H	�H	�H	�H	�H	�H	�H	�(�#�H	�H	�H	�V>�>�>�>�>�>�>�(�"3�>�>�>�2�'�#:�:�:r�__main__)rr�_py_abc�inspectrrro�get_cache_token�TestLegacyAPI_Py�
TestABC_Py�TestABCWithInitSubclass_Py�TestLegacyAPI_C�	TestABC_C�TestABCWithInitSubclass_Cr�mainr
rr
�<module>r's��������
�
�
�
�����������]
;�]
;�]
;�~<H�<���HK�H[�<]�<]�8��*�8�8D��W�_�EL�E\�9^�9^�5���5��z����H�M�O�O�O�O�O��r