HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/jsonschema/tests/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/jsonschema/tests/__pycache__/test_validators.cpython-311.pyc
�

�r�c�&����ddlmZddlmZmZddlmZddlmZddl	m
Z
ddlmZm
Z
ddlmZddlZddlZddlZddlZddlZddlZddlZdd	lmZmZmZmZmZdd
lmZd�ZGd�d
e��ZGd�de��Z Gd�de��Z!Gd�de"��Z#Gd�de#e"��Z$Gd�de"��Z%Gd�de%e$e��Z&Gd�de%e$e��Z'Gd�de$e��Z(Gd�de$e��Z)Gd �d!e$e��Z*Gd"�d#e$e��Z+Gd$�d%e��Z,Gd&�d'e��Z-Gd(�d)e��Z.d*�Z/ej0Gd+�d,e"����Z1ej0Gd-�d.e"����Z2dS)/�)�annotations)�deque�
namedtuple)�contextmanager)�Decimal)�BytesIO)�TestCase�mock)�pathname2urlN)�
FormatChecker�TypeChecker�
exceptions�	protocols�
validators)�bugc#�fK�|D]+}|�dd��tjdi|��V��,dS)N�messagezYou told me to fail!�)�
setdefaultr�ValidationError)�	validator�errors�instance�schema�eachs     �B/usr/lib/python3/dist-packages/jsonschema/tests/test_validators.py�failrsT�����1�1�����	�#9�:�:�:��(�0�0�4�0�0�0�0�0�0�1�1�c�t�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�ZdS)�TestCreateAndExtendc�*�|�|jtjt	tj����ddi|_dti|_t��|_tj	|j|j|j���|_
dS)N�$idzsome://meta/schemar)�meta_schemar�type_checker)�
addCleanup�assertEqualr�
_META_SCHEMAS�dictr#rr
r$�create�	Validator��selfs r�setUpzTestCreateAndExtend.setUp#s���������$���)�*�*�	
�	
�	
�"�#7�8���!�4�.���'�M�M���#�*��(����*�
�
�
����rc��|�|jj|jj|jjf|j|j|jf��dS�N)r&r*�
VALIDATORS�META_SCHEMA�TYPE_CHECKERrr#r$r+s r�
test_attrszTestCreateAndExtend.test_attrs3sY�������)���*���+�
�
��� ��!��
	
�
	
�
	
�
	
�
	
rc�j�dgi}|�|�|��j|��dS)Nr)r&r*r�r,rs  r�	test_initzTestCreateAndExtend.test_init@s6���"����������/�/�6��?�?�?�?�?rc��dgi}|�|��}t|�d����}|�|g��dS)Nr�hello)r*�list�iter_errorsr&�r,rrrs    r�test_iter_errors_successfulz/TestCreateAndExtend.test_iter_errors_successfulDsS���"����N�N�6�*�*�	��i�+�+�G�4�4�5�5�������$�$�$�$�$rc
��dddigi}|�|��}tjdd|dddigtdg�����}t	|�d����}|�t|��d��|�|d���|�����dS)NrrzWhoops!�goodbye)rrr�validator_value�schema_path�r)	r*rrrr9r:r&�len�	_contents)r,rr�expected_errorrs     r�test_iter_errors_one_errorz.TestCreateAndExtend.test_iter_errors_one_errorKs����I�y�1�2�3���N�N�6�*�*�	�#�3�����'��3�4��v�h���

�
�
���i�+�+�I�6�6�7�7������V���a�(�(�(�������,�,�.�.��0H�0H�0J�0J�K�K�K�K�Krc���dddiddd�ddigi}|�|��}t|�d����}|�t	|��d	��dS)
Nrr�FirstzSecond!�asdf)rr�Thirdr>�)r*r9r:r&rBr;s    r� test_iter_errors_multiple_errorsz4TestCreateAndExtend.test_iter_errors_multiple_errors\s|����G�$�%�F�;�;��G�$��
���N�N�6�*�*�	��i�+�+�I�6�6�7�7������V���a�(�(�(�(�(rc���tjddid���}|�tjjd��|�|jd��|�|jd��dS)Nr"�	something�
my version�r#�version�MyVersionValidator)rr)r%r'�popr&�__name__�__qualname__�r,r*s  r�.test_if_a_version_is_provided_it_is_registeredzBTestCreateAndExtend.test_if_a_version_is_provided_it_is_registeredisz���%���,� �
�
�
�	�	
���
�0�4�k�B�B�B�����+�-A�B�B�B�����/�1E�F�F�F�F�Frc���tjddid���}|�tjjd��|�t
|i����d��dS)Nr"rMrNrOz2MyVersionValidator(schema={}, format_checker=None))rr)r%r'rRr&�reprrUs  r�	test_reprzTestCreateAndExtend.test_reprrsx���%���,� �
�
�
�	�	
���
�0�4�k�B�B�B�������2�����@�	
�	
�	
�	
�	
rc��tjddid���}|�tjjd��|�t
|dttd����i����d��dS)Nr"rMrNrO�ai�zNMyVersionValidator(schema={'a': [0, 1, 2, 3, 4, 5, ...]}, format_checker=None))	rr)r%r'rRr&rXr9�rangerUs  r�test_long_reprz"TestCreateAndExtend.test_long_repr}s����%���,� �
�
�
�	�	
���
�0�4�k�B�B�B�������C��e�D�k�k�!2�!2�3�4�4�5�5�'�	
�	
�	
�	
�	
rc��tji���}|�t|i����d��dS)N�r#z)Validator(schema={}, format_checker=None))rr)r&rXrUs  r�test_repr_no_versionz(TestCreateAndExtend.test_repr_no_version�sM���%�"�5�5�5�	�������2�����7�	
�	
�	
�	
�	
rc��tjddid���}|�tjjd��|�|jd��dS)Nr"rMzfoo-barrO�FooBarValidator)rr)r%r'rRr&rTrUs  r�-test_dashes_are_stripped_from_validator_nameszATestCreateAndExtend.test_dashes_are_stripped_from_validator_names�s`���%���,��
�
�
�	�	
���
�0�4�k�B�B�B�����/�1B�C�C�C�C�Crc��ttj��}tjddi���|�tj|��dS)N�idr_)r(rr'r)r&)r,�originals  r�6test_if_a_version_is_not_provided_it_is_not_registeredzJTestCreateAndExtend.test_if_a_version_is_not_provided_it_is_not_registered�sI���
�0�1�1����t�T�l�3�3�3�3�����1�8�<�<�<�<�<rc���d}d|i}tj|dd����|�tjj|��|�|tj��dS)N�meta schema idrerNc�.�|�dd��S�Nre���get��ss r�<lambda>zMTestCreateAndExtend.test_validates_registers_meta_schema_id.<locals>.<lambda>����A�E�E�$��O�O�r�r#rP�id_of�rr)r%r'rR�assertIn�r,�meta_schema_key�my_meta_schemas   r�'test_validates_registers_meta_schema_idz;TestCreateAndExtend.test_validates_registers_meta_schema_id�sp��*����0����&� �+�+�	
�	
�	
�	
�
	
���
�0�4�o�F�F�F��
�
�o�z�'?�@�@�@�@�@rc���d}d|i}tj|d���|�tjj|��|�|tj��dS)N�meta schema $idr"rNrOrurws   r�.test_validates_registers_meta_schema_draft6_idzBTestCreateAndExtend.test_validates_registers_meta_schema_draft6_id�sj��+����1����&� �	
�	
�	
�	
�	
���
�0�4�o�F�F�F��
�
�o�z�'?�@�@�@�@�@rc���tjid����|�t�fd�dgfddddd	ifd
fD������dS)Nr)r#rc3�^�K�|]'\}}�i���||���V��(dS))r�typeN)�is_type)�.0r�rr*s   �r�	<genexpr>z@TestCreateAndExtend.test_create_default_types.<locals>.<genexpr>�sV�������"�D�(��	�"�
�
�%�%�x�d�%�C�C������r�array)�booleanT)�integer�)�nullN)�numberg(@�object)�string�foo)rr)�
assertTrue�allrUs @r�test_create_default_typesz-TestCreateAndExtend.test_create_default_types�s�����%�"��D�D�D�	����������b�M�%�#�"�$��r�N�%�'����
�
�
	
�
	
�
	
�
	
�
	
rc�B�t|jj��}t��}t	j|jd|i���}|�|j|j|j|jjft||���|jj|jj|f��dS)N�new)r)r�)	r(r*r0r�r�extendr&r1r2)r,rfr��Extendeds    r�test_extendzTestCreateAndExtend.test_extend�s������1�2�2���h�h���$��N��s�|�
�
�
��	
����#��$��%���)�	
��X�3�'�'�'���*���+��	�
	
�	
�	
�	
�	
rc�D���fd�}d}d|d�}tj|�j�j|���}��|�|j��|��tj|��}��|�|j��|��dS)zK
        Extending a validator preserves its notion of schema IDs.
        c�`��|�d�j�|����S)N�__test__)rnr*�ID_OF)rr,s �rrtz3TestCreateAndExtend.test_extend_idof.<locals>.id_of�s'����:�:�j�$�.�*>�*>�v�*F�*F�G�G�Grzthe://correct/id/zthe://wrong/id/)r"r�)r#rr$rtN)rr)r$r&r�r1r�)r,rt�
correct_idr#�Original�Deriveds`     r�test_extend_idofz$TestCreateAndExtend.test_extend_idof�s����	H�	H�	H�	H�	H�(�
�$�"�
�
���$�#����*��	
�
�
��	
�������(<�=�=�z�J�J�J��#�H�-�-��������w�':�;�;�Z�H�H�H�H�HrN)rS�
__module__rTr-r3r6r<rErKrVrYr]r`rcrgrzr}r�r�r�rrrr r "s*������
�
�
� 
�
�
�@�@�@�%�%�%�L�L�L�")�)�)�G�G�G�	
�	
�	
�
�
�
�
�
�
�D�D�D�=�=�=�
A�A�A�
A�
A�
A�
�
�
�"
�
�
�,I�I�I�I�Irr c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-S).�TestValidationErrorMessagesc�f�|�dtj��}|�|��||g|�Ri|��}t	|�|����}|�|d|�����|�t|��dd|�����|dj	S)N�clszNo errors were raised for )�msgrAz"Expected exactly one error, found r)
rRr�_LATEST_VERSION�check_schemar9r:r�r&rBr)r,rr�args�kwargsr�rrs        r�message_forz'TestValidationErrorMessages.message_for�s����j�j��
� :�;�;������ � � ��C��0��0�0�0��0�0�	��i�+�+�H�5�5�6�6������$M��$M�$M��N�N�N������K�K�
�?�V�?�?�	�	
�	
�	
�
�a�y� � rc�d�|�dddi���}|�|d��dS�NrAr�r��rr�1 is not of type 'string'�r�r&�r,rs  r�test_single_type_failurez4TestValidationErrorMessages.test_single_type_failures<���"�"�A�v�x�6H�"�I�I������"=�>�>�>�>�>rc�f�|�dddgi���}|�|d��dSr�r�r�s  r�test_single_type_list_failurez9TestValidationErrorMessages.test_single_type_list_failures>���"�"�A�v��z�6J�"�K�K������"=�>�>�>�>�>rc��d}|�ddt|��i���}|�|d��dS)N)r�r�rAr�r�z#1 is not of type 'string', 'object')r�r9r&)r,�typesrs   r�test_multiple_type_failurez6TestValidationErrorMessages.test_multiple_type_failuresG��"���"�"�A�v�t�E�{�{�6K�"�L�L������"G�H�H�H�H�Hrc��dddd�gi}|�d|tj���}|�|d��dS)Nr��FoorJ)�name�minimumrA�rrr�z1 is not of type 'Foo'�r�r�Draft3Validatorr&�r,rrs   r�#test_object_with_named_type_failurez?TestValidationErrorMessages.test_object_with_named_type_failures\���E�a�8�8�9�:���"�"����*�#�
�
��
	
����":�;�;�;�;�;rc�d�|�dddi���}|�|d��dS)NrAr��r�z1 is less than the minimum of 2r�r�s  r�test_minimumz(TestValidationErrorMessages.test_minimums;���"�"�A�y�!�n�"�E�E������"C�D�D�D�D�Drc�d�|�dddi���}|�|d��dS)NrA�maximumrr�z"1 is greater than the maximum of 0r�r�s  r�test_maximumz(TestValidationErrorMessages.test_maximums;���"�"�A�y�!�n�"�E�E������"F�G�G�G�G�Grc��d\}}d||ii}|�ddi|tj���}|�|d��dS�N��barr��dependenciesr�r�r�z'foo' is a dependency of 'bar'r��r,�depend�onrrs     r� test_dependencies_single_elementz<TestValidationErrorMessages.test_dependencies_single_element!sb��!�
��� �6�2�,�/���"�"��Q�Z���*�#�
�
��
	
����"B�C�C�C�C�Crc��dddigi}|�dd|gitj���}|�|d��dS)Nr�r�rJrAr�z+1 is not of type {'type': [{'minimum': 3}]}r�)r,r�rs   r�-test_object_without_title_type_failure_draft3zITestValidationErrorMessages.test_object_without_title_type_failure_draft3+sj���)�Q��(�)���"�"���T�F�#��*�#�
�
��
	
����9�	
�	
�	
�	
�	
rc��d\}}d||gii}|�ddi|tj���}|�|d��dSr�r�r�s     r�test_dependencies_list_draft3z9TestValidationErrorMessages.test_dependencies_list_draft37�d��!�
��� �6�B�4�.�1���"�"��Q�Z���*�#�
�
��
	
����"B�C�C�C�C�Crc��d\}}d||gii}|�ddi|tj���}|�|d��dSr�)r�r�Draft7Validatorr&r�s     r�test_dependencies_list_draft7z9TestValidationErrorMessages.test_dependencies_list_draft7Ar�rc�~�|�dggdd�tj���}|�d|��dS)Nr�F��items�additionalItemsr�z(2 was unexpected)�r�rr�rvr�s  r�#test_additionalItems_single_failurez?TestValidationErrorMessages.test_additionalItems_single_failureKsO���"�"��S��E�:�:��*�#�
�
��
	
�
�
�*�G�4�4�4�4�4rc��|�gd�gdd�tj���}|�d|��dS)N�rAr�rJFr�r�z(1, 2, 3 were unexpected)r�r�s  r�&test_additionalItems_multiple_failureszBTestValidationErrorMessages.test_additionalItems_multiple_failuresSsQ���"�"��Y�Y��E�:�:��*�#�
�
��
	
�
�
�1�7�;�;�;�;�;rc�p�d}ddi}|�|di|���}|�d|��dS)Nr��additionalPropertiesFr�r�z('foo' was unexpected)�r�rv)r,�
additionalrrs    r�(test_additionalProperties_single_failurezDTestValidationErrorMessages.test_additionalProperties_single_failure[sH���
�(�%�0���"�"�Z��O�F�"�K�K���
�
�.��8�8�8�8�8rc�(�ddi}|�t�ddg��|���}|�t	d��|��|�t	d��|��|�d|��dS)Nr�Fr�r�r�zwere unexpected))r�r(�fromkeysrvrXr�s   r�+test_additionalProperties_multiple_failureszGTestValidationErrorMessages.test_additionalProperties_multiple_failuresas���(�%�0���"�"��]�]�E�5�>�2�2��#�
�
��
	
�
�
�d�5�k�k�7�+�+�+��
�
�d�5�k�k�7�+�+�+��
�
�(�'�2�2�2�2�2rc�l�ddi}|�ddi|���}|�d|��dS)N�constr�r�r�r�z12 was expectedr�r�s   r�
test_constz&TestValidationErrorMessages.test_constlsL���2����"�"��U�^��#�
�
��	
�
�
�'��1�1�1�1�1rc��dddii}|�digg|tj���}|�|d��dS)N�containsr�r�r�r�z4None of [2, {}, []] are valid under the given schema)r�r�Draft6Validatorr&r�s   r�test_contains_draft_6z1TestValidationErrorMessages.test_contains_draft_6tsf���w��m�,���"�"���R�[���*�#�
�
��
	
����B�	
�	
�	
�	
�	
rc�T�td���}|�d��d���ddi}|�d||���}|�t	d��|��|�t	d��|��|�d|��dS)	Nr)�formats�thingc��dS�NFr)�values rrqzQTestValidationErrorMessages.test_invalid_format_default_message.<locals>.<lambda>�s��e�r�format�bla)rr�format_checkerzis not a)r�checksr�rvrX)r,�checkerrrs    r�#test_invalid_format_default_messagez?TestValidationErrorMessages.test_invalid_format_default_message�s�����+�+�+������w��� 3� 3�4�4�4��G�$���"�"���"�#�
�
��	
�
�
�d�5�k�k�7�+�+�+��
�
�d�7�m�m�W�-�-�-��
�
�j�'�*�*�*�*�*rc��ddddiddid�d�}|�ddi|tj�	��}|�|d
�td��td��td������|�dd
d�|tj�	��}|�|d�td��td��td��td������dS)Nr�Fr�r�)�^abc$�^def$)r�r��patternProperties�zebra�{r�z,{} does not match any of the regexes: {}, {}r�r�i�)r��fishz.{}, {} do not match any of the regexes: {}, {}r�)r�r�Draft4Validatorr&r�rXr�s   r�1test_additionalProperties_false_patternPropertieszMTestValidationErrorMessages.test_additionalProperties_false_patternProperties�s.��"�*/� &��1� &��1�(�(�����"�"��s�^���*�#�
�
��
	
����:�A�A��W�
�
�t�G�}�}�d�7�m�m�
�
�	
�	
�	
��"�"�"�C�0�0���*�#�
�
��
	
����<�C�C��V���d�7�m�m�T�'�]�]�D��M�M�
�
�	
�	
�	
�	
�	
rc�`�|�dd���}|�|d��dS)NrMFr�z'False schema does not allow 'something'r�r�s  r�test_False_schemaz-TestValidationErrorMessages.test_False_schema�sA���"�"� ��#�
�
��	
����"K�L�L�L�L�Lrc�d�|�dddi���}|�|d��dS)NrJ�
multipleOfr�r�z3 is not a multiple of 2r�r�s  r�test_multipleOfz+TestValidationErrorMessages.test_multipleOf�sF���"�"�� �!�$�#�
�
��	
����"<�=�=�=�=�=rc�d�|�gddi���}|�|d��dS)N�minItemsr�r�z[] is too shortr�r�s  r�
test_minItemsz)TestValidationErrorMessages.test_minItems�s;���"�"�B�
�A��"�G�G������"3�4�4�4�4�4rc�h�|�gd�ddi���}|�|d��dS)Nr��maxItemsr�r�z[1, 2, 3] is too longr�r�s  r�
test_maxItemsz)TestValidationErrorMessages.test_maxItems�s?���"�"�I�I�I�z�1�o�"�N�N������"9�:�:�:�:�:rc�n�|�gd�diigd����}|�|d��dS)N�rAr�r��F�r��prefixItemsr�z%Expected at most 2 items, but found 4r�r�s  r�test_prefixItems_with_itemsz7TestValidationErrorMessages.test_prefixItems_with_items�sS���"�"�%�%�%�"�B��8�<�<�#�
�
��	
����"I�J�J�J�J�Jrc�d�|�dddi���}|�|d��dS)Nrl�	minLengthr�r�z'' is too shortr�r�s  r�test_minLengthz*TestValidationErrorMessages.test_minLength�sF���"�"����#�#�
�
��	
����"3�4�4�4�4�4rc�d�|�dddi���}|�|d��dS)N�abc�	maxLengthr�r�z'abc' is too longr�r�s  r�test_maxLengthz*TestValidationErrorMessages.test_maxLength�sF���"�"����#�#�
�
��	
����"5�6�6�6�6�6rc�d�|�dddi���}|�|d��dS)N�bbb�patternz^a*$r�z'bbb' does not match '^a*$'r�r�s  r�test_patternz(TestValidationErrorMessages.test_pattern�sF���"�"���v�&�#�
�
��	
����"?�@�@�@�@�@rc�h�|�gdddii���}|�|d��dS)Nr�r�r�r�z3[] does not contain items matching the given schemar�r�s  r�test_does_not_containz1TestValidationErrorMessages.test_does_not_contain�sV���"�"����� 2�3�#�
�
��	
����A�	
�	
�	
�	
�	
rc�n�|�ddgddidd����}|�|d��dS)	Nr�rAr�r�r��r��minContainsr��MToo few items match the given schema (expected at least 2 but only 1 matched)r�r�s  r�test_contains_too_fewz1TestValidationErrorMessages.test_contains_too_few�s_���"�"��Q�Z�!'�� 2�1�E�E�#�
�
��	
����
7�	
�	
�	
�	
�	
rc�p�|�ddgddiddd����}|�|d	��dS)
Nr�rAr�r�r���r�r!�maxContainsr�r"r�r�s  r�&test_contains_too_few_both_constrainedzBTestValidationErrorMessages.test_contains_too_few_both_constrained�sg���"�"��Q�Z�#�X�.� � ���#�
�
��	
����
�	
�	
�	
�	
�	
rc�n�|�gd�ddidd����}|�|d��dS)N�r�r��bazr�r�r��r�r'r��:Too many items match the given schema (expected at most 2)r�r�s  r�test_contains_too_manyz2TestValidationErrorMessages.test_contains_too_manys_���"�"�*�*�*�!'�� 2�1�E�E�#�
�
��	
����H�	
�	
�	
�	
�	
rc�t�|�dgdzddiddd����}|�|d	��dS)
Nr�rr�r�r�r%r&r�z:Too many items match the given schema (expected at most 4)r�r�s  r�'test_contains_too_many_both_constrainedzCTestValidationErrorMessages.test_contains_too_many_both_constrained
sg���"�"��W�q�[�#�X�.� � ���#�
�
��	
����H�	
�	
�	
�	
�	
rc�d�|�dddi���}|�|d��dS)NrJ�exclusiveMinimumrr�z+3 is less than or equal to the minimum of 5r�r�s  r�test_exclusiveMinimumz1TestValidationErrorMessages.test_exclusiveMinimumsQ���"�"��&��*�#�
�
��	
����9�	
�	
�	
�	
�	
rc�d�|�dddi���}|�|d��dS)NrJ�exclusiveMaximumr�r�z.3 is greater than or equal to the maximum of 2r�r�s  r�test_exclusiveMaximumz1TestValidationErrorMessages.test_exclusiveMaximum%sH���"�"�A�7I�1�6M�"�N�N������<�	
�	
�	
�	
�	
rc�f�|�iddgi���}|�|d��dS)N�requiredr�r�z'foo' is a required propertyr�r�s  r�
test_requiredz)TestValidationErrorMessages.test_required,s>���"�"�B�
�U�G�7L�"�M�M������"@�A�A�A�A�Arc�n�|�diidddgii���}|�|d��dS)Nr��dependentRequiredr�r�z'bar' is a dependency of 'foo'r�r�s  r�test_dependentRequiredz2TestValidationErrorMessages.test_dependentRequired0sQ���"�"��R�[�'�%�%��)9�:�#�
�
��	
����"B�C�C�C�C�Crc�d�|�iddi���}|�|d��dS)N�
minPropertiesr�r�z"{} does not have enough propertiesr�r�s  r�test_minPropertiesz.TestValidationErrorMessages.test_minProperties7s<���"�"�B���7K�"�L�L������"F�G�G�G�G�Grc�l�|�iiid�ddi���}|�|d��dS)N)r[�b�c�
maxPropertiesr�r�z3{'a': {}, 'b': {}, 'c': {}} has too many propertiesr�r�s  r�test_maxPropertiesz.TestValidationErrorMessages.test_maxProperties;s[���"�"��B�R�0�0�#�Q�'�#�
�
��	
����A�	
�	
�	
�	
�	
rc�f�|�iddgi���}|�|d��dS)N�oneOfFr�z.{} is not valid under any of the given schemasr�r�s  r�test_oneOf_matches_nonez3TestValidationErrorMessages.test_oneOf_matches_noneEsI���"�"�B��%��7I�"�J�J������<�	
�	
�	
�	
�	
rc�h�|�idddgi���}|�|d��dS)NrFTr�z${} is valid under each of True, Truer�r�s  r�test_oneOf_matches_too_manyz7TestValidationErrorMessages.test_oneOf_matches_too_manyLs@���"�"�B��$���7N�"�O�O������"H�I�I�I�I�Irc�n�ddd�}|�ddg|���}|�|d��dS)Nr�F�r��unevaluatedItemsr�r�r�z@Unevaluated items are not allowed ('bar', 'foo' were unexpected)r�r�s   r�test_unevaluated_itemsz2TestValidationErrorMessages.test_unevaluated_itemsPsQ��!�u�=�=���"�"�U�E�N�6�"�J�J���
�
��N�	
�	
�	
�	
�	
rc�j�ddd�}|�d|���}|�|d��dS)Nr�FrKr�r�z'foo' is not of type 'array'r�r�s   r�&test_unevaluated_items_on_invalid_typezBTestValidationErrorMessages.test_unevaluated_items_on_invalid_typeXsD��!�u�=�=���"�"�E�&�"�A�A������"@�A�A�A�A�Arc�p�ddd�}|�ddd�|���}|�|d��dS)	Nr�F�r��unevaluatedPropertiesr�r��r�r�r�zEUnevaluated properties are not allowed ('bar', 'foo' were unexpected)r�r�s   r�test_unevaluated_propertiesz7TestValidationErrorMessages.test_unevaluated_properties]sj��"�U�C�C���"�"������#�
�
��	
����
-�	
�	
�	
�	
�	
rc�j�ddd�}|�d|���}|�|d��dS)Nr�FrQr�r�z'foo' is not of type 'object'r�r�s   r�+test_unevaluated_properties_on_invalid_typezGTestValidationErrorMessages.test_unevaluated_properties_on_invalid_typelsD��"�U�C�C���"�"�E�&�"�A�A������"A�B�B�B�B�BrN)/rSr�rTr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrrr#r(r.r0r3r6r9r<r?rDrGrIrMrOrTrVrrrr�r��s�������!�!�!�?�?�?�?�?�?�I�I�I�
<�<�<�E�E�E�H�H�H�D�D�D�

�

�

�D�D�D�D�D�D�5�5�5�<�<�<�9�9�9�	3�	3�	3�2�2�2�

�

�

�
+�
+�
+�
�
�
�<M�M�M�>�>�>�5�5�5�;�;�;�K�K�K�5�5�5�7�7�7�A�A�A�
�
�
�	
�	
�	
�

�

�

�
�
�
�
�
�
�
�
�
�
�
�
�B�B�B�D�D�D�H�H�H�
�
�
�
�
�
�J�J�J�
�
�
�B�B�B�


�

�

�C�C�C�C�Crr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestValidationErrorDetailsc���d}dddiddigi}tj|��}t|�|����}|�t|��d��|d}|�|jd��|�|j|d��|�|j|��|�|j	|��|�
|j��|�|jtg����|�|jtg����|�|jtg����|�|jd	��|�|jtdg����|�|jtdg����|�|jtdg����|�t|j��d
��t+|j��\}}|�|jd��|�|j|ddd��|�|j|��|�|j	|dd��|�|j|��|�|jtg����|�|jtg����|�|jtg����|�|jd	��|�|jtddg����|�|jtddg����|�|jtgd�����|�|j��|�|jd��|�|j|ddd��|�|j|��|�|j	|dd��|�|j|��|�|jtg����|�|jtg����|�|jtg����|�|jd	��|�|jtddg����|�|jtddg����|�|jtgd�����|�t|j��d��dS)
Nr�anyOfr��r�r�rAr�$r�)rZrr�)rZrAr�)rr�r9r:r&rBrr?rr�assertIsNone�parent�pathr�
relative_path�
absolute_path�	json_pathr@�relative_schema_path�absolute_schema_path�context�
sorted_errors�assertIs�assertFalse�r,rrrr�e�e1�e2s        r�
test_anyOfz%TestValidationErrorDetails.test_anyOfus&������B����"��
���.�v�6�6�	��i�+�+�H�5�5�6�6������V���a�(�(�(��1�I�������g�.�.�.�����*�F�7�O�<�<�<������X�.�.�.������6�*�*�*����!�(�#�#�#�������r���+�+�+������%��)�)�4�4�4������%��)�)�4�4�4������c�*�*�*�������w�i�(8�(8�9�9�9�����/���y�1A�1A�B�B�B�����/���y�1A�1A�B�B�B�����Q�Y����+�+�+��q�y�)�)���B������y�1�1�1�����+�V�G�_�Q�-?�	�-J�K�K�K������h�/�/�/������F�7�O�A�$6�7�7�7��
�
�b�i��#�#�#������%��)�)�,�,�,�����)�5��9�9�5�5�5�����)�5��9�9�5�5�5������s�+�+�+��������9�~�)>�)>�?�?�?�����0�%��I��2G�2G�H�H�H�����#�U�+B�+B�+B�%C�%C�	
�	
�	
�	
�����$�$�$������v�.�.�.�����+�V�G�_�Q�-?��-G�H�H�H������h�/�/�/������F�7�O�A�$6�7�7�7��
�
�b�i��#�#�#������%��)�)�,�,�,�����)�5��9�9�5�5�5�����)�5��9�9�5�5�5������s�+�+�+��������6�{�);�);�<�<�<�����0�%��F��2D�2D�E�E�E�����0�%�8L�8L�8L�2M�2M�N�N�N�����R�Z���!�,�,�,�,�,rc��ddi}dddiddddgiid�gi}tj|��}t|�|����}|�t|��d��|d	}|�|jd��|�|j|d��|�|j|��|�|j	|��|�
|j��|�|jtg����|�|jtg����|�|jtg����|�|jd
��|�|jtdg����|�|jtdg����|�|jtdg����|�t|j��d��t+|j��\}}|�|jd��|�|j|dd	d��|�|j|��|�|j	|dd	��|�|j|��|�|jtg����|�|jtg����|�|jtg����|�|jd
��|�|jtd	dg����|�|jtd	dg����|�|jtgd�����|�|j��|�|jd��|�|jdg��|�|jd��|�|j	ddgi��|�|j|��|�|jtdg����|�|jtdg����|�|jtdg����|�|jd��|�|jtgd
�����|�|jtgd
�����|�|jtgd�����|�|j��dS)Nr�rAr�r�r��enumr��r��
propertiesrr\)r�rr��$.foo)rArqr�ro)r�rArqr�ro)rr�r9r:r&rBrr?rrr]r^r_rr`rarbr@rcrdrerfrgrhris        r�	test_typez$TestValidationErrorDetails.test_type�s@���1�:�����#�$�#(�6�A�3�-�"8����
���.�v�6�6�	��i�+�+�H�5�5�6�6������V���a�(�(�(��1�I�������f�-�-�-�����*�F�6�N�;�;�;������X�.�.�.������6�*�*�*����!�(�#�#�#�������r���+�+�+������%��)�)�4�4�4������%��)�)�4�4�4������c�*�*�*�������v�h���8�8�8�����/���x���A�A�A�����/���x���A�A�A�����Q�Y����+�+�+��q�y�)�)���B������v�.�.�.�����+�V�F�^�A�->�v�-F�G�G�G������h�/�/�/������F�6�N�1�$5�6�6�6��
�
�b�i��#�#�#������%��)�)�,�,�,�����)�5��9�9�5�5�5�����)�5��9�9�5�5�5������s�+�+�+��������6�{�);�);�<�<�<�����0�%��F��2D�2D�E�E�E�����0�%�8K�8K�8K�2L�2L�M�M�M������$�$�$������v�.�.�.�����+�a�S�1�1�1������a�(�(�(������V�a�S�M�2�2�2��
�
�b�i��#�#�#������%���.�.�1�1�1�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:������w�/�/�/�����N�E�"B�"B�"B�C�C�	
�	
�	
�	
����#�U�+K�+K�+K�%L�%L�	
�	
�	
�	
����#��:�:�:�;�;�	
�	
�	
�
	
�����$�$�$�$�$rc�:�ddgddd�}dddid	did
gd�d�d
�i}tj|��}|�|��}t|��\}}}}|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|jt
dg����|�|j	d��|�|j	d��|�|j	d��|�|j	d��|�|j
d	��|�|j
d��|�|j
d��|�|j
d��dS)Nr�rA��spam)r�r�r+�quuxrqr�r�r�
)r�r%��)r�ror*r�r+r��$.barz$.bazrrror�)rr�r:rfr&r_rr`rarbr)	r,rrrrrkrl�e3�e4s	         r�test_single_nestingz.TestValidationErrorDetails.test_single_nestings����a�S��V�D�D�����)�"�A��#%�|�|�|�<�<���
���.�v�6�6�	��&�&�x�0�0��&�v�.�.���B��B������%���.�.�1�1�1������%���.�.�1�1�1������%���.�.�1�1�1������%���.�.�1�1�1�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:�����)�5�%��>�>�:�:�:������w�/�/�/������w�/�/�/������w�/�/�/������w�/�/�/������z�2�2�2������v�.�.�.������y�1�1�1������v�.�.�.�.�.rc�@�ddddgid�dg}dddgddd	gid
ddid
did�d�d�d�d�}tj|��}|�|��}t|��\}}}}}	}
|�|jt
g����|�|jt
dg����|�|jt
ddg����|�|jt
gd�����|�|	jt
gd�����|�|
jt
ddg����|�|jd��|�|jd��|�|jd��|�|jd��|�|	jd��|�|
jd��|�|jt
dg����|�|jt
ddg����|�t|j��gd���|�t|j��gd���|�t|	j��gd ���|�t|
j��gd!���|�|j
d��|�|j
d��|�|j
d��|�|j
d��|�|	j
d
��|�|
j
d��dS)"NrAr�r+rSrwr�r�rorJr�r8Tr)r�r+rp)r�r�rr�)rAr�r�)rAr�r+r�r\�$[0]z$[1].barz$[1].bar.barz$[1].bar.bazz$[1].foor�r�)r�rqr�r�)r�rqr�rqr�r8)r�rqr�rqr+r)r�rqr�ro)rr�r:rfr&r_rrbr@r9r)r,rrrrrkrlr|r}�e5�e6s           r�test_multiple_nestingz0TestValidationErrorDetails.test_multiple_nesting.s����q�%�!���6�6��?���!�8�,�"�Q��F�+� '�$.��#5�$.��?�'�'���	�	���
�
��"�.�v�6�6�	��&�&�x�0�0��!.�v�!6�!6���B��B��B������%��)�)�,�,�,������%���*�*�-�-�-������%��E�
�"3�"3�4�4�4������%�(9�(9�(9�":�":�;�;�;������%�(9�(9�(9�":�":�;�;�;������%��E�
�"3�"3�4�4�4������s�+�+�+������v�.�.�.������z�2�2�2������~�6�6�6������~�6�6�6������z�2�2�2��������x���9�9�9���������/@�)A�)A�B�B�B������� � �"H�"H�"H�	
�	
�	
�	
������ � �K�K�K�	
�	
�	
�	
������ � �K�K�K�	
�	
�	
�	
������ � �"H�"H�"H�	
�	
�	
�	
�����v�.�.�.������v�.�.�.������v�.�.�.������z�2�2�2������z�2�2�2������v�.�.�.�.�.rc	�~�dddddgddiddd	d
iid�d�d
�giiddgdd	d
iid�}dddddddiid�id�i}tj|��}|�|��\}|�|jtdg����|�|jtgd�����|�|jd��|j\}|�|jtgd�����|�|jtgd�����|�|jd��|j\}|�|jtgd�����|�|jtgd�����|�|jd��dS)N�noderZr�r��childrenr�r��^.*$�$refz#/definitions/node)r�r�)r�r�)r�r8rq�root)�definitionsr�r8rqr[�ab)rqr�rZz$.root)r�r�r[)	rqr�rZrrqr�r�r�rZz$.root.children.a)r�r�r[r�r�)rqr�rZrrqr�r�r�rZrrqr�r�r�rZz$.root.children.a.children.ab)	rr�r:r&rarrdrbre)r,rrrrjrkrls       r�test_recursivez)TestValidationErrorDetails.test_recursiveksw���� (�%+�Z�$8�!'��%�)1�$*�(.�0D�-&�6"�)�)�	'�'������*���!�F�,@�#A�B�1
�
��8
��� #� � &��#�%���
�
�
�
�� �.�v�6�6�	�
�
"�
"�8�
,�
,��������%���/�/�:�:�:����
�"�E�*I�*I�*I�$J�$J�	
�	
�	
�	
�����h�/�/�/��i�������)�5�1J�1J�1J�+K�+K�L�L�L�����#�U�
�
�
�&�&�	
�	
�	
�	
�����':�;�;�;��j��������e�;�;�;���	
�	
�	
�
	
����#�U����&�&�	
�	
�	
�*	
�����'F�G�G�G�G�Grc��ddd�}dddd�i}tj|��}|�|��}t|��\}}|�|jt
dg����|�|jt
dg����|�|jd	��|�|jd
��|�|jd��|�|jd��dS)
Nr�r�r�r�r�r�r�r�r�r{rrr�r��	rr�r:rfr&r_rrbr�r,rrrrrkrls       r�test_additionalPropertiesz4TestValidationErrorDetails.test_additionalProperties�s��� ��+�+��(�9��*K�*K�L���.�v�6�6�	��&�&�x�0�0���v�&�&���B������%���.�.�1�1�1������%���.�.�1�1�1������w�/�/�/������w�/�/�/������v�.�.�.������y�1�1�1�1�1rc��ddd�}dddiddid�i}tj|��}|�|��}t|��\}}|�|jt
d	g����|�|jt
d
g����|�|jd��|�|jd��|�|jd��|�|jd��dS)
NrAr�r�r�r�r�r�rr�r�r{rrr�r�s       r�test_patternPropertiesz1TestValidationErrorDetails.test_patternProperties�s���Q�'�'�����)�!�1�~�"�"�
���.�v�6�6�	��&�&�x�0�0���v�&�&���B������%���.�.�1�1�1������%���.�.�1�1�1������w�/�/�/������w�/�/�/������v�.�.�.������y�1�1�1�1�1rc��ddg}gddd�d�}tj|��}|�|��}t|��\}}|�|jt
dg����|�|jt
dg����|�|jd��|�|jd	��|�|jd
��|�|jd��dS)Nr�rAr�rr�r�rr��$[1]r�r�r�r�s       r�test_additionalItemsz/TestValidationErrorDetails.test_additionalItems�s���1�:���(1�a�@�@�
�
��
�.�v�6�6�	��&�&�x�0�0���v�&�&���B������%���*�*�-�-�-������%���*�*�-�-�-������v�.�.�.������v�.�.�.������v�.�.�.������y�1�1�1�1�1rc��gd�}igddd�d�}tj|��}|�|��}t|��\}}|�|jt
dg����|�|jt
dg����|�|jd��|�|jd	��|�|jd
��|�|jd��dS)N)r�r�rAr�rr�r�rAr�r�z$[2]r�r�r�r�s       r�test_additionalItems_with_itemsz:TestValidationErrorDetails.test_additionalItems_with_itemss��$�$�$���T�(1�a�@�@�
�
��
�.�v�6�6�	��&�&�x�0�0���v�&�&���B������%���*�*�-�-�-������%���*�*�-�-�-������v�.�.�.������v�.�.�.������v�.�.�.������y�1�1�1�1�1rc��ddi}ddddiii}tj|��}|�|��\}|�|jd��|�|jd��|�|jtg����|�|jd��|�|j	tddg����dS)Nr�r��
propertyNames�notr�z0'foo' should not be valid under {'const': 'foo'}r\�
rr�r:r&rrr_rrbr@)r,rrr�errors     r�test_propertyNamesz-TestValidationErrorDetails.test_propertyNamess����2�;��!�E�G�U�+;�#<�=���.�v�6�6�	��&�&�x�0�0��������%�0�0�0�����M�>�	
�	
�	
�	
�����U�2�Y�Y�/�/�/������#�.�.�.�����*�E�?�E�2J�,K�,K�L�L�L�L�Lrc��ddiddid�}tj|��}|�d��\}|�|jd��|�|jd��|�|jtg����|�|jd��|�|j	tddg����dS)Nr�r��
)�if�then�13 was expectedr\r�r��r,rrr�s    r�test_if_thenz'TestValidationErrorDetails.test_if_then/�����B�-��b�M�
�
��
�.�v�6�6�	��&�&�r�*�*��������'�2�2�2������(9�:�:�:������U�2�Y�Y�/�/�/������#�.�.�.�����*�E�6�7�2C�,D�,D�E�E�E�E�Erc��ddiddid�}tj|��}|�d��\}|�|jd��|�|jd��|�|jtg����|�|jd��|�|j	tddg����dS)	Nr�r�r�)r��elserur�r\r�r�r�s    r�test_if_elsez'TestValidationErrorDetails.test_if_else>r�rc��tjd��}|�d��\}|�|j|j|j|j|j|j	|j
fdddddtg��df��dS)NFr�zFalse schema does not allow 12r\)rr�r:r&rrr?rrr@rbr)r,rr�s   r�test_boolean_schema_Falsez4TestValidationErrorDetails.test_boolean_schema_FalseMs����.�u�5�5�	��&�&�r�*�*�������
����%������!���
�1������b�	�	��
�	
�	
�	
�	
�	
rc
��ddddii}}tjd|itjdi||i������}|�d	d
i��\}|�|j|j|j|j|j	|j
|j|jfdddd
td	g��dditddg��df��dS)
N�someRefr�r�r�r�rl��store��resolverr��notAnIntegerz''notAnInteger' is not of type 'integer'rr)rr��RefResolverr:r&rrr?rrarr@rbr)r,�refrrr�s     r�test_refz#TestValidationErrorDetails.test_reffs����"8�6�9�:M�!N�V���.�
�S�M��+�B��3��-�H�H�H�
�
�
�	��&�&��~�'>�?�?�������
����%����#����!���	
�:�����u�g�����#��-�v�6�7�7��	
�	
�	
�	
�	
�	
rc
�.�dddiiiddigi}tj|��}|�gd���\}}|�|j|j|j|j|j|j	|j
|jfddddtd	g��dditgd
���df��|�|j|j|j|j|j|j	|j
|jfdddd
tdg��dditgd���df��dS)Nrr�r�r�rJr
r�rAr)rrr�r�z"5 is greater than the maximum of 3r)rrJr��$[3]�
r�Draft202012Validatorr:r&rrr?rrarr@rbr)r,rr�
type_error�	min_errors     r�test_prefixItemsz+TestValidationErrorDetails.test_prefixItems�sh���6�8�"4�b�"�y�!�n�!M�N���3�F�;�;�	� )� 5� 5�6F�6F�6F� G� G��
�I�����"��$��*��#��(��!��&��$�	
�,�����q�c�
�
���"��0�0�0�1�1��	
�	
�	
�	
�,	
����!��#��)��"��'�� ��%��#�	
�5�����q�c�
�
��A���3�3�3�4�4��	
�	
�	
�	
�	
�	
rc
�&�ddiigd�}tj|��}|�gd���\}}|�|j|j|j|j|j|j	|j
|jfddddtdg��dditddg��d	f��|�|j|j|j|j|j|j	|j
|jfd
dddtdg��dditddg��d
f��dS)Nr�r�r)r�r�r�r%r+z2 is not of type 'string'r�rAr�r�z4 is not of type 'string'r%rJr�r��r,rrrkrls     rrz6TestValidationErrorDetails.test_prefixItems_with_items�sW���h�'��4�
�
���3�F�;�;�	��&�&�'B�'B�'B�C�C���B�����
����"���� ��	�����	
�,�����q�c�
�
���"��w��'�(�(��	
�	
�	
�	
�,	
����
����"���� ��	�����	
�,�����q�c�
�
���"��w��'�(�(��	
�	
�	
�	
�	
�	
rc�N�ddidd�}tj|��}|�gd���\}|�|j|j|j|j|j|j	|j
|jfdddgd�tg��ddidd�tdg��d	f��d
S)z�
        `contains` + `maxContains` produces only one error, even if there are
        many more incorrectly matching elements.
        r�r�r�r,)r�r�r�r%r+rwr-r'r�r\Nr�r�s    rr.z1TestValidationErrorDetails.test_contains_too_many�s���
 &�x�0��C�C���3�F�;�;�	��&�&�'J�'J�'J�K�K�������
����%����#����!���	
�M���3�3�3��b�	�	�$�h�/��B�B��z�l�#�#��	
�	
�	
�	
�	
�	
rc�N�ddidd�}tj|��}|�gd���\}|�|j|j|j|j|j|j	|j
|jfdddgd�tg��ddidd�tdg��d	f��dS)
Nr�r�r�r )r�r�r%r"r!r�r\r�r�s    rr#z0TestValidationErrorDetails.test_contains_too_few	s���%�x�0��C�C���3�F�;�;�	��&�&�}�}�}�5�5�������
����%����#����!���	
�?����
�
��b�	�	�$�h�/��B�B��z�l�#�#��
�	
�	
�	
�	
�	
rc�R�ddidd�}tj|��}|�ddg��\}|�|j|j|j|j|j|j	|j
|jfddddiddgtg��ddidd�tdg��df��dS)	Nr�r�r�r r%z7[2, 4] does not contain items matching the given schemar�r\r�r�s    r�test_contains_nonez-TestValidationErrorDetails.test_contains_none's���%�x�0��C�C���3�F�;�;�	��&�&��1�v�.�.�������
����%����#����!���	
�J����"��A���b�	�	�$�h�/��B�B��z�l�#�#��	
�	
�	
�	
�	
�	
rc��dddgiidddgd�id�}tj|��}|�dii��\}}|�|j|j|j|j|j|j	|j
|j|jf	d	ddgitdg��ddgitgd
���tgd
���df	��|�|j|j|j|j|j|j	|j
|j|jf	dddgitdg��ddgd�tgd
���tgd
���df	��dS)
Nr�r8r��apropz#/$defs/foor+)r�r8)z$defsrqz'bar' is a required property)rqr�r8z$.apropz'baz' is a required property)rr�r:r&rrr?rrarr@rcrbrr�s     r�test_ref_siblingz+TestValidationErrorDetails.test_ref_siblingBs����j�5�'�2�3��)�!&�����
�
���3�F�;�;�	��&�&���}�5�5���B�����
����"���� ��	����'���

�/������w�i� � ��e�W�%��9�9�9�:�:��9�9�9�:�:��

�	
�	
�	
�0	
����
����"���� ��	����'���

�/������w�i� � �&�U�G�<�<��9�9�9�:�:��9�9�9�:�:��

�	
�	
�	
�	
�	
rN)rSr�rTrmrsr~r�r�r�r�r�r�r�r�r�r�r�r�rr.r#r�r�rrrrXrXrs\������C-�C-�C-�JK%�K%�K%�Z%/�%/�%/�N;/�;/�;/�zcH�cH�cH�J2�2�2�"2�2�2�,2�2�2�(2�2�2�(M�M�M� 
F�
F�
F�
F�
F�
F�
�
�
�2
�
�
�>/
�/
�/
�b2
�2
�2
�h
�
�
�>
�
�
�<
�
�
�6<
�<
�<
�<
�<
rrXc�&�eZdZd�Zd�Zd�Zd�ZdS)�MetaSchemaTestsMixinc��|�tj��5|j�ddi��ddd��dS#1swxYwYdS)Nrqr���assertRaisesr�SchemaErrorr*r�r+s r�test_invalid_propertiesz,MetaSchemaTestsMixin.test_invalid_properties�s���
�
�
�z�5�
6�
6�	<�	<��N�'�'��r�(:�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<��A
�
A�Ac��|�tj��5|j�ddi��ddd��dS#1swxYwYdS)Nr�1r�r+s r�test_minItems_invalid_stringz1MetaSchemaTestsMixin.test_minItems_invalid_string�s���
�
�
�z�5�
6�
6�	;�	;��N�'�'��S�(9�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;r�c�>�|j�dgi��dS)zk
        Technically, all the spec says is they SHOULD have elements, not MUST.

        See #529.
        roN�r*r�r+s r�test_enum_allows_empty_arraysz2MetaSchemaTestsMixin.test_enum_allows_empty_arrays�s$��	
��#�#�V�R�L�1�1�1�1�1rc�B�|j�dddgi��dS)zg
        Technically, all the spec says is they SHOULD be unique, not MUST.

        See #529.
        ror�Nr�r+s r�!test_enum_allows_non_unique_itemsz6MetaSchemaTestsMixin.test_enum_allows_non_unique_items�s)��	
��#�#�V�b�"�X�$6�7�7�7�7�7rN)rSr�rTr�r�r�r�rrrr�r��sP������<�<�<�;�;�;�
2�2�2�8�8�8�8�8rr�c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�ValidatorTestMixinc�l�|�|�i��tj��dSr/)�assertIsInstancer*rr+s r�)test_it_implements_the_validator_protocolz<ValidatorTestMixin.test_it_implements_the_validator_protocol�s-�����d�n�n�R�0�0�)�2E�F�F�F�F�Frc��|j\}}|�|�|���|����dSr/)�validr�r*�is_valid�r,rrs   r�test_valid_instances_are_validz1ValidatorTestMixin.test_valid_instances_are_valid�s@���:����������v�.�.�7�7��A�A�B�B�B�B�Brc��|j\}}|�|�|���|����dSr/)�invalidrhr*r�r�s   r�$test_invalid_instances_are_not_validz7ValidatorTestMixin.test_invalid_instances_are_not_valid�sB���<�����������/�/�8�8��B�B�C�C�C�C�Crc��|�t��t��i���t�����dS)N�r)r*r��validater+s r�(test_non_existent_properties_are_ignoredz;ValidatorTestMixin.test_non_existent_properties_are_ignored�s<��������&�(�(�+�,�,�5�5�v�x�x�5�H�H�H�H�Hrc�v�|�|�i��jtj��dSr/)r�r*r�rr�r+s r�.test_it_creates_a_ref_resolver_if_not_providedzAValidatorTestMixin.test_it_creates_a_ref_resolver_if_not_provided�s<������N�N�2���'��"�	
�	
�	
�	
�	
rc��dddi}}tjdi||i���}|�d|i|���}|�tj��5|�d��ddd��dS#1swxYwYdS)N�someCoolRefr�r�rlr�r�r�)rr�r*r�rrr�)r,r�rr�rs     r�#test_it_delegates_to_a_ref_resolverz6ValidatorTestMixin.test_it_delegates_to_a_ref_resolver�s���#�f�i�%8�V���)�"�b��f�
�F�F�F���N�N�F�C�=�8�N�D�D�	�
�
�
�z�9�
:�
:�	%�	%����t�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%s�A;�;A?�A?c�,�dddi}}tjdi||i���}|�||���}|�ddi���}|�ddi|���}|�||��|�||��dS)	Nr�r�r�rlr�r�r��r)rr�r*�evolver&�assertNotEqual)r,r�rr�rr��expecteds       r�test_evolvezValidatorTestMixin.test_evolve�s���#�f�i�%8�V���)�"�b��f�
�F�F�F���N�N�6�H�N�=�=�	����v�x�&8��9�9���>�>�6�8�"4�x�>�H�H������h�'�'�'����C��+�+�+�+�+rc�D�tjGd�d|j����}|id���}|�|jgd���|�ddi���}|�|jgd���|�|jd��d	S)
ar
        Subclassing validators isn't supported public API, but some users have
        done it, because we don't actually error entirely when it's done :/

        We need to deprecate doing so first to help as many of these users
        ensure they can move to supported APIs, but this test ensures that in
        the interim, we haven't broken those users.
        c�T�eZdZejd����Zejd���ZdS)�:ValidatorTestMixin.test_evolve_with_subclass.<locals>.OhNoc�
�gd�S)Nr�rrrrrqzCValidatorTestMixin.test_evolve_with_subclass.<locals>.OhNo.<lambda>�s
��)�)�)�r)�factory�%��defaultN)rSr�rT�attr�ibr��_barrrr�OhNor��s:�������$�'�"3�"3�4�4�4�C��4�7�2�&�&�&�D�D�Drr�r�)r�r�r�r�r�N)r�rpr*r&r�r�r�)r,r�rr�s    r�test_evolve_with_subclassz,ValidatorTestMixin.test_evolve_with_subclass�s���
��	'�	'�	'�	'�	'�4�>�	'�	'�
��	'��D���$�$�$�	������	�	�	�2�2�2����v�y�&9��:�:�������)�)�)�,�,�,������2�&�&�&�&�&rc���G�fd�dt��}|��}ddi}��tj��5��||����d��ddd��dS#1swxYwYdS)zb
        Legacy RefResolvers support only the context manager form of
        resolution.
        c�*��eZdZe�fd���ZdS)�XValidatorTestMixin.test_it_delegates_to_a_legacy_ref_resolver.<locals>.LegacyRefResolverc3�D�K���|d��ddiV�dS)N�the refr�r��r&)�thisr�r,s  �r�	resolvingzbValidatorTestMixin.test_it_delegates_to_a_legacy_ref_resolver.<locals>.LegacyRefResolver.resolving�s4������ � ��i�0�0�0��y�)�)�)�)�)�)rN)rSr�rTrrr+s�r�LegacyRefResolverr�s8�������
�
*�
*�
*�
*��^�
*�
*�
*rrr�rr�N)r�r�rrr*r�)r,rr�rs`   r�*test_it_delegates_to_a_legacy_ref_resolverz=ValidatorTestMixin.test_it_delegates_to_a_legacy_ref_resolver�s���	*�	*�	*�	*�	*�	*�	*��	*�	*�	*�%�$�&�&���)�$��
�
�
�z�9�
:�
:�	E�	E��N�N�6�H�N�5�5�>�>�t�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	Es�+A<�<B�Bc�~�|�|�i���dd����dS)Nr�r�)r�r*r�r+s r�#test_is_type_is_true_for_valid_typez6ValidatorTestMixin.test_is_type_is_true_for_valid_type�s6��������r�*�*�2�2�5�(�C�C�D�D�D�D�Drc�~�|�|�i���dd����dS)Nr�r��rhr*r�r+s r�&test_is_type_is_false_for_invalid_typez9ValidatorTestMixin.test_is_type_is_false_for_invalid_type�s8���������+�+�3�3�E�7�C�C�D�D�D�D�Drc��|�|�i���dd����|�|�i���dd����dS)NTr�r�rr+s r�,test_is_type_evades_bool_inheriting_from_intz?ValidatorTestMixin.test_is_type_evades_bool_inheriting_from_int�sh���������+�+�3�3�D�)�D�D�E�E�E��������+�+�3�3�D�(�C�C�D�D�D�D�Drc�z�dddii}tj|j|jj�dd������}||��}|�ddt
d��t
d��zg��d	igd
dg}|�d�|�|��D��|��dS)Nr�r�r�c�r�t|tttf��ot|t��Sr/)�
isinstance�int�floatr�bool�r�r�s  rrqzGValidatorTestMixin.test_it_can_validate_with_decimals.<locals>.<lambda>�s4��z��C���0�(�(�(2�$�U�D�1�1�1�r�r$rAg�������?rzr�Tc��g|]	}|j��
Srr�)r�r�s  r�
<listcomp>zIValidatorTestMixin.test_it_can_validate_with_decimals.<locals>.<listcomp>	s��H�H�H��U�^�H�H�Hr)	rr�r*r2�redefiner�rr&r:)r,rr*rr�s     r�"test_it_can_validate_with_decimalsz5ValidatorTestMixin.test_it_can_validate_with_decimals�s����F�H�-�.���%��N���4�=�=��2�2���
�
�
�	��I�f�%�%�	����A�s�G�A�J�J�����$;�<�=�=�=��"�b�$��-�����H�H��)>�)>�w�)G�)G�H�H�H��	
�	
�	
�	
�	
rc�z�|�ddit�����}|�d��dS)Nr��carrot�r��bugs)r*rr��r,rs  r�7test_it_returns_true_for_formats_it_does_not_know_aboutzJValidatorTestMixin.test_it_returns_true_for_formats_it_does_not_know_about
sD���N�N�
�x� ����#�
�
�	�	���6�"�"�"�"�"rc�d�|�i��}|�|j��dSr/)r*r]r�r s  r�,test_it_does_not_validate_formats_by_defaultz?ValidatorTestMixin.test_it_does_not_validate_formats_by_defaults0���N�N�2�&�&�	����)�2�3�3�3�3�3rc�����t��}td���|�dt�����fd���}��ddi|���}|�d����tj��5}|�d��ddd��n#1swxYwY��|j	j
���dS)	NzBad!r�)�raisesc�x��|dkrdS|dkr����d�|����dS)N�goodT�badz What is {}? [Baby Don't Hurt Me])rr�)r�r(r,s ��r�checkzTValidatorTestMixin.test_it_validates_formats_if_a_checker_is_provided.<locals>.checksF��������t��%����	��	�	�<�C�C�E�J�J�K�K�K�K�Krr�rr'r()r�
ValueErrorr�r*r�r�rrrg�	exception�cause)r,r�r)r�cmr(s`    @r�2test_it_validates_formats_if_a_checker_is_providedzEValidatorTestMixin.test_it_validates_formats_if_a_checker_is_provideds1�����/�/���� � ��	����j��	1�	1�	L�	L�	L�	L�	L�
2�	1�	L��N�N�
�u��g�#�
�
�	�	���6�"�"�"�
�
�
�z�9�
:�
:�	&�b����u�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	
�
�
�b�l�(�#�.�.�.�.�.s�B7�7B;�>B;c���t��}d|gi}tj|j|jj�|d������}||���d��dS)Nr�c�,�t|t��Sr/�rrrs  rrqz@ValidatorTestMixin.test_non_string_custom_type.<locals>.<lambda>6s��z�%��'=�'=�rrru)r�rr�r*r2rr�)r,�non_string_typer�Crazys    r�test_non_string_custom_typez.ValidatorTestMixin.test_non_string_custom_type/sy�� �(�(���?�+�,���!��N���4�=�=��=�=���
�
�
��	��f�
�
���r�"�"�"�"�"rc�x�tj|j|jj�dd������}|�tj��5}|ddi���d��ddd��n#1swxYwY|�	dt|j����dS)	zh
        A tuple instance properly formats validation errors for uniqueItems.

        See #224
        r�c�,�t|t��Sr/)r�tuplers  rrqzNValidatorTestMixin.test_it_properly_formats_tuples_in_errors.<locals>.<lambda>Es��z�%��'?�'?�rr�uniqueItemsT)rArANz(1, 1) has non-unique elements)rr�r*r2rr�rrr�rv�strr+)r,�TupleValidatorrjs   r�)test_it_properly_formats_tuples_in_errorsz<ValidatorTestMixin.test_it_properly_formats_tuples_in_errors;s��$�*��N���4�=�=��?�?���
�
�
���
�
�z�9�
:�
:�	C�a��N�M�4�0�1�1�:�:�6�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C��
�
�6��A�K�8H�8H�I�I�I�I�Is�!B�B�Bc�T��ddd�}tdd���tj|j|jj�d��fd�d����	��}||��}t
gd
���t
dgdgg��t
dg��t
dg��gt
dg��gt
dg��ggt
dg��ggggt
dg��gggggt
t
dg��g��t
t
dg��g��g�d
d���d
d��g�d
t
dg��g���d
t
dg��g��g�d
�d
t
dg����g���d
�d
t
dg����g��gt
t
t
dg������t
t
t
dg������gg
}|D]}|�|���t
gd���t
dgdgg��t
dg��t
dg��gt
dg��gt
dg��ggt
dg��ggggt
dg��gggggt
t
dg��g��t
t
dg��g��g�d
d���d
d��g�d
t
dg��g���d
t
dg��g��g�d
�d
t
dg����g���d
�d
t
dg����g��gt
t
t
dg������t
t
t
dg������gg
}|D]N}|�tj
��5|�|��ddd��n#1swxYwY�OdS)zO
        Allow array to validate against another defined sequence type
        r�T)r�r8�	MyMappingza, bc�:�t|ttf��Sr/)rr9rrs  rrqzBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>Vs��J���e�}�5�5�rc�2��t|t�f��Sr/)rr()r�r�r=s  �rrqzBValidatorTestMixin.test_check_redefined_sequence.<locals>.<lambda>Ys���Z���i�0�6�6�r)r�r�r)r[Nr�rlTFrr[)r[rAr[N)rrr�r*r2�
redefine_manyrr�r�rr)r,rr*r�valid_instancesr�invalid_instancesr=s       @r�test_check_redefined_sequencez0ValidatorTestMixin.test_check_redefined_sequenceLs����"�$�7�7���{�F�3�3�	��%��N���4�B�B�������	��	�	�
�
�
�	��I�f�%�%�	�
�,�,�,�-�-��E�7�Q�C�.�!�!�
�E�7�^�^�U�A�3�Z�Z�(��U�G�n�n�
��q�c�
�
�|�,���w��� �!�"�
#���s����~�&6�%7�8�
�E�5�'�N�N�#�
$�
$�e�U�A�3�Z�Z�L�&9�&9�:�
�Y�s�A�
�
�	�	�#�u� 5� 5�6��	�#��q�c�
�
�|�,�,��	�#��u�g���/�0�0�
�
�	�#�	�	�#�u�a�S�z�z� :� :�;�<�<��	�#�	�	�#�u�e�W�~�~� >� >�?�@�@�
��5���w���(�(�
)�
)�5��u�a�S�z�z�1B�1B�+C�+C�D�!
��&(�	)�	)�H����x�(�(�(�(�
�/�/�/�"�"��E�7�U�G�$�%�%�
�E�7�^�^�U�E�7�^�^�,��U�G�n�n�
��u�g���/�0���w��� �!�"�
#���w���(8�'9�&:�%;�<�
�E�5�'�N�N�#�
$�
$�e�U�E�7�^�^�,<�&=�&=�>�
�Y�s�E�
"�
"�I�I�c�5�$9�$9�:��	�#��u�g���/�0�0��	�#��u�g���/�0�0�
�
�	�#�	�	�#�u�e�W�~�~� >� >�?�@�@��	�#�	�	�#�u�e�W�~�~� >� >�?�@�@�
��5���w���(�(�
)�
)�5��u�e�W�~�~�1F�1F�+G�+G�H�!
��&*�	-�	-�H��"�"�:�#=�>�>�
-�
-��"�"�8�,�,�,�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��	-�	-s�:P�P 	�#P 	N)rSr�rTr�r�r�r�r�r�r�r�rr
r
rrr!r#r.r4r;rCrrrr�r��sQ������G�G�G�C�C�C�D�D�D�I�I�I�
�
�
�%�%�%�
,�
,�
,�'�'�'�,E�E�E�$E�E�E�E�E�E�E�E�E�
�
�
�*#�#�#�4�4�4�/�/�/�0
#�
#�
#�J�J�J�"@-�@-�@-�@-�@-rr�c��eZdZdZd�Zd�Zejed����d���Z	ejed����d���Z
dS)�AntiDraft6LeakMixinzN
    Make sure functionality from draft 6 doesn't leak backwards in time.
    c��|�tj��5}|j�d��ddd��n#1swxYwY|�dt
|j����dS)NTzTrue is not of type�r�rr�r*r�rvr9r+�r,rjs  r�test_True_is_not_a_schemaz-AntiDraft6LeakMixin.test_True_is_not_a_schema�s���
�
�
�z�5�
6�
6�	.�!��N�'�'��-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.��
�
�+�S���-=�-=�>�>�>�>�>��A�A�Ac��|�tj��5}|j�d��ddd��n#1swxYwY|�dt
|j����dS)NFzFalse is not of typerGrHs  r�test_False_is_not_a_schemaz.AntiDraft6LeakMixin.test_False_is_not_a_schema�s���
�
�
�z�5�
6�
6�	/�!��N�'�'��.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/��
�
�,�c�!�+�.>�.>�?�?�?�?�?rJic�2�tjdi��}|�t��5}|�d|����d��ddd��n#1swxYwY|�|jtj	��dS)NrlTr�r��
rr�r��	Exceptionr*r��assertNotIsInstancer+rr�r,r�rjs   r�5test_True_is_not_a_schema_even_if_you_forget_to_checkzIAntiDraft6LeakMixin.test_True_is_not_a_schema_even_if_you_forget_to_check�s����)�"�b�1�1��
�
�
�y�
)�
)�	A�Q��N�N�4�(�N�3�3�<�<�R�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�� � ���j�.H�I�I�I�I�I��+A'�'A+�.A+c�2�tjdi��}|�t��5}|�d|����d��ddd��n#1swxYwY|�|jtj	��dS)NrlFr�r�rNrQs   r�6test_False_is_not_a_schema_even_if_you_forget_to_checkzJAntiDraft6LeakMixin.test_False_is_not_a_schema_even_if_you_forget_to_check�s����)�"�b�1�1��
�
�
�y�
)�
)�	B�Q��N�N�5�8�N�4�4�=�=�b�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�� � ���j�.H�I�I�I�I�IrSN)rSr�rT�__doc__rIrL�unittest�skiprrRrUrrrrErE�s���������?�?�?�
@�@�@�
�X�]�3�3�s�8�8���J�J���J��X�]�3�3�s�8�8���J�J���J�J�JrrEc�T�eZdZUejZiifZded<ddidfZd�Z	d�Z
d�Zd	�Zd
S)�TestDraft3Validator�tuple[dict, dict]r�r�r�r�c�v�|�ddi��}|�t����dS�Nr��any)r*r�r�r s  r�#test_any_type_is_valid_for_type_anyz7TestDraft3Validator.test_any_type_is_valid_for_type_any�s5���N�N�F�E�?�3�3�	����6�8�8�$�$�$�$�$rc�X�tj|j|jj�dd������}|ddi��}|�d��|�tj��5|�d��ddd��dS#1swxYwYdS)z(
        Sigh, because why not.
        r^c�,�t|t��Sr/r1rs  rrqzBTestDraft3Validator.test_any_type_is_redefinable.<locals>.<lambda>�s��j���.D�.D�rrr�r�r�N)	rr�r*r2rr�r�rr)r,r3rs   r�test_any_type_is_redefinablez0TestDraft3Validator.test_any_type_is_redefinable�s����!��N���4�=�=��D�D���
�
�
���E�6�5�/�*�*�	����2����
�
�
�z�9�
:�
:�	&�	&����u�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�	&�	&s�<B�B#�&B#c��|�|�ddi���t������dSr])r�r*r�r�r+s r�!test_is_type_is_true_for_any_typez5TestDraft3Validator.test_is_type_is_true_for_any_type�s<�����������7�7�@�@����J�J�K�K�K�K�Krc��|�|�i���dd����|�|�ddi���d����dS)NTr�r�r^)r�r*r�r�r+s r�6test_is_type_does_not_evade_bool_if_it_is_being_testedzJTestDraft3Validator.test_is_type_does_not_evade_bool_if_it_is_being_tested�sf��������r�*�*�2�2�4��C�C�D�D�D����������7�7�@�@��F�F�G�G�G�G�GrN)
rSr�rTrr�r*r��__annotations__r�r_rbrdrfrrrrZrZ�s���������*�I� "�B�x�E�'�'�'�'��y�!�5�(�G�%�%�%�
&�
&�
&�L�L�L�H�H�H�H�HrrZc�<�eZdZUejZiifZded<ddidfZdS)�TestDraft4Validatorr[r�r�r�r�N)	rSr�rTrr�r*r�rgr�rrrriri��<��������*�I� "�B�x�E�'�'�'�'��y�!�5�(�G�G�Grric�<�eZdZUejZiifZded<ddidfZdS)�TestDraft6Validatorr[r�r�r�r�N)	rSr�rTrr�r*r�rgr�rrrrlrl�rjrrlc�<�eZdZUejZiifZded<ddidfZdS)�TestDraft7Validatorr[r�r�r�r�N)	rSr�rTrr�r*r�rgr�rrrrnrn�rjrrnc�<�eZdZUejZiifZded<ddidfZdS)�TestDraft201909Validatorr[r�r�r�r�N)	rSr�rTr�Draft201909Validatorr*r�rgr�rrrrprp��<��������/�I� "�B�x�E�'�'�'�'��y�!�5�(�G�G�Grrpc�<�eZdZUejZiifZded<ddidfZdS)�TestDraft202012Validatorr[r�r�r�r�N)	rSr�rTrr�r*r�rgr�rrrrtrt�rrrrtc�h�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZdS)�TestValidatorForc���ddi}|�tj|��tj��ddi}|�tj|��tj��dS)N�$schema�&http://json-schema.org/draft-03/schema�'http://json-schema.org/draft-03/schema#)rgr�
validator_forr�r5s  r�test_draft_3zTestValidatorFor.test_draft_3��x���E�F���
�
��$�V�,�,��&�	
�	
�	
�
�F�G���
�
��$�V�,�,��&�	
�	
�	
�	
�	
rc���ddi}|�tj|��tj��ddi}|�tj|��tj��dS)Nrx�&http://json-schema.org/draft-04/schema�'http://json-schema.org/draft-04/schema#)rgrr{r�r5s  r�test_draft_4zTestValidatorFor.test_draft_4�r}rc���ddi}|�tj|��tj��ddi}|�tj|��tj��dS)Nrx�&http://json-schema.org/draft-06/schema�'http://json-schema.org/draft-06/schema#)rgrr{r�r5s  r�test_draft_6zTestValidatorFor.test_draft_6r}rc���ddi}|�tj|��tj��ddi}|�tj|��tj��dS)Nrx�&http://json-schema.org/draft-07/schema�'http://json-schema.org/draft-07/schema#)rgrr{r�r5s  r�test_draft_7zTestValidatorFor.test_draft_7r}rc���ddi}|�tj|��tj��ddi}|�tj|��tj��dS)Nrxz,https://json-schema.org/draft/2019-09/schemaz-https://json-schema.org/draft/2019-09/schema#)rgrr{rqr5s  r�test_draft_201909z"TestValidatorFor.test_draft_201909 �x���K�L���
�
��$�V�,�,��+�	
�	
�	
�
�L�M���
�
��$�V�,�,��+�	
�	
�	
�	
�	
rc���ddi}|�tj|��tj��ddi}|�tj|��tj��dS)Nrx�,https://json-schema.org/draft/2020-12/schema�-https://json-schema.org/draft/2020-12/schema#)rgrr{r�r5s  r�test_draft_202012z"TestValidatorFor.test_draft_202012-r�rc�j�|�tjd��tj��dS)NT�rgrr{r�r+s r�	test_TruezTestValidatorFor.test_True:s6���
�
��$�T�*�*��&�	
�	
�	
�	
�	
rc�j�|�tjd��tj��dSr�r�r+s r�
test_FalsezTestValidatorFor.test_False@s6���
�
��$�U�+�+��&�	
�	
�	
�	
�	
rc��tjddidd����}ddi}|�tj|��|��dS)Nreri�12c�.�|�dd��Srkrmros rrqz8TestValidatorFor.test_custom_validator.<locals>.<lambda>Jrrrrsrx�rr)rgr{�r,r*rs   r�test_custom_validatorz&TestValidatorFor.test_custom_validatorFsi���%��/�0��+�+�
�
�
�	�
�-�.���
�
��$�V�,�,��	
�	
�	
�	
�	
rc��tjddid���}ddi}|�tj|��|��dS)Nr"r|�13rOrxr�r�s   r�test_custom_validator_draft6z-TestValidatorFor.test_custom_validator_draft6Rsc���%�� 1�2��
�
�
�	��.�/���
�
��$�V�,�,��	
�	
�	
�	
�	
rc�j�|�tji��tj��dSr/r�r+s r�%test_validator_for_jsonschema_defaultz6TestValidatorFor.test_validator_for_jsonschema_default]s*���
�
�j�.�r�2�2�J�4N�O�O�O�O�Orc�Z�|�tjid���d��dS)Nr�)rgrr{r+s r�!test_validator_for_custom_defaultz2TestValidatorFor.test_validator_for_custom_default`s,���
�
�j�.�r�4�@�@�@�$�G�G�G�G�Grc�(�|�t��5}tjddi���ddd��n#1swxYwY|�|jt��|�t|j��d��dS)Nrx�
unknownSchemar�z�The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future.)	�assertWarns�DeprecationWarningrr{r&�filename�__file__r9�warning)r,r-s  r�1test_warns_if_meta_schema_specified_was_not_foundzBTestValidatorFor.test_warns_if_meta_schema_specified_was_not_foundcs���
�
�
�0�
1�
1�	J�R��$�Y��,H�I�I�I�I�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	
�����h�/�/�/������
�O�O�
&�	
�	
�	
�	
�	
s�?�A�Ac���tjd���5}tjd��tjii���ddd��n#1swxYwY|�|��dS)NT)�record�always)rr�)�warnings�catch_warnings�simplefilterrr{rh)r,�ws  r�0test_does_not_warn_if_meta_schema_is_unspecifiedzATestValidatorFor.test_does_not_warn_if_meta_schema_is_unspecifiedos���
�
$�D�
1�
1�
1�	<�Q��!�(�+�+�+��$�B��;�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	
��������s�+A
�
A�Ac�|�ddit��}}|�tj||��|��dS)Nrxzmailto:foo@example.com)r�rgrr{)r,rr�s   r�-test_validator_for_custom_default_with_schemaz>TestValidatorFor.test_validator_for_custom_default_with_schemaus<��$�&>�?�������
�
�j�.�v�w�?�?��I�I�I�I�IrN)rSr�rTr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrvrv�s������
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�

�

�

�	
�	
�	
�P�P�P�H�H�H�

�

�

����J�J�J�J�Jrrvc�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�TestValidatec���g}tj�|d|j��5t	ji|��ddd��n#1swxYwY|�||g��dS)Nr�)r
�patchr��appendrr�r&)r,rr*�results    r�
assertUseszTestValidate.assertUses{s�����
�Z�
�
�y�.�&�-�
H�
H�	,�	,����F�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�����&��*�*�*�*�*s�A�A�Ac��|�dditj���|�dditj���dS)Nrxrz�rr*ry)r�rr�r+s r�test_draft3_validator_is_chosenz,TestValidate.test_draft3_validator_is_chosen��b������H�I� �0�	�	
�	
�	
�
	
����G�H� �0�	�	
�	
�	
�	
�	
rc��|�dditj���|�dditj���dS)Nrxr�r�r)r�rr�r+s r�test_draft4_validator_is_chosenz,TestValidate.test_draft4_validator_is_chosen�r�rc��|�dditj���|�dditj���dS)Nrxr�r�r�)r�rr�r+s r�test_draft6_validator_is_chosenz,TestValidate.test_draft6_validator_is_chosen�r�rc��|�dditj���|�dditj���dS)Nrxr�r�r�)r�rr�r+s r�test_draft7_validator_is_chosenz,TestValidate.test_draft7_validator_is_chosen�r�rc��|�dditj���|�dditj���dS)Nrxr�r�r��r�rr�r+s r�$test_draft202012_validator_is_chosenz1TestValidate.test_draft202012_validator_is_chosen�sj������J��!�5�		�	
�	
�	
�	
����I��!�5�		�	
�	
�	
�	
�	
rc�H�|�itj���dS)Nr�r�r+s r�)test_draft202012_validator_is_the_defaultz6TestValidate.test_draft202012_validator_is_the_default�s!�����r�Z�-L��M�M�M�M�Mrc���|�tj��5}tjdddi��ddd��n#1swxYwY|�t
|j��d��dS)Nr�r�r�z1(?s)Failed validating '.*' in schema.*On instance)r�rrrr��assertRegexr9r+rHs  r�test_validation_error_messagez*TestValidate.test_validation_error_message�s���
�
�
�z�9�
:�
:�	8�a����V�X�$6�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8���������?�	
�	
�	
�	
�	
��A�A�Ac���|�tj��5}tjdddi��ddd��n#1swxYwY|�t
|j��d��dS)Nr�r�z3(?s)Failed validating '.*' in metaschema.*On schema)r�rr�rr�r�r9r+rHs  r�test_schema_error_messagez&TestValidate.test_schema_error_message�s���
�
�
�z�5�
6�
6�	2�!����V�R�L�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2���������A�	
�	
�	
�	
�	
r�c��dddd�ddigi}|�tj��5}tjd|��ddd��n#1swxYwY|�dt
|j����dS)	NrFr�r[r�r�r�r�z!12 is less than the minimum of 20)r�rrrr�rvr9r+)r,rrjs   r�test_it_uses_best_matchz$TestValidate.test_it_uses_best_match�s����!�b�1�1���!��
���
�
�z�9�
:�
:�	,�a����F�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,��
�
�9�3�q�{�;K�;K�L�L�L�L�Ls�A
�
A�AN)
rSr�rTr�r�r�r�r�r�r�r�r�r�rrrr�r�zs�������+�+�+�	
�	
�	
�	
�	
�	
�	
�	
�	
�	
�	
�	
�

�

�

�N�N�N�
�
�
�
�
�
�	M�	M�	M�	M�	Mrr�c�x�eZdZdZdZddiZd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestRefResolverrlzfoo://stored�storedrc��i|_|j|ji|_t	j|j|j|j��|_dSr/)�referrer�
stored_uri�
stored_schemar�rr��base_urir�r+s rr-zTestRefResolver.setUp�s?����
��o�t�'9�:��
�"�.��M�4�=�$�*�
�
��
�
�
rc��tjjd}tj�|jd��5}|j�|��5}	ddd��n#1swxYwYddd��n#1swxYwY|�|tjj��|�	|j
��dS)Nre�resolve_remote)rr�r1r
r�r�r�rr&rh�called)r,r��patched�resolveds    r�6test_it_does_not_retrieve_schema_urls_from_the_networkzFTestRefResolver.test_it_does_not_retrieve_schema_urls_from_the_network�s$���(�4�T�:��
�Z�
�
�t�}�.>�
?�
?�	�7���(�(��-�-�
���
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����:�#=�#I�J�J�J������(�(�(�(�(s5�A=�A&�A=�&A*	�*A=�-A*	�.A=�=B�Bc���d}dt��i|jd<|j�|��5}|�||jdd��ddd��dS#1swxYwYdS)Nz#/properties/foor�rq)r�r�r�rr&)r,r�r�s   r�test_it_resolves_local_refsz+TestRefResolver.test_it_resolves_local_refs�s��� ��',�f�h�h�&7��
�l�#�
�]�
$�
$�S�
)�
)�	K�X����X�t�}�\�'B�5�'I�J�J�J�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks�(A*�*A.�1A.c�~�dddid�}tj�|d����}|�d��5}|�||d��ddd��n#1swxYwY|�d	��5}|�||d��ddd��dS#1swxYwYdS)
Nzhttp://bar/schema#r�r�)rer[c�.�|�dd��Srkrmr�s rrqzETestRefResolver.test_it_resolves_local_refs_with_id.<locals>.<lambda>�������D�"�!5�!5�r�rtz#/ar[zhttp://bar/schema#/a)rr��from_schemarr&�r,rr�r�s    r�#test_it_resolves_local_refs_with_idz3TestRefResolver.test_it_resolves_local_refs_with_id�sK��,�E�5�>�B�B���)�5�5��5�5�6�
�
���
�
��
&�
&�	4�(����X�v�c�{�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�
�
�
� 6�
7�
7�	4�8����X�v�c�{�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s#�A(�(A,�/A,�B2�2B6�9B6c�^�|j�|j��5}|�||j��ddd��n#1swxYwYddi|jjd<|j�d��5}|�|d��ddd��dS#1swxYwYdS)Nr�r��
cached_refzcached_ref#/foo)r�rr�rgr�r�r&)r,r�s  r�test_it_retrieves_stored_refsz-TestRefResolver.test_it_retrieves_stored_refss&��
�]�
$�
$�T�_�
5�
5�	8���M�M�(�D�$6�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�.3�B�K��
��L�)�
�]�
$�
$�%6�
7�
7�	+�8����X�r�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s#�A�A�A�>B"�"B&�)B&c�h�d}ddi}dtjvr6|�tjjdtjd��t	d|i��tjd<|j�|��5}|�|d��ddd��dS#1swxYwYdS)N�http://bar#bazr+r��requests�
http://bar)�sys�modulesr%�__setitem__�ReallyFakeRequestsr�rr&)r,r�rr�s    r�,test_it_retrieves_unstored_refs_via_requestsz<TestRefResolver.test_it_retrieves_unstored_refs_via_requests	s������������$�$��O�O���'��S�[��5L�
�
�
�#5�l�F�5K�"L�"L���J��
�]�
$�
$�S�
)�
)�	+�X����X�r�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+s�B'�'B+�.B+c�����d}ddi�dtjvr6��tjjdtjd��dtjd<t��fd���}��t
tdtj��|t_�j�	|��5}	ddd��n#1swxYwY��
|d��dS)Nr�r+r�r�c3��K���|d��ttj����d����V�dS)Nr��utf8)r&r�json�dumps�encode)�urlrr,s ��r�fake_urlopenzQTestRefResolver.test_it_retrieves_unstored_refs_via_urlopen.<locals>.fake_urlopen sO��������S�,�/�/�/��$�*�V�,�,�3�3�F�;�;�<�<�<�<�<�<�<r�urlopen)r�r�r%r�r�setattrrr�r�rr&)r,r�r�r�rs`   @r�+test_it_retrieves_unstored_refs_via_urlopenz;TestRefResolver.test_it_retrieves_unstored_refs_via_urlopens*�������������$�$��O�O���'��S�[��5L�
�
�
�#'���J��	�	=�	=�	=�	=�	=�
��	=�	
�����Y�
�8J�K�K�K�)�
��
�]�
$�
$�S�
)�
)�	�X��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�����2�&�&�&�&�&s�C�C�Cc��tjdd���5}|�tj|j��t
jddi|��ddd��n#1swxYwYd�t|j����}|j
�|��5}|�|d��ddd��dS#1swxYwYdS)NF�wt)�delete�moder�r�z
file://{}#foo)
�tempfile�NamedTemporaryFiler%�os�remover�r��dumpr�rr�rr&)r,�tempfr�r�s    r�(test_it_retrieves_local_refs_via_urlopenz8TestRefResolver.test_it_retrieves_local_refs_via_urlopen,sD��
�
(��D�
A�
A�
A�	-�U��O�O�B�I�u�z�2�2�2��I�u�e�n�e�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-��$�$�\�%�*�%=�%=�>�>��
�]�
$�
$�S�
)�
)�	.�X����X�u�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.s#�=A � A$�'A$�,C�C�Cc���ddi}tj�|d����}|�|jd��|�|jd��|�d��5}|�||��ddd��n#1swxYwY|�d��5}|�||��ddd��n#1swxYwY|�d��5}|�||��ddd��n#1swxYwY|�d��5}|�||��ddd��dS#1swxYwYdS)Nrer�c�.�|�dd��Srkrmr�s rrqzPTestRefResolver.test_it_can_construct_a_base_uri_from_a_schema.<locals>.<lambda>9r�rr�rl�#zfoo#�rr�r�r&r��resolution_scoperr�s    r�.test_it_can_construct_a_base_uri_from_a_schemaz>TestRefResolver.test_it_can_construct_a_base_uri_from_a_schema5sd�������)�5�5��5�5�6�
�
��	
����*�E�2�2�2�����2�E�:�:�:�
�
�
��
#�
#�	/�x����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�
�
��
$�
$�	/�����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�
�
��
&�
&�	/�(����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�
�
��
'�
'�	/�8����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/sH�2B�B�B�5C�C�C�8D�D�"D�;E�E#�&E#c���i}tj�|��}|�|jd��|�|jd��|�d��5}|�||��ddd��n#1swxYwY|�d��5}|�||��ddd��dS#1swxYwYdS)Nrlrrr�s    r�9test_it_can_construct_a_base_uri_from_a_schema_without_idzITestRefResolver.test_it_can_construct_a_base_uri_from_a_schema_without_idFsV�����)�5�5�f�=�=������*�B�/�/�/�����2�B�7�7�7�
�
�
��
#�
#�	/�x����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�
�
��
$�
$�	/�����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s$�-B�B�B�0C�C�Cc���������fd�}ddi�d�tjdid|i���}|����5}��|���ddd��dS#1swxYwYdS)Nc�4����|����Sr/r)r�r�rr,s ���r�handlerz@TestRefResolver.test_custom_uri_scheme_handlers.<locals>.handlerQs������S�#�&�&�&��Mrr�r��	foo://barrl��handlers)rr�rr&)r,rr�r�r�rs`   @@r�test_custom_uri_scheme_handlersz/TestRefResolver.test_custom_uri_scheme_handlersPs������	�	�	�	�	�	�	��������)�"�b�E�7�;K�L�L�L��
�
�
��
$�
$�	/�����X�v�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�A#�#A'�*A'c�&���t��g���fd�}d}tjdidd|i���}|�|��5	ddd��n#1swxYwY|�|��5	ddd��dS#1swxYwYdS)Nc�z��	����S#t$r��d��YdSwxYw)Nz#Response must not have been cached!�rR�
IndexErrorr�r��responser,s ��rrz5TestRefResolver.test_cache_remote_on.<locals>.handler^sR���
A��|�|�~�~�%���
A�
A�
A��	�	�?�@�@�@�@�@�@�
A������:�:rrlTr���cache_remoter�r�rr�r�r,rr�r�r s`   @r�test_cache_remote_onz$TestRefResolver.test_cache_remote_on[sH�����H�H�:��	A�	A�	A�	A�	A�	A����)������0@�
�
�
���
�
��
$�
$�	�	��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
��
$�
$�	�	��	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�	A�A�A�7B�B
�
B
c�����t��g���fd�}d}tjdidd|i���}|�|��5	ddd��dS#1swxYwYdS)Nc�z��	����S#t$r��d��YdSwxYw)NzHandler called twice!rrs ��rrz6TestRefResolver.test_cache_remote_off.<locals>.handlerpsM���
3��|�|�~�~�%���
3�
3�
3��	�	�1�2�2�2�2�2�2�
3���r!rrlFr�r"r$r%s`   @r�test_cache_remote_offz%TestRefResolver.test_cache_remote_offms������H�H�:��	3�	3�	3�	3�	3�	3����)����%��1A�
�
�
���
�
��
$�
$�	�	��	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�	A�A�Ac���td����fd�}d}tjdid|i���}|�tj��5}|�|��5|�d��ddd��n#1swxYwYddd��n#1swxYwY|�|j	t	j�����dS)NzOh no! What's this?c�����r/r)r�r�s �rrzTTestRefResolver.test_if_you_give_it_junk_you_get_a_resolution_error.<locals>.handler�s����Krrrlr�rzShouldn't get this far!)
r*rr�r�r�RefResolutionErrorrrr&r+)r,rr�r��errr�s     @r�3test_if_you_give_it_junk_you_get_a_resolution_errorzCTestRefResolver.test_if_you_give_it_junk_you_get_a_resolution_error}s]����0�1�1��	�	�	�	�	����)�"�b�E�7�;K�L�L�L��
�
�
�z�<�
=�
=�	5���#�#�C�(�(�
5�
5��	�	�3�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	
�����
�(E�e�(L�(L�M�M�M�M�Ms6�B�&B�<B�B	�B�B	�B�B#�&B#c�>�tjdi��}|���|�tj��5}|���ddd��n#1swxYwY|�dt|j����dS)NrlzFailed to pop the scope)	rr��	pop_scoper�rr,rvr9r+)r,r��excs   r�.test_helpful_error_message_on_failed_pop_scopez>TestRefResolver.test_helpful_error_message_on_failed_pop_scope�s����)�"�b�1�1��������
�
�
�z�<�
=�
=�	!����� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!��
�
�/��S�]�1C�1C�D�D�D�D�Ds�	A*�*A.�1A.N)rSr�rTr�r�r�r-r�r�r�r�r�rrrrrr&r)r.r2rrrr�r��s�������H��J��x�(�M�
�
�
�)�)�)�K�K�K�	4�	4�	4�+�+�+�+�+�+�'�'�'�,.�.�.�/�/�/�"/�/�/�	/�	/�	/����$��� N�N�N�E�E�E�E�Err�c�*�d�}t||���S)Nc�F�d�|jD��d�|jD��fS)Nc�,�g|]}t|����Sr�r9�r�rjs  rrz.sorted_errors.<locals>.key.<locals>.<listcomp>�s��(�(�(��S��V�V�(�(�(rc�,�g|]}t|����Srr6r7s  rrz.sorted_errors.<locals>.key.<locals>.<listcomp>�s��/�/�/��S��V�V�/�/�/r)r_r@)r�s r�keyzsorted_errors.<locals>.key�s3��(�(�U�Z�(�(�(�/�/�U�.�/�/�/�
�	
r)r9)�sorted)rr9s  rrfrf�s&��
�
�
�
�&�c�"�"�"�"rc�2�eZdZej��Zd�ZdS)r�c��|j�|��}|�tdt|��z���t	tj|����S)Nz
Unknown URL: )�
_responsesrnr*rX�_ReallyFakeJSONResponser�r�)r,r�r s   rrnzReallyFakeRequests.get�sM���?�&�&�s�+�+���;��_�t�C�y�y�8�9�9�9�&�t�z�(�';�';�<�<�<rN)rSr�rTr�r�r=rnrrrr�r��s2�����������J�=�=�=�=�=rr�c�2�eZdZej��Zd�ZdS)r>c�4�tj|j��Sr/)r��loads�	_responser+s rr�z_ReallyFakeJSONResponse.json�s���z�$�.�)�)�)rN)rSr�rTr�r�rBr�rrrr>r>�s2���������	�	�I�*�*�*�*�*rr>)3�
__future__r�collectionsrr�
contextlibr�decimalr�iorrWr	r
�urllib.requestrr�rr�rr�r��
jsonschemarr
rrr�jsonschema.tests._helpersrrr r�rXr�r�r�rErZrirlrnrprtrvr�r�rfrpr�r>rrr�<module>rKs���"�"�"�"�"�"�)�)�)�)�)�)�)�)�%�%�%�%�%�%�������������#�#�#�#�#�#�#�#�'�'�'�'�'�'�����	�	�	�	�
�
�
�
�������������������������������*�)�)�)�)�)�1�1�1�PI�PI�PI�PI�PI�(�PI�PI�PI�fzC�zC�zC�zC�zC�(�zC�zC�zC�zL
�L
�L
�L
�L
��L
�L
�L
�^8�8�8�8�8�6�8�8�8�8o-�o-�o-�o-�o-�-�v�o-�o-�o-�dJ�J�J�J�J�&�J�J�J�<H�H�H�H�H�-�/A�8�H�H�H�@)�)�)�)�)�-�/A�8�)�)�)�)�)�)�)�)�,�h�)�)�)�)�)�)�)�)�,�h�)�)�)�)�)�)�)�)�1�8�)�)�)�)�)�)�)�)�1�8�)�)�)�LJ�LJ�LJ�LJ�LJ�x�LJ�LJ�LJ�^^M�^M�^M�^M�^M�8�^M�^M�^M�BtE�tE�tE�tE�tE�h�tE�tE�tE�n#�#�#���=�=�=�=�=��=�=���=���*�*�*�*�*�f�*�*���*�*�*r