+
    P4i›o  ã                   ó°  € ^ RI HtHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ R	IHtHt ^ R
IHtHtHt ^ RIHtHt ]P<                  ! 4       ;_uu_ 4        ]P>                  ! R4       ^ RIH t  RRR4       R t!R t"R t# ! R R]4      t$ ! R R]4      t% ! R R]4      t&R#   + '       g   i     L<; i)é    )Úredirect_stderrÚredirect_stdout)Úmetadata)ÚStringIO)ÚJSONDecodeError)ÚPath)Údedent)ÚTestCaseN)ÚDraft4ValidatorÚDraft202012Validator)ÚSchemaErrorÚValidationErrorÚ_RefResolutionError)Ú_LATEST_VERSIONÚvalidateÚignore)Úclic                  óJ   a € \        \        S 4      4      o  ! V 3R  lR4      pV# )c                   óD   <a € ] tR t^t o R tV3R lt]R 4       tRtV t	R# )Ú%fake_validator.<locals>.FakeValidatorc                ó   € R # ©N© )ÚselfÚargsÚkwargss   &*,Ú;/usr/lib/python3/dist-packages/jsonschema/tests/test_cli.pyÚ__init__Ú.fake_validator.<locals>.FakeValidator.__init__    s   € Ùó    c                ó8   <€ S'       d   SP                  4       # . # r   )Úpop)r   ÚinstanceÚerrorss   &&€r   Úiter_errorsÚ1fake_validator.<locals>.FakeValidator.iter_errors#   s   ø€ ßØ—z‘z“|Ð#ØˆIr    c                ó   € R # r   r   ©r   Úschemas   &&r   Úcheck_schemaÚ2fake_validator.<locals>.FakeValidator.check_schema(   s   € ár    r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r%   Úclassmethodr*   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__r$   s   @€r   ÚFakeValidatorr      s#   ù‡ € ò	õ	ð
 
ñ	ó 
ö	r    r4   )ÚlistÚreversed)r$   r4   s   j r   Úfake_validatorr7      s$   ø€ Ü”(˜6Ó"Ó#€F÷ô ð Ðr    c                 ó   a € V 3R  lpV# )c                 óZ   <€ SP                  V 4      pVf   \        V 4      h\        V4      # r   )ÚgetÚFileNotFoundErrorr   )ÚpathÚcontentsÚall_contentss   & €r   ÚopenÚfake_open.<locals>.open0   s/   ø€ Ø×#Ñ# DÓ)ˆØÒÜ# DÓ)Ð)Ü˜Ó!Ð!r    r   )r>   r?   s   f r   Ú	fake_openrA   /   s   ø€ õ"ð
 €Kr    c                 óŒ   €  \         P                  ! V 4       \        R 4      h  \         d   p\	        T4      u Rp?# Rp?ii ; i)z.Tried and failed to capture a JSON dump error.N)ÚjsonÚloadsÚRuntimeErrorr   Ústr)Únon_jsonÚerrors   & r   Ú_message_forrI   8   s>   € ðMÜ�
Š
�8Ôô ÐKÓLÐLøô ô Ü�5‹zÕûðús   ‚# £A®
>¸A¾Ac                   óF  a € ] tR t^At o R]! 4       ^ 3R ltR0R ltR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/t2V t3R# )1ÚTestCLINc                ó  € \         P                  ! V4      pVP                  V4       V P                  \	        \         R 4      4       \        T;'       g    / 4      \         n         \        4       \        4       r‡\         P                  ! VVVVR7      p	\         =V P                  W”\        RV RV	 RVP                  4        RVP                  4        R2	4      R7       VP                  4       VP                  4       3#   \         =i ; i)r?   )ÚstdinÚstdoutÚstderrz.
                    Expected an exit code of z != z.

                    stdout: z

                    stderr: z
                )Úmsg)r   Ú
parse_argsÚupdateÚassertFalseÚhasattrrA   r?   r   ÚrunÚassertEqualr	   Úgetvalue)
r   ÚargvÚfilesrM   Ú	exit_codeÚoverrideÚ	argumentsrN   rO   Úactual_exit_codes
   &&&&&,    r   Úrun_cliÚTestCLI.run_cliB   sû   € ô —N’N 4Ó(ˆ	Ø×Ñ˜Ô"à×Ñœ¤ fÓ-Ô.Ü˜UŸ[˜[ bÓ)ŒŒð		Ü%›Z¬«�FÜ"ŸwšwØØØØô	 Ðô �à×ÑØ¬Vð.Ø.7¨[¸Ð=MÐ<Nð Oà#Ÿ_™_Ó.Ð/ð 0à#Ÿ_™_Ó.Ð/ð 0ðó.ð 	ô 
	
ð �‰Ó  &§/¡/Ó"3Ð3Ð3øô ‘ús   Á&-C> Ã>Dc                ór   € V P                  V P                  ! R/ VB \        V4      \        V4      34       R # )Nr   )rV   r^   r	   )r   rN   rO   r   s   &&&,r   ÚassertOutputsÚTestCLI.assertOutputsb   s/   € Ø×ÑØ�LŠLÑ"˜6Ñ"Ü�F‹^œV F›^Ð,ö	
r    c                ó¶   € \        R ^R7      pV P                  \        R\        P                  ! VP
                  4      R7      \        V.4      . RO^RR7       R# )úI am an error!©r#   ú*{"does not": "matter since it is stubbed"}©Úsome_schemaÚsome_instanceú12: I am an error!
©rY   Ú	validatorrX   rZ   rO   N©ú-iri   rh   ©r   ra   ÚdictrC   Údumpsr#   r7   ©r   rH   s   & r   Útest_invalid_instanceÚTestCLI.test_invalid_instanceh   sR   € ÜÐ 0¸2Ô>ˆØ×ÑÜØHÜ"Ÿjšj¨¯©Ó8ôô % e WÓ-â7àØ)ð 	ö 	
r    c                ó¶   € \        R ^R7      pV P                  \        R\        P                  ! VP
                  4      R7      \        V.4      . RO^RR7       R# )rd   re   rf   rg   z”                ===[ValidationError]===(some_instance)===

                I am an error!
                -----------------------------
            rk   N©rn   ri   ú--outputÚprettyrh   ro   rr   s   & r   Ú#test_invalid_instance_pretty_outputÚ+TestCLI.test_invalid_instance_pretty_outputw   sT   € ÜÐ 0¸2Ô>ˆØ×ÑÜØHÜ"Ÿjšj¨¯©Ó8ôô % e WÓ-âMàðð 	ö 	
r    c                ó¶   € \        R ^R7      pV P                  \        R\        P                  ! VP
                  4      R7      \        V.4      . RO^RR7       R# )rd   re   rf   rg   rj   rk   N)rw   Úplainrn   ri   rh   ro   rr   s   & r   Ú+test_invalid_instance_explicit_plain_outputÚ3TestCLI.test_invalid_instance_explicit_plain_output‹   sR   € ÜÐ 0¸2Ô>ˆØ×ÑÜØHÜ"Ÿjšj¨¯©Ó8ôô % e WÓ-âLàØ)ð 	ö 	
r    c                óÀ   € ^p\        RVR7      p\        RVR7      pV P                  \        R\        P                  ! V4      R7      \        W#.4      . R	O^RR7       R# )
é   úFirst errorre   úSecond errorrf   rg   zM                12: First error
                12: Second error
            rk   Nrm   ©r   ra   rp   rC   rq   r7   ©r   r#   ÚfirstÚseconds   &   r   Ú%test_invalid_instance_multiple_errorsÚ-TestCLI.test_invalid_instance_multiple_errorsš   s`   € ØˆÜ ¸ÔAˆÜ  ¸(ÔCˆà×ÑÜØHÜ"Ÿjšj¨Ó2ôô % e _Ó5â7àðð 	ö 	
r    c                óÀ   € ^p\        RVR7      p\        RVR7      pV P                  \        R\        P                  ! V4      R7      \        W#.4      . R	O^RR7       R# )
r€   r�   re   r‚   rf   rg   a                  ===[ValidationError]===(some_instance)===

                First error
                -----------------------------
                ===[ValidationError]===(some_instance)===

                Second error
                -----------------------------
            rk   Nrv   rƒ   r„   s   &   r   Ú3test_invalid_instance_multiple_errors_pretty_outputÚ;TestCLI.test_invalid_instance_multiple_errors_pretty_output¯   s`   € ØˆÜ ¸ÔAˆÜ  ¸(ÔCˆà×ÑÜØHÜ"Ÿjšj¨Ó2ôô % e _Ó5âMàð	ð 	ö 	
r    c           	     ó  € ^p\        RVR7      \        RVR7      .pRp\        RVR7      .pV P                  \        R\        P                  ! V4      \        P                  ! V4      R7      \        W$4      . RO^RR	7       R
# )r€   úAn errorre   úAnother errorÚfooÚBOOMrf   ©rh   Úsome_first_instanceÚsome_second_instanceze                12: An error
                12: Another error
                foo: BOOM
            rk   N)rn   r’   rn   r“   rh   rƒ   ©r   Úfirst_instanceÚfirst_errorsÚsecond_instanceÚsecond_errorss   &    r   Útest_multiple_invalid_instancesÚ'TestCLI.test_multiple_invalid_instancesÊ   s‡   € Øˆä˜J°Ô@Ü˜O°nÔEð
ˆð  ˆÜ(¨¸/ÔJÐKˆà×ÑÜØHÜ$(§J¢J¨~Ó$>Ü%)§Z¢Z°Ó%@ôô
 % \ÓAòð ðð 	ö 	
r    c           	     ó  € ^p\        RVR7      \        RVR7      .pRp\        RVR7      .pV P                  \        R\        P                  ! V4      \        P                  ! V4      R7      \        W$4      . RO^RR	7       R
# )r€   r�   re   rŽ   r�   r�   rf   r‘   a¦                  ===[ValidationError]===(some_first_instance)===

                An error
                -----------------------------
                ===[ValidationError]===(some_first_instance)===

                Another error
                -----------------------------
                ===[ValidationError]===(some_second_instance)===

                BOOM
                -----------------------------
            rk   N)rw   rx   rn   r’   rn   r“   rh   rƒ   r”   s   &    r   Ú-test_multiple_invalid_instances_pretty_outputÚ5TestCLI.test_multiple_invalid_instances_pretty_outputé   s‡   € Øˆä˜J°Ô@Ü˜O°nÔEð
ˆð  ˆÜ(¨¸/ÔJÐKˆà×ÑÜØHÜ$(§J¢J¨~Ó$>Ü%)§Z¢Z°Ó%@ôô
 % \ÓAòð ðð! 	ö 	
r    c           	     ó  € ^p\        RVR7      \        RVR7      .pRp\        RVR7      .pV P                  \        R\        P                  ! V4      \        P                  ! V4      R7      \        W$4      . RO^RR	7       R
# )r€   r�   re   rŽ   r�   r�   rf   r‘   z5:An error._-_.12::Another error._-_.12::BOOM._-_.foo:rk   N)ú--error-formatú&:{error.message}._-_.{error.instance}:rn   r’   rn   r“   rh   rƒ   r”   s   &    r   Útest_custom_error_formatÚ TestCLI.test_custom_error_format  s…   € Øˆä˜J°Ô@Ü˜O°nÔEð
ˆð  ˆÜ(¨¸/ÔJÐKˆà×ÑÜØHÜ$(§J¢J¨~Ó$>Ü%)§Z¢Z°Ó%@ôô
 % \ÓAòð ØJð! 	ö 	
r    c                óF   € V P                  \        R R7      R.^RR7       R# )z{"type": 12}©rh   rh   úO                12: 12 is not valid under any of the given schemas
            ©rY   rX   rZ   rO   N©ra   rp   ©r   s   &r   Útest_invalid_schemaÚTestCLI.test_invalid_schema.  s*   € Ø×ÑÜ >Ô2Ø�àðð 	ö 	
r    c           	     ó\  € R ^/pV P                  \        4      ;_uu_ 4       p\        VRR7       RRR4       \        XP                  4      pV P                  \        \        P                  ! V4      R7      . RO^R\        V4      ,           R,           R7       R#   + '       g   i     Ls; i)	ÚtypeÚ ©r)   r#   Nr¤   ú%===[SchemaError]===(some_schema)===

ú
-----------------------------
r¦   ©rw   rx   rh   ©	ÚassertRaisesr   r   rF   Ú	exceptionra   rp   rC   rq   ©r   r)   ÚerH   s   &   r   Ú!test_invalid_schema_pretty_outputÚ)TestCLI.test_invalid_schema_pretty_output9  s…   € Ø˜"�ˆà×Ñœ{×+Ô+¨qÜ˜F¨RÕ0÷ ,ä�A—K‘KÓ ˆà×ÑÜ¤4§:¢:¨fÓ#5Ô6Ú6àà9Ü�e“*õà5õ6ð 	ö 
	
÷	 ,×+ús   ¢BÂB+	c                óF   € V P                  \        R R7      R.^RR7       R# )z{"type": 12, "items": 57}r¤   rh   zF                57: 57 is not of type 'object', 'boolean'
            r¦   Nr§   r¨   s   &r   Ú#test_invalid_schema_multiple_errorsÚ+TestCLI.test_invalid_schema_multiple_errorsL  s+   € Ø×ÑÜÐ#>Ô?Ø�àðð 	ö 	
r    c           	     ó`  € R ^R^9/pV P                  \        4      ;_uu_ 4       p\        VRR7       RRR4       \        XP                  4      pV P                  \        \        P                  ! V4      R7      . R	O^R\        V4      ,           R,           R7       R#   + '       g   i     Ls; i)
r¬   Úitemsr­   r®   Nr¤   r¯   r°   r¦   r±   r²   rµ   s   &   r   Ú1test_invalid_schema_multiple_errors_pretty_outputÚ9TestCLI.test_invalid_schema_multiple_errors_pretty_outputW  sŠ   € Ø˜"˜g rÐ*ˆà×Ñœ{×+Ô+¨qÜ˜F¨RÕ0÷ ,ä�A—K‘KÓ ˆà×ÑÜ¤4§:¢:¨fÓ#5Ô6Ú6àà9Ü�e“*õà5õ6ð 	ö 
	
÷	 ,×+ús   ¤BÂB-	c                óJ   € V P                  \        RRR7      . RO^RR7       R# )z^
"Validating" an instance that's invalid under an invalid schema
just shows the schema error.
z{"type": 12, "minimum": 30}Ú13rg   r¥   r¦   Nrm   r§   r¨   s   &r   Ú)test_invalid_schema_with_invalid_instanceÚ1TestCLI.test_invalid_schema_with_invalid_instancej  s2   € ð
 	×ÑÜØ9Ø"ôò 8àðð 	ö 	
r    c           	     óŠ  € ^R^R^/r!V P                  \        4      ;_uu_ 4       p\        W!R7       RRR4       \        XP                  4      pV P                  \        \        P                  ! V4      \        P                  ! V4      R7      . R	O^R\        V4      ,           R,           R7       R#   + '       g   i     Lˆ; i)
é   r¬   Úminimumr®   Nrg   r¯   r°   r¦   ©rw   rx   rn   ri   rh   r²   )r   r#   r)   r¶   rH   s   &    r   Ú7test_invalid_schema_with_invalid_instance_pretty_outputÚ?TestCLI.test_invalid_schema_with_invalid_instance_pretty_output|  sœ   € Ø ¨¨I°rÐ:�&à×Ñœ{×+Ô+¨qÜ˜FÕ6÷ ,ä�A—K‘KÓ ˆà×ÑÜÜ ŸJšJ vÓ.Ü"Ÿjšj¨Ó2ôò Nàà9Ü�e“*õà5õ6ð 	ö 	
÷	 ,×+ús   ¥B2Â2C	c           
     ó|   € V P                  \        R RRR7      . RO^RP                  \        R4      4      R7       R# )z{"minimum": 30}únot valid JSON!Ú12)rh   r•   r—   zw                Failed to parse 'first_instance': {}
                12: 12 is less than the minimum of 30
            r¦   N)rn   r•   rn   r—   rh   )ra   rp   ÚformatrI   r¨   s   &r   Ú-test_invalid_instance_continues_with_the_restÚ5TestCLI.test_invalid_instance_continues_with_the_rest’  sG   € Ø×ÑÜØ-Ø0Ø $ôò
ð ð÷ ‘”|Ð$5Ó6Ó7ð! 	ö 	
r    c                ó  € ^R^R^/r!V P                  \        4      ;_uu_ 4        \        W!R7       RRR4       V P                  \	        \
        P                  ! V4      R7      . RO^RR7       R#   + '       g   i     LG; i)	rÅ   r¬   rÆ   r®   Nr¤   z7:12 is not valid under any of the given schemas._-_.12:r¦   )rŸ   r    rh   )r³   r   r   ra   rp   rC   rq   )r   r#   r)   s   &  r   Ú1test_custom_error_format_applies_to_schema_errorsÚ9TestCLI.test_custom_error_format_applies_to_schema_errors¦  sl   € Ø ¨¨I°rÐ:�&à×Ñœ{×+Õ+Ü˜FÕ6÷ ,ð 	×ÑÜ¤4§:¢:¨fÓ#5Ô6òð
 ØLð 	ö 
	
÷ ,×+ús   ¥A1Á1B	c           	     óh   € R pV P                  \        RVR7      . RO^R\        V4       R2R7       R# )rË   ú{}rg   z1                Failed to parse 'some_instance': ú
            r¦   Nrm   ©ra   rp   rI   ©r   r#   s   & r   Útest_instance_is_invalid_JSONÚ%TestCLI.test_instance_is_invalid_JSON¸  sE   € Ø$ˆà×ÑÜ 4°xÔ@Ú7àð2Ü2>¸xÓ2HÐ1Ið Jðð 	ö 	
r    c                ó¶   € V P                  \        R RR7      . RO^R7      w  rV P                  V4       V P                  RV4       V P	                  RV4       R# )rÔ   rË   rg   rh   ©rY   rX   rZ   z7(some_instance)===

Traceback (most recent call last):
NrÇ   ©r^   rp   rS   ÚassertInÚassertNotIn©r   rN   rO   s   &  r   Ú+test_instance_is_invalid_JSON_pretty_outputÚ3TestCLI.test_instance_is_invalid_JSON_pretty_outputÅ  sb   € ØŸ™ÜØ Ø/ôò
 Nàð &ó 	
‰ˆð 	×Ñ˜Ô Ø�‰ØHØô	
ð 	×Ñ˜¨Ö/r    c           
     óx   € R pV P                  \        RR7      \        V4      R.^R\        V4       R2R7       R# )rË   rÔ   r¤   rh   z)                Failed to parse <stdin>: rÕ   )rY   rM   rX   rZ   rO   N)ra   rp   r   rI   r×   s   & r   Ú&test_instance_is_invalid_JSON_on_stdinÚ.TestCLI.test_instance_is_invalid_JSON_on_stdin×  sM   € Ø$ˆà×ÑÜ 4Ô(Ü˜8Ó$à�àð*Ü*6°xÓ*@Ð)Að Bðð 	ö 
	
r    c                óÈ   € V P                  \        R R7      \        R4      . RO^R7      w  rV P                  V4       V P	                  RV4       V P                  RV4       R# )rÔ   r¤   rË   rh   )rY   rM   rX   rZ   z1(<stdin>)===

Traceback (most recent call last):
Nr±   )r^   rp   r   rS   rÝ   rÞ   rß   s   &  r   Ú4test_instance_is_invalid_JSON_on_stdin_pretty_outputÚ<TestCLI.test_instance_is_invalid_JSON_on_stdin_pretty_outputæ  sb   € ØŸ™Ü 4Ô(ÜÐ,Ó-â6àð &ó 
‰ˆð 	×Ñ˜Ô Ø�‰ØBØô	
ð 	×Ñ˜¨Ö/r    c           	     ód   € R pV P                  \        VR7      R.^R\        V4       R2R7       R# )rË   r¤   rh   ú/                Failed to parse 'some_schema': rÕ   r¦   NrÖ   r(   s   & r   Útest_schema_is_invalid_JSONÚ#TestCLI.test_schema_is_invalid_JSONö  sE   € Ø"ˆà×ÑÜ 6Ô*à�àð0Ü0<¸VÓ0DÐ/Eð Fðð 	ö 		
r    c                ó�   € V P                  \        R R7      . RO^R7      w  rV P                  V4       V P                  RV4       R# )rË   r¤   rÛ   ú5(some_schema)===

Traceback (most recent call last):
Nr±   )r^   rp   rS   rÝ   rß   s   &  r   Ú)test_schema_is_invalid_JSON_pretty_outputÚ1TestCLI.test_schema_is_invalid_JSON_pretty_output  sH   € ØŸ™ÜÐ#4Ô5â6àð &ó 
‰ˆð 	×Ñ˜Ô Ø�‰ØFØö	
r    c           	     óf   € RRr!V P                  \        WR7      R.^R\        V4       R2R7       R# )	ú=
Only the schema error is reported, as we abort immediately.
rË   úalso not valid JSON!rg   rh   ré   rÕ   r¦   NrÖ   ©r   r)   r#   s   &  r   Ú.test_schema_and_instance_are_both_invalid_JSONÚ6TestCLI.test_schema_and_instance_are_both_invalid_JSON  sJ   € ð -Ð.D�Ø×ÑÜ 6ÔBà�àð0Ü0<¸VÓ0DÐ/Eð Fðð 	ö 		
r    c                ó¶   € V P                  \        RRR7      . RO^R7      w  rV P                  V4       V P                  RV4       V P	                  RV4       R# )	rñ   rË   rò   rg   ri   rÛ   rí   NrÇ   rÜ   rß   s   &  r   Ú<test_schema_and_instance_are_both_invalid_JSON_pretty_outputÚDTestCLI.test_schema_and_instance_are_both_invalid_JSON_pretty_output"  sd   € ð Ÿ™ÜØ-Ø4ôò
 Nàð &ó 	
‰ˆð 	×Ñ˜Ô Ø�‰ØFØô	
ð 	×Ñ˜¨&Ö1r    c                óH   € V P                  \        R R7      . RO^RR7       R# )rÔ   r¤   zC                'nonexisting_instance' does not exist.
            r¦   N)rn   Únonexisting_instancerh   r§   r¨   s   &r   Útest_instance_does_not_existÚ$TestCLI.test_instance_does_not_exist7  s(   € Ø×ÑÜ 4Ô(Ú>àðð 	ö 	
r    c                óH   € V P                  \        R R7      . RO^RR7       R# )rÔ   r¤   zµ                ===[FileNotFoundError]===(nonexisting_instance)===

                'nonexisting_instance' does not exist.
                -----------------------------
            r¦   N)rw   rx   rn   rú   rh   r§   r¨   s   &r   Ú*test_instance_does_not_exist_pretty_outputÚ2TestCLI.test_instance_does_not_exist_pretty_outputB  s,   € Ø×ÑÜ 4Ô(òð ðð 	ö 	
r    c                ó0   € V P                  R .^RR7       R# )Únonexisting_schemaú%'nonexisting_schema' does not exist.
©rX   rZ   rO   N©ra   r¨   s   &r   Útest_schema_does_not_existÚ"TestCLI.test_schema_does_not_existT  s!   € Ø×ÑØ&Ð'àØ;ð	 	ö 	
r    c                ó2   € V P                  . RO^RR7       R# )rw   ú±                ===[FileNotFoundError]===(nonexisting_schema)===

                'nonexisting_schema' does not exist.
                -----------------------------
            r  N)rw   rx   r  r  r¨   s   &r   Ú(test_schema_does_not_exist_pretty_outputÚ0TestCLI.test_schema_does_not_exist_pretty_output\  s    € Ø×ÑÚ=àðð	 	ö 
	
r    c                ó2   € V P                  . RO^RR7       R# )rn   r  r  N)rn   rú   r  r  r¨   s   &r   Ú&test_neither_instance_nor_schema_existÚ.TestCLI.test_neither_instance_nor_schema_existi  s   € Ø×ÑÚEàØ;ð	 	ö 	
r    c                ó2   € V P                  . RO^RR7       R# )rw   r  r  N)rw   rx   rn   rú   r  r  r¨   s   &r   Ú4test_neither_instance_nor_schema_exist_pretty_outputÚ<TestCLI.test_neither_instance_nor_schema_exist_pretty_outputq  s$   € Ø×Ñòð ðð 	ö 	
r    c                óJ   € V P                  \        R R R7      . RORRR7       R# ©rÔ   rg   r­   ©rY   rX   rN   rO   Nrm   r§   r¨   s   &r   Útest_successful_validationÚ"TestCLI.test_successful_validation‚  ó(   € Ø×ÑÜ 4°tÔ<Ú7ØØð	 	ö 	
r    c                óJ   € V P                  \        R R R7      . RORRR7       R# ©rÔ   rg   z"===[SUCCESS]===(some_instance)===
r­   r  NrÇ   r§   r¨   s   &r   Ú(test_successful_validation_pretty_outputÚ0TestCLI.test_successful_validation_pretty_outputŠ  ó(   € Ø×ÑÜ 4°tÔ<ÚMØ8Øð	 	ö 	
r    c                óZ   € V P                  \        R R7      \        R 4      R.RRR7       R# )rÔ   r¤   rh   r­   ©rY   rM   rX   rN   rO   N©ra   rp   r   r¨   s   &r   Ú#test_successful_validation_of_stdinÚ+TestCLI.test_successful_validation_of_stdin’  s/   € Ø×ÑÜ 4Ô(Ü˜4“.Ø�ØØð 	ö 	
r    c                ó\   € V P                  \        R R7      \        R 4      . RORRR7       R# )rÔ   r¤   z===[SUCCESS]===(<stdin>)===
r­   r  Nr±   r  r¨   s   &r   Ú1test_successful_validation_of_stdin_pretty_outputÚ9TestCLI.test_successful_validation_of_stdin_pretty_output›  s-   € Ø×ÑÜ 4Ô(Ü˜4“.Ú6Ø2Øð 	ö 	
r    c                óJ   € V P                  \        R R R7      . RORRR7       R# r  r§   r¨   s   &r   Ú-test_successful_validation_of_just_the_schemaÚ5TestCLI.test_successful_validation_of_just_the_schema¤  r  r    c                óJ   € V P                  \        R R R7      . RORRR7       R# r  r§   r¨   s   &r   Ú;test_successful_validation_of_just_the_schema_pretty_outputÚCTestCLI.test_successful_validation_of_just_the_schema_pretty_output¬  r  r    c                óœ  € \         P                  ! R R7      pVP                  4        V P                  \        P
                  VP                  4       \        VP                  4      pVP                  R4       RVP                   R2pV P                  \        VRR7      RRR	VP                  P                  4       R
,           R.RRR7       R# )F©Údeleteú-{"definitions": {"num": {"type": "integer"}}}ú
{"$ref": "ú#/definitions/num"}Ú1rg   rn   ri   ú
--base-uriÚ/rh   r­   r  N©ÚtempfileÚNamedTemporaryFileÚcloseÚ
addCleanupÚosÚremoveÚnamer   Ú
write_textra   rp   ÚparentÚas_uri©r   Úref_schema_fileÚref_pathr)   s   &   r   Ú0test_successful_validation_via_explicit_base_uriÚ8TestCLI.test_successful_validation_via_explicit_base_uri´  s±   € Ü"×5Ò5¸UÔCˆØ×ÑÔØ�‰œŸ	™	 ?×#7Ñ#7Ô8ä˜×,Ñ,Ó-ˆØ×ÑÐKÔLà˜xŸ}™}˜oÐ-AÐBˆà×ÑÜ 6¸Ô=à�oØ˜hŸo™o×4Ñ4Ó6¸Õ<Øðð
 Øð 	ö 		
r    c                óž  € \         P                  ! R R7      pVP                  4        V P                  \        P
                  VP                  4       \        VP                  4      pVP                  R4       RVP                   R2pV P                  \        VRR7      RRR	VP                  P                  4       R
,           R.^RRR7       R# )Fr+  r-  r.  r/  z"1"rg   rn   ri   r1  r2  rh   r­   z 1: '1' is not of type 'integer'
©rY   rX   rZ   rN   rO   Nr3  r>  s   &   r   Ú2test_unsuccessful_validation_via_explicit_base_uriÚ:TestCLI.test_unsuccessful_validation_via_explicit_base_uriÉ  s´   € Ü"×5Ò5¸UÔCˆØ×ÑÔØ�‰œŸ	™	 ?×#7Ñ#7Ô8ä˜×,Ñ,Ó-ˆØ×ÑÐKÔLà˜xŸ}™}˜oÐ-AÐBˆà×ÑÜ 6¸Ô?à�oØ˜hŸo™o×4Ñ4Ó6¸Õ<Øðð
 ØØ6ð 	ö 
	
r    c           
     óx  € R pRpV P                  \        4      ;_uu_ 4       pV P                  \        VVR7      RRR\        P
                  ! 4       P                  4       R.R7       RRR4       \        XP                  4      pV P                  \        P                   R	2V4       R#   + '       g   i     LJ; i)
z4{"$ref": "someNonexistentFile.json#definitions/num"}r0  rg   rn   ri   r1  rh   ©rY   rX   NzsomeNonexistentFile.json')r³   r   ra   rp   r   Úcwdr=  rF   r´   rÝ   r8  Úsep©r   r)   r#   r¶   rH   s   &    r   Ú,test_nonexistent_file_with_explicit_base_uriÚ4TestCLI.test_nonexistent_file_with_explicit_base_uriß  sœ   € ØGˆØˆà×ÑÔ2×3Ô3°qØ×ÑÜØ &Ø"*ôð
 ˜/Ø ¤$§(¢(£*×"3Ñ"3Ó"5Ø!ðð ô 
÷ 4ô �A—K‘KÓ ˆØ�‰œŸ™˜Ð 9Ð:¸EÖB÷ 4×3ús   ¢AB)Â)B9	c           	     ó  € R pRpV P                  \        4      ;_uu_ 4       pV P                  \        VVR7      . ROR7       RRR4       \	        XP
                  4      pV P                  VR4       R#   + '       g   i     L9; i)z${"$ref": "foo.json#definitions/num"}r0  rg   rH  Nzunknown url type: 'foo.json')rn   ri   r1  znot@UR1rh   )r³   r   ra   rp   rF   r´   rV   rK  s   &    r   Útest_invalid_explicit_base_uriÚ&TestCLI.test_invalid_explicit_base_uriò  sx   € Ø7ˆØˆà×ÑÔ2×3Ô3°qØ×ÑÜØ &Ø"*ôòð ô 
÷ 4ô �A—K‘KÓ ˆØ×ÑØÐ1ö	
÷ 4×3ús   ¢!A4Á4B	c                ó€   € V P                  \        \        4       V P                  \	        R RR7      . RO^RRR7       R# )z{"const": "check"}z"a"rg   r­   za: 'check' was expected
rD  Nrm   )ÚassertIsr   r   ra   rp   r¨   s   &r   Ú=test_it_validates_using_the_latest_validator_when_unspecifiedÚETestCLI.test_it_validates_using_the_latest_validator_when_unspecified  s=   € ð 	�‰Ô*¬OÔ<à×ÑÜÐ#7ÀuÔMÚ7ØØØ.ð 	ö 	
r    c                óR   € RpRpV P                  \        WR7      . RO^RRR7       R# )	z7
Specifically, `const` validation applies for Draft 7.
zŒ
            {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "const": "check"
            }
        ú"foo"rg   r­   zfoo: 'check' was expected
rD  Nrm   r§   ró   s   &  r   Ú-test_it_validates_using_draft7_when_specifiedÚ5TestCLI.test_it_validates_using_draft7_when_specified  s7   € ðˆð ˆØ×ÑÜ 6ÔBÚ7ØØØ0ð 	ö 	
r    c                óP   € RpRpV P                  \        WR7      . RORRR7       R# )z@
Specifically, `const` validation *does not* apply for Draft 4.
z�
            {
                "$schema": "http://json-schema.org/draft-04/schema#",
                "const": "check"
            }
            rV  rg   r­   r  Nrm   r§   ró   s   &  r   Ú-test_it_validates_using_draft4_when_specifiedÚ5TestCLI.test_it_validates_using_draft4_when_specified*  s4   € ðˆð ˆØ×ÑÜ 6ÔBÚ7ØØð	 	ö 	
r    r   )r­   r­   )4r,   r-   r.   r/   r   r^   ra   rs   ry   r}   r‡   rŠ   r™   rœ   r¡   r©   r·   rº   r¾   rÂ   rÈ   rÎ   rÑ   rØ   rà   rã   ræ   rê   rî   rô   r÷   rû   rþ   r  r	  r  r  r  r  r  r"  r%  r(  rA  rE  rL  rO  rS  rW  rZ  r1   r2   ©r3   s   @r   rK   rK   A   s÷   ø‡ € à¡h£j¸Aô4ô@
ò
ò
ò(
ò
ò*
ò6
ò>'
òR
ò8	
ò
ò&	
ò
ò&
ò$
ò,
ò(
ò$
ò0ò$
ò0ò 
ò
ò
ò 2ò*	
ò
ò$
ò
ò
ò
ò"
ò
ò
ò
ò
ò
ò
ò*
ò,Cò&
ò*
ò 
÷&
ð 
r    rK   c                   óL   a € ] tR tRt o ]! 4       tR tR tR tR t	R t
RtV tR# )	Ú
TestParseri=  c                ó|   € \         P                  ! . RO4      pV P                  VR,          V P                  4       R# )ú--validatorrl   N)r`  z2jsonschema.tests.test_cli.TestParser.FakeValidatorú
--instanceúmem://some/instanceúmem://some/schema)r   rQ   rR  r4   ©r   r\   s   & r   Ú2test_find_validator_by_fully_qualified_object_nameÚ=TestParser.test_find_validator_by_fully_qualified_object_nameA  s0   € Ü—N’Nòó
ˆ	ð 	�‰�i Õ,¨d×.@Ñ.@ÖAr    c                óp   € \         P                  ! . RO4      pV P                  VR,          \        4       R# )r`  rl   N)r`  r   ra  rb  rc  )r   rQ   rR  r   rd  s   & r   Ú!test_find_validator_in_jsonschemaÚ,TestParser.test_find_validator_in_jsonschemaL  s*   € Ü—N’Nòó
ˆ	ð 	�‰�i Õ,¬oÖ>r    c                óÂ  € \        4       \        4       r2\        V4      ;_uu_ 4        \        V4      ;_uu_ 4        V P                  \        4      ;_uu_ 4        \
        P                  ! V4       R R R 4       R R R 4       R R R 4       VP                  4       VP                  4       3#   + '       g   i     L@; i  + '       g   i     LK; i  + '       g   i     LV; ir   )r   r   r   r³   Ú
SystemExitr   rQ   rW   )r   rX   rN   rO   s   &*  r   Úcli_output_forÚTestParser.cli_output_forV  s€   € Ü!›¤X£Z�Ü˜V×$Õ$¤o°f×&=Õ&=Ø×"Ñ"¤:×.Õ.Ü—’˜tÔ$÷ /÷ '>×$ð �‰Ó  &§/¡/Ó"3Ð3Ð3÷ /×.ú÷ '>×&=ú×$×$ús:   §C»B;	ÁB(Á0B;	Á8CÂ(B8Â3B;	Â;CÃCÃC	c                óv   € V P                  R RR4      w  rV P                  RV4       V P                  V4       R# )rw   r�   rc  zinvalid choice: 'foo'N©rl  rÝ   rS   rß   s   &  r   Útest_unknown_outputÚTestParser.test_unknown_output]  s;   € Ø×,Ñ,Ø˜Øó
‰ˆð 	�‰Ð-¨vÔ6Ø×Ñ˜Ö r    c                óz   € V P                  R RRRR4      w  rV P                  RV4       V P                  V4       R# )rw   rx   rŸ   r�   rc  z3--error-format can only be used with --output plainNro  rß   s   &  r   Útest_useless_error_formatÚ$TestParser.test_useless_error_formate  sE   € Ø×,Ñ,Ø˜Ø˜eØó
‰ˆð
 	�‰ØAØô	
ð 	×Ñ˜Ö r    r   N)r,   r-   r.   r/   r7   r4   re  rh  rl  rp  rs  r1   r2   r\  s   @r   r^  r^  =  s,   ø‡ € á"Ó$€Mò	Bò?ò4ò!÷
!ð 
!r    r^  c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )ÚTestCLIIntegrationir  c                óœ   € \         P                  ! \        P                  R RRR.\         P                  R7      pV P                  RV4       R# )ú-mÚpipÚshowÚ
jsonschema©rO   s   License: MITN)Ú
subprocessÚcheck_outputÚsysÚ
executableÚSTDOUTrÝ   )r   Úoutputs   & r   Útest_licenseÚTestCLIIntegration.test_licenses  s=   € Ü×(Ò(Ü�^‰^˜T 5¨&°,Ð?Ü×$Ñ$ô
ˆð 	�‰�o vÖ.r    c                ó  € \         P                  ! \        P                  R RRRR.\         P                  R7      pVP                  R4      P                  4       pV P                  V\        P                  ! R4      4       R# )z-Wr   rx  r{  z	--versionr|  zutf-8N)
r}  r~  r  r€  r�  ÚdecodeÚstriprV   r   Úversion)r   rˆ  s   & r   Útest_versionÚTestCLIIntegration.test_versionz  sc   € Ü×)Ò)Ü�^‰^˜T 8¨T°<ÀÐMÜ×$Ñ$ô
ˆð —.‘. Ó)×/Ñ/Ó1ˆØ×Ñ˜¤(×"2Ò"2°<Ó"@ÖAr    c                ó  € \         P                  ! \        P                  R R.\         P                  R7      p\         P                  ! \        P                  R RR.\         P                  R7      pV P                  W4       R# )rx  r{  r|  z--helpN)r}  r~  r  r€  r�  rV   )r   r‚  Úoutput_for_helps   &  r   Ú#test_no_arguments_shows_usage_notesÚ6TestCLIIntegration.test_no_arguments_shows_usage_notes‚  sd   € Ü×(Ò(Ü�^‰^˜T <Ð0Ü×$Ñ$ô
ˆô %×1Ò1Ü�^‰^˜T <°Ð:Ü×$Ñ$ô
ˆð 	×Ñ˜Ö1r    r   N)	r,   r-   r.   r/   rƒ  r‰  r�  r1   r2   r\  s   @r   rv  rv  r  s   ø‡ € ò/òB÷	2ð 	2r    rv  )'Ú
contextlibr   r   Ú	importlibr   Úior   rC   r   Úpathlibr   Útextwrapr	   Úunittestr
   r8  r}  r  r4  Úwarningsr{  r   r   Újsonschema.exceptionsr   r   r   Újsonschema.validatorsr   r   Úcatch_warningsÚsimplefilterr   r7   rA   rI   rK   r^  rv  r   r    r   Ú<module>rš     s¥   ðß 7Ý Ý Ý  Ý Ý Ý Û Û 	Û Û 
Û Û ç <÷ñ ÷
 <à×Ò×ÕØ×Ò˜(Ô#Ý÷ ò
ò&òMôy
ˆhô y
ôx2!�ô 2!ôj2˜ö 2÷w ×ús   Á8CÃC	