+
     ho  c                   s   ^ 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)i    )redirect_stderrredirect_stdout)metadata)StringIO)JSONDecodeError)Path)dedent)TestCaseN)Draft4ValidatorDraft202012Validator)SchemaErrorValidationError_RefResolutionError)_LATEST_VERSIONvalidateignore)clic                  sJ   a  \        \        S 4      4      o  ! V 3R  lR4      pV# )c                   sD   <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 )selfZargskwargss   &*,>/usr/lib/python3.14/site-packages/jsonschema/tests/test_cli.py__init__Z.fake_validator.<locals>.FakeValidator.__init__    s        c                s8   < S'       d   SP                  4       # . # r   )Zpop)r   instanceerrorss   &&r   iter_errorsZ1fake_validator.<locals>.FakeValidator.iter_errors#   s    zz|#Ir   c                r   r   r   r   schemas   &&r   check_schemaZ2fake_validator.<locals>.FakeValidator.check_schema(   s    r   r   N)
__name__
__module____qualname____firstlineno__r   r   Zclassmethodr   __static_attributes____classdictcell__)__classdict__r   s   @r   FakeValidatorr      s#     		
 
	 
	r   r'   )ZlistZreversed)r   r'   s   j r   fake_validatorr(      s$    (6"#F  r   c                 s   a  V 3R  lpV# )c                 sZ   < SP                  V 4      pVf   \        V 4      h\        V4      # r   )ZgetZFileNotFoundErrorr   )ZpathZcontentsall_contentss   & r   openZfake_open.<locals>.open0   s/    ##D)#D))!!r   r   )r)   r*   s   f r   	fake_openr+   /   s    "
 Kr   c                 s     \         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)jsonZloadsZRuntimeErrorr   str)Znon_jsonerror   & r   _message_forr0   8   s>    M

8 KLL  5zs   # A
>AAc                   sF  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                s   \         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
                )Zmsg)r   
parse_argsZupdateassertFalseZhasattrr+   r*   r   ZrunassertEqualr   getvalue)
r   argvfilesr2   	exit_codeZoverride	argumentsr3   r4   Zactual_exit_codes
   &&&&&,    r   run_cliZTestCLI.run_cliB   s     NN4(	"f-.U[[b)		%ZF"ww	  V..7[=M<N O#__./ 0#__./ 0. 	 
	
  &//"333 s   &-C> >Dc                sr    V P                  V P                  ! R/ VB \        V4      \        V4      34       R # )Nr   )r7   r=   r   )r   r3   r4   r   s   &&&,r   assertOutputsZTestCLI.assertOutputsb   s/    LL"6"F^VF^,	
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!
r:   	validatorr9   r;   r4   N-irE   rD   r   r>   dictr,   dumpsr   r(   r   r.   r/   r   test_invalid_instanceZTestCLI.test_invalid_instanceh   sR     02>H"jj8 %eW-7) 	 	
r   c                r?   )r@   rA   rB   rC   z                ===[ValidationError]===(some_instance)===

                I am an error!
                -----------------------------
            rG   NrJ   rE   --outputprettyrD   rK   rN   r/   r   #test_invalid_instance_pretty_outputZ+TestCLI.test_invalid_instance_pretty_outputw   sT     02>H"jj8 %eW-M 	 	
r   c                r?   )r@   rA   rB   rC   rF   rG   N)rQ   ZplainrJ   rE   rD   rK   rN   r/   r   +test_invalid_instance_explicit_plain_outputZ3TestCLI.test_invalid_instance_explicit_plain_output   sR     02>H"jj8 %eW-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 errorrA   Second errorrB   rC   zM                12: First error
                12: Second error
            rG   NrI   r   r>   rL   r,   rM   r(   r   r   ZfirstZsecond   &   r   %test_invalid_instance_multiple_errorsZ-TestCLI.test_invalid_instance_multiple_errors   s`    A (CH"jj2 %e_57 	 	
r   c                rU   )
rV   rW   rA   rX   rB   rC   a                  ===[ValidationError]===(some_instance)===

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

                Second error
                -----------------------------
            rG   NrP   rY   rZ   r[   r   3test_invalid_instance_multiple_errors_pretty_outputZ;TestCLI.test_invalid_instance_multiple_errors_pretty_output   s`    A (CH"jj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
# )rV   An errorrA   Another errorfooBOOMrB   rD   some_first_instancesome_second_instanceze                12: An error
                12: Another error
                foo: BOOM
            rG   N)rJ   rd   rJ   re   rD   rY   r   first_instanceZfirst_errorssecond_instanceZsecond_errors   &    r   test_multiple_invalid_instancesZ'TestCLI.test_multiple_invalid_instances   s    J@OnE
  (/JKH$(JJ~$>%)ZZ%@
 %\A  	 	
r   c           	     r^   )rV   r_   rA   r`   ra   rb   rB   rc   a                  ===[ValidationError]===(some_first_instance)===

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

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

                BOOM
                -----------------------------
            rG   N)rQ   rR   rJ   rd   rJ   re   rD   rY   rf   ri   r   -test_multiple_invalid_instances_pretty_outputZ5TestCLI.test_multiple_invalid_instances_pretty_output   s    J@OnE
  (/JKH$(JJ~$>%)ZZ%@
 %\A ! 	 	
r   c           	     r^   )rV   r_   rA   r`   ra   rb   rB   rc   z5:An error._-_.12::Another error._-_.12::BOOM._-_.foo:rG   N)--error-format&:{error.message}._-_.{error.instance}:rJ   rd   rJ   re   rD   rY   rf   ri   r   test_custom_error_formatZ TestCLI.test_custom_error_format  s    J@OnE
  (/JKH$(JJ~$>%)ZZ%@
 %\A J! 	 	
r   c                F    V P                  \        R R7      R.^RR7       R# )z{"type": 12}rD   rD   O                12: 12 is not valid under any of the given schemas
            r:   r9   r;   r4   Nr>   rL   r      &r   test_invalid_schemaZTestCLI.test_invalid_schema.  s*    >2 	 	
r   c           	     s\   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   Nrp   %===[SchemaError]===(some_schema)===


-----------------------------
rr   rQ   rR   rD   	assertRaisesr
   r   r-   	exceptionr>   rL   r,   rM   r   r   er.   r[   r   !test_invalid_schema_pretty_outputZ)TestCLI.test_invalid_schema_pretty_output9  s    "{++qFR0 ,AKK 4::f#5669e*56 	 
	
	 ,+s   BB+	c                ro   )z{"type": 12, "items": 57}rp   rD   zF                57: 57 is not of type 'object', 'boolean'
            rr   Nrs   rt   ru   r   #test_invalid_schema_multiple_errorsZ+TestCLI.test_invalid_schema_multiple_errorsL  s+    #>? 	 	
r   c           	     s`   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)
rw   Zitemsrx   ry   Nrp   rz   r{   rr   r|   r}   r   r[   r   1test_invalid_schema_multiple_errors_pretty_outputZ9TestCLI.test_invalid_schema_multiple_errors_pretty_outputW  s    "gr*{++qFR0 ,AKK 4::f#5669e*56 	 
	
	 ,+s   BB-	c                sJ    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}Z13rC   rq   rr   NrI   rs   rt   ru   r   )test_invalid_schema_with_invalid_instanceZ1TestCLI.test_invalid_schema_with_invalid_instancej  s2    
 	9" 8 	 	
r   c           	     s   ^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)
   rw   minimumry   NrC   rz   r{   rr   rQ   rR   rJ   rE   rD   r}   )r   r   r   r   r.   ri   r   7test_invalid_schema_with_invalid_instance_pretty_outputZ?TestCLI.test_invalid_schema_with_invalid_instance_pretty_output|  s    Ir:&{++qF6 ,AKK  JJv."jj2 N9e*56 	 	
	 ,+s   B22C	c           
     s|    V P                  \        R RRR7      . RO^RP                  \        R4      4      R7       R# )z{"minimum": 30}not valid JSON!Z12)rD   rg   rh   zw                Failed to parse 'first_instance': {}
                12: 12 is less than the minimum of 30
            rr   N)rJ   rg   rJ   rh   rD   )r>   rL   Zformatr0   rt   ru   r   -test_invalid_instance_continues_with_the_restZ5TestCLI.test_invalid_instance_continues_with_the_rest  sG    -0 $
  |$567! 	 	
r   c                s   ^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   rw   r   ry   Nrp   z7:12 is not valid under any of the given schemas._-_.12:rr   )rl   rm   rD   )r~   r
   r   r>   rL   r,   rM   )r   r   r      &  r   1test_custom_error_format_applies_to_schema_errorsZ9TestCLI.test_custom_error_format_applies_to_schema_errors  sl    Ir:&{++F6 , 	4::f#56
 L 	 
	
 ,+s   A11B	c           	     sh    R pV P                  \        RVR7      . RO^R\        V4       R2R7       R# )r   {}rC   z1                Failed to parse 'some_instance': 
            rr   NrI   r>   rL   r0   r   r   r/   r   test_instance_is_invalid_JSONZ%TestCLI.test_instance_is_invalid_JSON  sE    $4x@722>x2H1I J 	 	
r   c                s    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   rC   rD   r:   r9   r;   z7(some_instance)===

Traceback (most recent call last):
Nr   r=   rL   r6   assertInassertNotInr   r3   r4   r   r   +test_instance_is_invalid_JSON_pretty_outputZ3TestCLI.test_instance_is_invalid_JSON_pretty_output  sb     /
 N & 	
 	 H	
 	/r   c           
     sx    R pV P                  \        RR7      \        V4      R.^R\        V4       R2R7       R# )r   r   rp   rD   z)                Failed to parse <stdin>: r   )r:   r2   r9   r;   r4   N)r>   rL   r   r0   r   r/   r   &test_instance_is_invalid_JSON_on_stdinZ.TestCLI.test_instance_is_invalid_JSON_on_stdin  sM    $4(8$**6x*@)A B 	 
	
r   c                s    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   rp   r   rD   )r:   r2   r9   r;   z1(<stdin>)===

Traceback (most recent call last):
Nr|   )r=   rL   r   r6   r   r   r   r   r   4test_instance_is_invalid_JSON_on_stdin_pretty_outputZ<TestCLI.test_instance_is_invalid_JSON_on_stdin_pretty_output  sb    4(,-6 & 
 	 B	
 	/r   c           	     sd    R pV P                  \        VR7      R.^R\        V4       R2R7       R# )r   rp   rD   /                Failed to parse 'some_schema': r   rr   Nr   r   r/   r   test_schema_is_invalid_JSONZ#TestCLI.test_schema_is_invalid_JSON  sE    "6*00<V0D/E F 	 		
r   c                s    V P                  \        R R7      . RO^R7      w  rV P                  V4       V P                  RV4       R# )r   rp   r   5(some_schema)===

Traceback (most recent call last):
Nr|   )r=   rL   r6   r   r   r   r   )test_schema_is_invalid_JSON_pretty_outputZ1TestCLI.test_schema_is_invalid_JSON_pretty_output  sH    #456 & 
 	 F	
r   c           	     sf    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!rC   rD   r   r   rr   Nr   r   r   r   r   r   .test_schema_and_instance_are_both_invalid_JSONZ6TestCLI.test_schema_and_instance_are_both_invalid_JSON  sJ     -.D6B00<V0D/E F 	 		
r   c                s    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   rC   rE   r   r   Nr   r   r   r   r   <test_schema_and_instance_are_both_invalid_JSON_pretty_outputZDTestCLI.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   rp   zC                'nonexisting_instance' does not exist.
            rr   N)rJ   nonexisting_instancerD   rs   rt   ru   r   test_instance_does_not_existZ$TestCLI.test_instance_does_not_exist7  s(    4(> 	 	
r   c                r   )r   rp   z                ===[FileNotFoundError]===(nonexisting_instance)===

                'nonexisting_instance' does not exist.
                -----------------------------
            rr   N)rQ   rR   rJ   r   rD   rs   rt   ru   r   *test_instance_does_not_exist_pretty_outputZ2TestCLI.test_instance_does_not_exist_pretty_outputB  s,    4(  	 	
r   c                s0    V P                  R .^RR7       R# )nonexisting_schema%'nonexisting_schema' does not exist.
r9   r;   r4   Nr>   rt   ru   r   test_schema_does_not_existZ"TestCLI.test_schema_does_not_existT  s!    &';	 	 	
r   c                2    V P                  . RO^RR7       R# )rQ                   ===[FileNotFoundError]===(nonexisting_schema)===

                'nonexisting_schema' does not exist.
                -----------------------------
            r   N)rQ   rR   r   r   rt   ru   r   (test_schema_does_not_exist_pretty_outputZ0TestCLI.test_schema_does_not_exist_pretty_output\  s     =	 	 
	
r   c                r   )rJ   r   r   N)rJ   r   r   r   rt   ru   r   &test_neither_instance_nor_schema_existZ.TestCLI.test_neither_instance_nor_schema_existi  s    E;	 	 	
r   c                r   )rQ   r   r   N)rQ   rR   rJ   r   r   r   rt   ru   r   4test_neither_instance_nor_schema_exist_pretty_outputZ<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   rC   rx   r:   r9   r3   r4   NrI   rs   rt   ru   r   test_successful_validationZ"TestCLI.test_successful_validation  (    4t<7	 	 	
r   c                J    V P                  \        R R R7      . RORRR7       R# r   rC   z"===[SUCCESS]===(some_instance)===
rx   r   Nr   rs   rt   ru   r   (test_successful_validation_pretty_outputZ0TestCLI.test_successful_validation_pretty_output  (    4t<M8	 	 	
r   c                sZ    V P                  \        R R7      \        R 4      R.RRR7       R# )r   rp   rD   rx   r:   r2   r9   r3   r4   Nr>   rL   r   rt   ru   r   #test_successful_validation_of_stdinZ+TestCLI.test_successful_validation_of_stdin  s/    4(4. 	 	
r   c                s\    V P                  \        R R7      \        R 4      . RORRR7       R# )r   rp   z===[SUCCESS]===(<stdin>)===
rx   r   Nr|   r   rt   ru   r   1test_successful_validation_of_stdin_pretty_outputZ9TestCLI.test_successful_validation_of_stdin_pretty_output  s-    4(4.62 	 	
r   c                r   r   rs   rt   ru   r   -test_successful_validation_of_just_the_schemaZ5TestCLI.test_successful_validation_of_just_the_schema  r   r   c                r   r   rs   rt   ru   r   ;test_successful_validation_of_just_the_schema_pretty_outputZCTestCLI.test_successful_validation_of_just_the_schema_pretty_output  r   r   c                s   \         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Zdelete-{"definitions": {"num": {"type": "integer"}}}
{"$ref": "#/definitions/num"}1rC   rJ   rE   
--base-uri/rD   rx   r   NtempfileZNamedTemporaryFileZcloseZ
addCleanuposZremoveZnamer   Z
write_textr>   rL   Zparentas_urir   Zref_schema_fileZref_pathr   r[   r   0test_successful_validation_via_explicit_base_uriZ8TestCLI.test_successful_validation_via_explicit_base_uri  s    "55UC		?#7#78,,-KLx}}o-AB6=ohoo446<
  	 		
r   c                s   \         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"rC   rJ   rE   r   r   rD   rx   z 1: '1' is not of type 'integer'
r:   r9   r;   r3   r4   Nr   r   r[   r   2test_unsuccessful_validation_via_explicit_base_uriZ:TestCLI.test_unsuccessful_validation_via_explicit_base_uri  s    "55UC		?#7#78,,-KLx}}o-AB6?ohoo446<
 6 	 
	
r   c           
     sx   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"}r   rC   rJ   rE   r   rD   r:   r9   NzsomeNonexistentFile.json')r~   r   r>   rL   r   Zcwdr   r-   r   r   r   Zsepr   r   r   r   r.   ri   r   ,test_nonexistent_file_with_explicit_base_uriZ4TestCLI.test_nonexistent_file_with_explicit_base_uri  s    G233q &"*
 / $((*"3"3"5!  
 4 AKK  9:EB 43s   AB))B9	c           	     s   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"}r   rC   r   Nzunknown url type: 'foo.json')rJ   rE   r   znot@UR1rD   )r~   r   r>   rL   r-   r   r7   r   ri   r   test_invalid_explicit_base_uriZ&TestCLI.test_invalid_explicit_base_uri  sx    7233q &"*  
 4 AKK 1	
 43s   !A44B	c                s    V P                  \        \        4       V P                  \	        R RR7      . RO^RRR7       R# )z{"const": "check"}z"a"rC   rx   za: 'check' was expected
r   NrI   )assertIsr	   r   r>   rL   rt   ru   r   =test_it_validates_using_the_latest_validator_when_unspecifiedZETestCLI.test_it_validates_using_the_latest_validator_when_unspecified  s=     	*O<#7uM7. 	 	
r   c                sR    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"rC   rx   zfoo: 'check' was expected
r   NrI   rs   r   r   r   -test_it_validates_using_draft7_when_specifiedZ5TestCLI.test_it_validates_using_draft7_when_specified  s7     6B70 	 	
r   c                sP    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"
            }
            r   rC   rx   r   NrI   rs   r   r   r   -test_it_validates_using_draft4_when_specifiedZ5TestCLI.test_it_validates_using_draft4_when_specified*  s4     6B7	 	 	
r   r   )rx   rx   )4r    r!   r"   r#   r   r=   r>   rO   rS   rT   r\   r]   rj   rk   rn   rv   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   r$   r%   r&      @r   r1   r1   A   s     hjA4@


(

*
6
>'
R
8	

&	

&
$
,
(
$
0$
0 


 2*	

$



"






*
,C&
*
 
&
 
r   r1   c                   sL   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                s|    \         P                  ! . RO4      pV P                  VR,          V P                  4       R# )--validatorrH   N)r   z2jsonschema.tests.test_cli.TestParser.FakeValidator
--instancemem://some/instancemem://some/schema)r   r5   r   r'   r   r<   r/   r   2test_find_validator_by_fully_qualified_object_nameZ=TestParser.test_find_validator_by_fully_qualified_object_nameA  s0    NN
	 	i,d.@.@Ar   c                sp    \         P                  ! . RO4      pV P                  VR,          \        4       R# )r   rH   N)r   r   r   r   r   )r   r5   r   r   r   r/   r   !test_find_validator_in_jsonschemaZ,TestParser.test_find_validator_in_jsonschemaL  s*    NN
	 	i,o>r   c                s   \        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~   Z
SystemExitr   r5   r8   )r   r9   r3   r4   s   &*  r   cli_output_forZTestParser.cli_output_forV  s    !XZV$$of&=&="":..t$ / '>$  &//"333 /. '>&=$$s:   CB;	B(0B;	8C(B83B;	;CCC	c                sv    V P                  R RR4      w  rV P                  RV4       V P                  V4       R# )rQ   ra   r   zinvalid choice: 'foo'Nr   r   r6   r   r   r   test_unknown_outputZTestParser.test_unknown_output]  s;    ,,
 	-v6 r   c                sz    V P                  R RRRR4      w  rV P                  RV4       V P                  V4       R# )rQ   rR   rl   ra   r   z3--error-format can only be used with --output plainNr   r   r   r   test_useless_error_formatZ$TestParser.test_useless_error_formate  sE    ,,e

 	A	
 	 r   r   N)r    r!   r"   r#   r(   r'   r   r   r   r   r   r$   r%   r   r   r   r   r   =  s,     "$M	B?4!
! 
!r   r   c                   s2   a  ] tR tRt o R tR tR tRtV tR# )TestCLIIntegrationir  c                s    \         P                  ! \        P                  R RRR.\         P                  R7      pV P                  RV4       R# )-mZpipZshow
jsonschemar4   s   License: MITN)
subprocesscheck_outputsys
executableSTDOUTr   )r   outputr/   r   test_licenseZTestCLIIntegration.test_licenses  s=    ((^^T5&,?$$
 	ov.r   c                s   \         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   r   r   z	--versionr   zutf-8N)
r   r   r   r   r   ZdecodeZstripr7   r   version)r   r   r/   r   test_versionZTestCLIIntegration.test_versionz  sc    ))^^T8T<M$$
 ..)//1("2"2<"@Ar   c                s   \         P                  ! \        P                  R R.\         P                  R7      p\         P                  ! \        P                  R RR.\         P                  R7      pV P                  W4       R# )r   r   r   z--helpN)r   r   r   r   r   r7   )r   r   Zoutput_for_helpr   r   #test_no_arguments_shows_usage_notesZ6TestCLIIntegration.test_no_arguments_shows_usage_notes  sd    ((^^T<0$$
 %11^^T<:$$
 	1r   r   N)	r    r!   r"   r#   r   r   r   r$   r%   r   r   r   r   r   r  s     /B	2 	2r   r   )'Z
contextlibr    r   Z	importlibr   Zior   r,   r   Zpathlibr   Ztextwrapr   Zunittestr   r   r   r   r   Zwarningsr   r   r	   Zjsonschema.exceptionsr
   r   r   Zjsonschema.validatorsr   r   Zcatch_warningsZsimplefilterr   r(   r+   r0   r1   r   r   r   r   r   <module>r      s    7         	  
   < 
 <(# 
&My
h y
x2! 2!j2 2w s   8CC	