
    Mh-              
       z   d dl Z d dlmZmZmZ d dlZe j                            ddej        j	        fdej        j
        fdej        j        fdej        j        fdej        j        fd	ej        j        fg          d
             Zd Ze j                            ddej        j	        fdej        j
        fdej        j        fdej        j        fdej        j        fdej        j        fg          d             Ze j                            dej        j	        ej        j
        ej        j        ej        j        g          e j                            dddg          d                         Ze j                            dej        j	        ej        j
        ej        j        ej        j        g          e j                            dddg          d                         Ze j                            dej        j	        ej        j
        ej        j        ej        j        g          e j                            dddg          d                         Ze j                            ddej        j	        fdej        j
        fdej        j        fdej        j        fdej        j        fd	ej        j        fg          d             Ze j                            ddej        j        fdej        j        fdej        j        fdej        j        fg          d             Zd Zd Zd Zd  Zd! Zd" Zd# Zd$ Zd% Zd& Z dS )'    N)RegistryResourceSpecificationzuri, expectedz,https://json-schema.org/draft/2020-12/schemaz,https://json-schema.org/draft/2019-09/schemaz'http://json-schema.org/draft-07/schema#z'http://json-schema.org/draft-06/schema#z'http://json-schema.org/draft-04/schema#z'http://json-schema.org/draft-03/schema#c                 d    d| i}t          j        |          }|t          ||          k    sJ dS )zE
    The $schema keyword in JSON Schema is a dialect identifier.
    $schema)contentsspecificationN)r   from_contents)uriexpectedr   resources       a/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/referencing/tests/test_jsonschema.py7test_schemas_with_explicit_schema_keywords_are_detectedr      sC    B 3H%h//HxJJJJJJJJJ    c                      d} t          j        t          j        j                  5 }t          j        d| i           d d d            n# 1 swxY w Y   |j        j        | k    sJ d S )N1http://example.com/unknown-json-schema-dialect-idr   )	pytestraisesreferencing
jsonschemaUnknownDialectr   r
   valuer   
dialect_idexcinfos     r   test_unknown_dialectr   -   s    DJ	{-<	=	= 8	:67778 8 8 8 8 8 8 8 8 8 8 8 8 8 8=
******s   A		AAzid, specification$ididc                 D    d}|                     | |i          |k    sJ d S )Nzhttp://example.com/some-schemaid_of)r   r	   r   s      r   test_id_of_mappingr"   4   s2     +CCy))S000000r   r	   r   TFc                 4    |                      |          J d S Nr    r	   r   s     r   test_id_of_boolr&   D   s$     u%%-----r   c                 V    t          |                     |                    g k    sJ d S r$   )list
anchors_inr%   s     r   test_anchors_in_boolr*   R   s1     ((//00B666666r   c                 V    t          |                     |                    g k    sJ d S r$   )r(   subresources_ofr%   s     r   test_subresources_of_boolr-   `   s1     --e4455;;;;;;r   c                 P    t           j                            |           |k    sJ d S r$   r   r   specification_withr   r   s     r   test_specification_withr2   n   s,    < !44S99XEEEEEEr   z&http://json-schema.org/draft-07/schemaz&http://json-schema.org/draft-06/schemaz&http://json-schema.org/draft-04/schemaz&http://json-schema.org/draft-03/schemac                 P    t           j                            |           |k    sJ d S r$   r/   r1   s     r   )test_specification_with_no_empty_fragmentr4      s,    , !44S99XEEEEEEr   c                      d} t          j        t          j        j                  5 }t          j                            |            d d d            n# 1 swxY w Y   |j        j        | k    sJ d S )Nr   )r   r   r   r   r   r0   r   r   r   s     r   'test_specification_with_unknown_dialectr6      s    DJ	{-<	=	= >11*===> > > > > > > > > > > > > > >=
******s    AAAc                      d} t           j                            | t          j                  }|t          j        u sJ d S )Nr   )default)r   r   r0   r   OPAQUE)r   r	   s     r   test_specification_with_defaultr:      sI    DJ*==$ >  M M0000000r   c                     t           j        j                            ddi          } t	                                          d|                                           }|                    d          }|j        | j        k    sJ d S )N$dynamicAnchorfoohttp://example.comzhttp://example.com#foo)	r   r   DRAFT202012create_resourcer   with_resourceresolverlookupr   )onerB   resolveds      r   test_lookup_trivial_dynamic_refrF      s{    

 
,
<
<	5! C zz''(<cBBKKMMH788H,,,,,,r   c            
         t           j        j                            d          } t           j        j                            ddddddddiddid          }t	                                          d|fd| fd	|fg                                          }|                    d          }|j                            d
          }|j                            d          j        }|                    d          }|j        |j        k    sJ d S )NTr>   	fooAnchorr=   r<   barbazr   r<   $defshttp://example.com/foo/http://example.com/foo/barfoo/rJ   
#fooAnchor	r   r   r?   r@   r   with_resourcesrB   rC   r   TRUErootrB   firstsecondfourths         r   (test_multiple_lookup_trivial_dynamic_refrZ      s'   !-==dCCD!-==') &1#,k  	 		
 	
 D& 	

	%t,*D1-t4

 

 
  OO011E^""6**F%%e,,5H__\**F?dm++++++r   c            
         t           j        j                            ddi          } t           j        j                            ddddddddiddid          }t	                                          d|fd	| fd
|fg                                          }|                    d          }|j                            d          }|j                            d          j        }|                    d          }|j        |j        k    sJ d S )N$anchorrH   r>   r=   Tr<   rI   rL   rN   rO   rP   rJ   rQ   rR   )rD   tworB   rW   rX   rY   s         r   2test_multiple_lookup_dynamic_ref_to_nondynamic_refr^      s3   

 
,
<
<	K  C 
 
,
<
<') &1#,k  	 		
 	
 C& 	

	%s+*C0-s3

 

 
  OO011E^""6**F%%e,,5H__\**F?cl******r   c                  R   t           j        j                            ddi          } t	                                          d|                                           }|                    d          }t           j                            |j                  }|j	        | j	        k    sJ d S )N$recursiveAnchorTr>   rB   )
r   r   DRAFT201909r@   r   rA   rB   rC   lookup_recursive_refr   )rD   rB   rW   rE   s       r   !test_lookup_trivial_recursive_refrd     s    

 
,
<
<	T" C zz''(<cBBKKMMHOO011E%:: ;  H ,,,,,,r   c                      t           j        j                            d          } t	          d| i          }t           j                            |                    d                    }|j        | j        k    sJ d S )NTr>   )base_urira   )r   r   rb   r@   r   rc   rB   r   )rU   registryrE   s      r   !test_lookup_recursive_ref_to_boolrh     s~    !-==dCCD-t455H%::"",@"AA ;  H ------r   c                  .   t           j        j                            d          } t           j        j                            dddddddddddid          }t	                                          d|fd| fd	|fg                                          }|                    d          }|j                            d
          }|j                            d          j        }t           j                            |          }|j	        |j	        k    sJ d S )NTr>   r=   rH   r`   r\   rI   r   r`   rM   rN   rO   rP   rJ   ra   
r   r   rb   r@   r   rS   rB   rC   rc   r   rT   s         r   *test_multiple_lookup_recursive_ref_to_boolrm   (  s5   !-==dCCD!-==' $ (,#04'2    
 
	
 	
 D( 	

	%t,*D1-t4

 

 
  OO011E^""6**F%%e,,5H#88(8KKF?dm++++++r   c                  ~   t           j        j                            ddi          } t           j        j                            dddddddddddid          }t           j        j                            dd	i          }t	                                          d|fd
|fd| fg                                          }|                    d          }|j                            d          }|j                            d          j        }t           j                            |          }|j	        |j	        k    sJ d S )Nr`   Tr>   r=   rH   rj   rI   rk   FrN   rO   rP   rJ   ra   rl   )rD   r]   threerB   rW   rX   rY   s          r   8test_multiple_lookup_recursive_ref_with_nonrecursive_refrp   P  sf   

 
,
<
<	T" C 
 
,
<
<' $ (,#04'2    
 
	
 	
 C& ".>>	U# E 	

	%u-*C0-s3

 

 
  OO011E^""6**F%%e,,5H#88(8KKF?cl******r   c                  L    t           j        j        t                      k    sJ d S r$   )r   r   EMPTY_REGISTRYr    r   r   test_empty_registryrt   }  s#    !0HJJ>>>>>>r   )!r   r   r   r   r   referencing.jsonschemamarkparametrizer   r?   rb   DRAFT7DRAFT6DRAFT4DRAFT3r   r   r"   r&   r*   r-   r2   r4   r6   r:   rF   rZ   r^   rd   rh   rm   rp   rt   rs   r   r   <module>r|      s    9 9 9 9 9 9 9 9 9 9      ;".	

 ;".	

 6")	

 6")	

 6")	

 6")	
+ :K K; :K+ + + 	&23	&23	&-.	&-.	{%,-	{%,-
 
1 1
 
1
 **%%	  4-00. . 10 . **%%	  4-007 7 10 7 **%%	  4-00< < 10 <  ;".	

 ;".	

 6")	

 6")	

 6")	

 6")	
+ :F F; :F  5")	

 5")	

 5")	

 5")	
 *F F+ *F+ + +1 1 1- - -$, $, $,N&+ &+ &+R	- 	- 	-. . .%, %, %,P*+ *+ *+Z? ? ? ? ?r   