
    g-              
          d dl Z d dlmZmZmZ d dlZe j                  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                  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                  j                  dej                  j                  ej                  j                  ej                  j                  ej                  j                  g      e j                  j                  dddg      d               Ze j                  j                  dej                  j                  ej                  j                  ej                  j                  ej                  j                  g      e j                  j                  dddg      d               Ze j                  j                  dej                  j                  ej                  j                  ej                  j                  ej                  j                  g      e j                  j                  dddg      d               Ze j                  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                  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 y)'    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                 Z    d| i}t        j                  |      }|t        ||      k(  sJ y)zE
    The $schema keyword in JSON Schema is a dialect identifier.
    $schema)contentsspecificationN)r   from_contents)uriexpectedr   resources       V/var/www/openai/venv/lib/python3.12/site-packages/referencing/tests/test_jsonschema.py7test_schemas_with_explicit_schema_keywords_are_detectedr      s4    B 3H%%h/HxJJJJ    c                      d} t        j                  t        j                  j                        5 }t        j                  d| i       d d d        j                  j                  | k(  sJ y # 1 sw Y   %xY w)N1http://example.com/unknown-json-schema-dialect-idr   )	pytestraisesreferencing
jsonschemaUnknownDialectr   r
   valuer   
dialect_idexcinfos     r   test_unknown_dialectr   -   sZ    DJ	{--<<	=	:67 
>==
*** 
>	=s   A,,A5zid, specification$ididc                 8    d}|j                  | |i      |k(  sJ y )Nzhttp://example.com/some-schemaid_of)r   r	   r   s      r   test_id_of_mappingr"   4   s&     +CCy)S000r   r	   r   TFc                 *    | j                  |      J y Nr    r	   r   s     r   test_id_of_boolr&   D   s     u%---r   c                 B    t        | j                  |            g k(  sJ y r$   )list
anchors_inr%   s     r   test_anchors_in_boolr*   R   s"     ((/0B666r   c                 B    t        | j                  |            g k(  sJ y r$   )r(   subresources_ofr%   s     r   test_subresources_of_boolr-   `   s"     --e45;;;r   c                 L    t         j                  j                  |       |k(  sJ y r$   r   r   specification_withr   r   s     r   test_specification_withr2   n   s#    < !!44S9X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                 L    t         j                  j                  |       |k(  sJ y r$   r/   r1   s     r   )test_specification_with_no_empty_fragmentr4      s#    , !!44S9XEEEr   c                      d} t        j                  t        j                  j                        5 }t        j                  j                  |        d d d        j                  j                  | k(  sJ y # 1 sw Y   %xY w)Nr   )r   r   r   r   r   r0   r   r   r   s     r   'test_specification_with_unknown_dialectr6      s[    DJ	{--<<	=11*= 
>==
*** 
>	=s    A44A=c                      d} t         j                  j                  | t        j                        }|t        j                  u sJ y )Nr   )default)r   r   r0   r   OPAQUE)r   r	   s     r   test_specification_with_defaultr:      sD    DJ**==$$ > M M00000r   c                     t         j                  j                  j                  ddi      } t	               j                  d|       j                         }|j                  d      }|j                  | j                  k(  sJ y )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      sm    

 
 
,
,
<
<	5!C z''(<cBKKMH78H,,,r   c            
          t         j                  j                  j                  d      } t         j                  j                  j                  ddddddddiddid      }t	               j                  d|fd| fd	|fg      j                         }|j                  d      }|j                  j                  d
      }|j                  j                  d      j                  }|j                  d      }|j                  |j                  k(  sJ y )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CD!!--==') &1#,k 		
D& 	
	%t,*D1-t4

 
  OO01E^^""6*F%%e,55H__\*F??dmm+++r   c            
      $   t         j                  j                  j                  ddi      } t         j                  j                  j                  ddddddddiddid      }t	               j                  d|fd	| fd
|fg      j                         }|j                  d      }|j                  j                  d      }|j                  j                  d      j                  }|j                  d      }|j                  |j                  k(  sJ y )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^      s   

 
 
,
,
<
<	K C 
 
 
,
,
<
<') &1#,k 		
C& 	
	%s+*C0-s3

 
  OO01E^^""6*F%%e,55H__\*F??cll***r   c                  V   t         j                  j                  j                  ddi      } t	               j                  d|       j                         }|j                  d      }t         j                  j                  |j                        }|j                  | j                  k(  sJ y )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 z''(<cBKKMHOO01E%%:: ; H ,,,r   c                     t         j                  j                  j                  d      } t	        d| i      }t         j                  j                  |j                  d            }|j                  | j                  k(  sJ y )NTr>   )base_urira   )r   r   rb   r@   r   rc   rB   r   )rU   registryrE   s      r   !test_lookup_recursive_ref_to_boolrh     su    !!--==dCD-t45H%%::"",@"A ; H ---r   c                  @   t         j                  j                  j                  d      } t         j                  j                  j                  dddddddddddid      }t	               j                  d|fd| fd	|fg      j                         }|j                  d      }|j                  j                  d
      }|j                  j                  d      j                  }t         j                  j                  |      }|j                  |j                  k(  sJ y )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   (  s   !!--==dCD!!--==' $ (,#04'2 
	
D( 	
	%t,*D1-t4

 
  OO01E^^""6*F%%e,55H##88(8KF??dmm+++r   c                     t         j                  j                  j                  ddi      } t         j                  j                  j                  dddddddddddid      }t         j                  j                  j                  dd	i      }t	               j                  d|fd
|fd| fg      j                         }|j                  d      }|j                  j                  d      }|j                  j                  d      j                  }t         j                  j                  |      }|j                  |j                  k(  sJ y )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  sE   

 
 
,
,
<
<	T"C 
 
 
,
,
<
<' $ (,#04'2 
	
C& ""..>>	U#E 	
	%u-*C0-s3

 
  OO01E^^""6*F%%e,55H##88(8KF??cll***r   c                  R    t         j                  j                  t               k(  sJ y r$   )r   r   EMPTY_REGISTRYr    r   r   test_empty_registryrt   }  s    !!00HJ>>>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   ;""..	

 ;""..	

 6""))	

 6""))	

 6""))	

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

 ;""..	

 6""))	

 6""))	

 6""))	

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

 5""))	

 5""))	

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