
    {g2                     x    S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	  \
" S5      r\" S5      rS r " S	 S
\5      rg)zH
Tests for the parts of jsonschema related to the :kw:`format` keyword.
    )TestCase)FormatCheckerValidationError)FormatError)Draft4ValidatorzBoom!zBang!c                 &    U S:X  a  [         e[        e)Nbang)BANGBOOMthings    >/usr/lib/python3/dist-packages/jsonschema/tests/test_format.pyboomr      s    

J    c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestFormatChecker   c                 L    [        SS9nU R                  UR                  5        g )N formats)r   assertFalsecheckersselfcheckers     r   test_it_can_validate_no_formats1TestFormatChecker.test_it_can_validate_no_formats   s     +))*r   c                 v    U R                  [        5         [        S/S9  S S S 5        g ! , (       d  f       g = f)Nzo noesr   )assertRaisesKeyErrorr   )r   s    r   .test_it_raises_a_key_error_for_unknown_formats@TestFormatChecker.test_it_raises_a_key_error_for_unknown_formats   s&    x(8*- )((s   *
8c                    [        [        R                  5      nU R                  [        R                  R                  S5        U R                  [        5         [        R                  " S5      " [        5        S S S 5        U R                  [        R                  [        U[        S4S95        g ! , (       d  f       N== fNr   r   )r   )
dictr   r   
addCleanuppopassertWarnsDeprecationWarning
cls_checksr   assertEqual)r   originals     r   !test_it_can_register_cls_checkers3TestFormatChecker.test_it_can_register_cls_checkers   s    ../..22F;01$$V,T2 2""r
+	
 21s   !B11
B?c                     [        5       nUR                  S5      " [        5        U R                  UR                  [        [         R                  [        S4S95        g r%   )r   checksr   r,   r   r&   r   s     r   test_it_can_register_checkers/TestFormatChecker.test_it_can_register_checkers(   sE    /vt$''tRj9	
r   c                    [        5       nUR                  S[        [        5      S9" [        5        U R                  [        5       nUR                  SSS9  S S S 5        U R                  WR                  R                  [        5        U R                  UR                  R                  [        5        U R                  [        [        5      5         UR                  SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   raises   instanceformatr	   )r   r1   typer   r   r    r   checkassertIs	exceptioncause	__cause__r
   )r   r   cms      r   !test_it_catches_registered_errors3TestFormatChecker.test_it_catches_registered_errors0   s    /vd4j1$7{+rMM2fM5 , 	bll(($/bll,,d3 tDz*MM6&M9 +* ,+ +*s   C,C=,
C:=
Dc                    [        5       nUR                  S[        S9" [        5        [	        SS0US9nU R                  [        5       nUR                  S5        S S S 5        U R                  WR                  R                  [        5        U R                  UR                  R                  [        5        g ! , (       d  f       Nc= f)Nr   r5   r:   )format_checkerr   )r   r1   
ValueErrorr   r   r    r   validater=   r>   r?   r   r@   )r   r   	validatorrA   s       r   7test_format_error_causes_become_validation_error_causesITestFormatChecker.test_format_error_causes_become_validation_error_causes>   s    /vj1$7#Xv$6wO	/2v& 0 	bll(($/bll,,d3	 0/s   
B99
Cc                     [        5       nU R                  [        5         UR                  SSS9  S S S 5        g ! , (       d  f       g = f)Nznot-an-ipv4ipv4r8   )r   r    r   r<   r   s     r   'test_format_checkers_come_with_defaults9TestFormatChecker.test_format_checkers_come_with_defaultsI   s5    
  /{+MM=M@ ,++s	   :
Ac                     [        SS9nUR                  S5      " S 5        UR                  S5      " S 5        UR                  S5      " S 5        U R                  [        U5      S	5        g )
Nr   r   fooc                     gNTr   r   s    r   <lambda>-TestFormatChecker.test_repr.<locals>.<lambda>T       Dr   barc                     grR   r   r   s    r   rS   rT   U   rU   r   bazc                     grR   r   r   s    r   rS   rT   V   rU   r   z.<FormatChecker checkers=['bar', 'baz', 'foo']>)r   r1   r,   reprr   s     r   	test_reprTestFormatChecker.test_reprR   sZ    +u01u01u01M<	
r   r   N)__name__
__module____qualname____firstlineno__r   r"   r.   r2   rB   rI   rM   r[   __static_attributes__r   r   r   r   r      s+    +.

:	4A
r   r   N)__doc__unittestr   
jsonschemar   r   jsonschema.exceptionsr   jsonschema.validatorsr   rF   r   ZeroDivisionErrorr
   r   r   r   r   r   <module>rh      s?     5 - 1'!E
 E
r   