�
�(�g � � � G d � d� Z y)c � � e Zd Zd� Zy)�ExceptionIsLikeMixinc �^ � |�|�y|�| j d|� �� |�| j d|�d�� t |t � sS| j |j |j � | j |j
d |j
d � y| j |j |j � | j t |j � t |j � � t |j |j � D ] \ }}| j ||� � y)a
Passes when the provided `exc` matches the structure of `template`.
Individual exceptions don't have to be the same objects or even pass
an equality test: they only need to be the same type and contain equal
`exc_obj.args`.
Nzunexpected exception: zexpected an exception like z
, got None� )�fail�
isinstance�ExceptionGroup�assertEqual� __class__�args�message�len�
exceptions�zip�assertExceptionIsLike)�self�exc�template�e�ts �,/usr/lib/python3.12/test/support/testcase.pyr z*ExceptionIsLikeMixin.assertExceptionIsLike s� � � �;�8�+�����I�I�.�s�e�4�5��;��I�I�3�H�<�z�J�K��#�~�.����S�]�]�H�,>�,>�?����S�X�X�a�[�(�-�-��*:�;����S�[�[�(�*:�*:�;����S����0�#�h�6I�6I�2J�K��C�N�N�H�,?�,?�@�
1���1��*�*�1�a�0�
1� N)�__name__�
__module__�__qualname__r � r r r r s � �1r r N)r r r r �<module>r s ��1� 1r |