ó
    ª“,jÞ“  ã                   ó(  • S SK Jr  S SKrS SKJrJrJrJrJr  S SK	J
r
  \" SS S S S	 S
9rS r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r\R$                  R'                  S\\\\\R(                  /5      S 5       rg)é    )ÚHashTrieMapN)ÚAnchorÚRegistryÚResourceÚSpecificationÚ
exceptions)ÚDRAFT202012zid-and-childrenc                 ó$   • U R                  S5      $ )NÚID©Úget©Úcontentss    Ú©C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\referencing/tests/test_core.pyÚ<lambda>r   	   s   € ˜8Ÿ<™<¨Ô-ó    c                 ó&   • U R                  S/ 5      $ )NÚchildrenr   r   s    r   r   r   
   s   €  X§\¡\°*¸bÔ%Ar   c                 ó¢   • UR                  S0 5      R                  5        VVs/ s H  u  p#[        UU R                  US9S9PM     snn$ s  snnf )NÚanchorsr   ©ÚnameÚresource)r   Úitemsr   Úcreate_resource)Úspecificationr   r   Úeachs       r   r   r      sW   € ð
 #Ÿ,™, y°"Ó5×;Ñ;Ô=ô0ò
 >‰JˆDô	 	ØØ"×2Ñ2¸DÐ2ÐAô	
ñ >ó0ùó 0s   ¤#Ac                 óˆ   • [        U 5      S-  (       d.  [        S U S S S2    5       5      (       a  UR                  U5      $ U$ )Né   c              3   ó*   #   • U  H	  oS :H  v •  M     g7f)r   N© )Ú.0r   s     r   Ú	<genexpr>Ú<lambda>.<locals>.<genexpr>   s   é € Ð=ª} t˜
Ö"ª}ùs   ‚)ÚlenÚallÚin_subresource©ÚsegmentsÚresolverÚsubresources      r   r   r      sF   € ä�8‹}˜q× ÜÑ=¨x¹¸!¸ª}Ó=×=Ñ=ð 	×Ñ Ó,ð 	ð ð	r   ©r   Úid_ofÚsubresources_ofÚ
anchors_inÚmaybe_in_subresourcec                 ó   • [        S5      e)zI
A retriever suitable for use in tests which expect it never to be used.
z2This retrieve function expects to never be called!)ÚRuntimeError©Úuris    r   Úblow_upr5      s   € ô ÐKÓ
LÐLr   c                   ó.  • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1r3g2)3ÚTestRegistryé"   c                 ót   • [         R                  " SS0S9nSn[        5       R                  X!S9nX2   UL d   eg)zA
Adding a resource to the registry then allows re-retrieving it.
ÚfooÚbarr   úurn:example©r4   r   N)r   Úopaquer   Úwith_resource©Úselfr   r4   Úregistrys       r   Útest_with_resourceÚTestRegistry.test_with_resource#   s@   € ô
 —?’?¨U°E¨NÑ;ˆØˆÜ“:×+Ñ+°Ð+ÐGˆØ‰} Ò(Ð(Ñ(r   c                 óâ   • [         R                  " 0 S9n[        SS0[        S9n[        5       R	                  SU4SU4/5      nU[        5       R                  SUS9R                  SUS9:X  d   eg)	zD
Adding multiple resources to the registry is like adding each one.
r   r:   r;   ©r   r   úhttp://example.com/1úhttp://example.com/foo/barr=   N)r   r>   ÚID_AND_CHILDRENr   Úwith_resourcesr?   ©rA   ÚoneÚtworB   s       r   Útest_with_resourcesÚ TestRegistry.test_with_resources-   sŽ   € ô
 �oŠo rÑ*ˆÜ ¨ ¼oÑNˆÜ“:×,Ñ,à'¨Ð-Ø-¨sÐ3ðó
ˆð œ8›:×3Ñ3Ø&Øð 4ð 
÷ ‰-Ø,Øð ð 
ó
ð 	
ñ 
r   c                 ó�   • Sn[         R                  USS.5      nU[        5       -  nU[        5       R                  X5      :X  d   eg )Nzurn:example:resourceé   ©r   r:   )rI   r   r   r?   ©rA   r4   r   rB   s       r   Útest_matmul_resourceÚ!TestRegistry.test_matmul_resourceB   sC   € Ø$ˆÜ"×2Ñ2¸#ÀbÑ3IÓJˆØœh›jÑ(ˆØœ8›:×3Ñ3°CÓBÓBÐBÑBr   c                 óÎ   • Sn[         R                  USS.5      nSn[         R                  USS.5      nX$/[        5       -  nU[        5       R                  X4X44/5      :X  d   eg )Nzurn:example:onerQ   rR   zurn:example:two)rI   r   r   rJ   )rA   Úone_urirL   Útwo_urirM   rB   s         r   Útest_matmul_many_resourcesÚ'TestRegistry.test_matmul_many_resourcesH   sq   € Ø#ˆÜ×-Ñ-°WÀRÑ.HÓIˆà#ˆÜ×-Ñ-°WÀRÑ.HÓIˆà�:¤£
Ñ*ˆØœ8›:×4Ñ4Øˆ^˜g˜^Ð,ó
ó 
ð 	
ñ 
r   c                 ó  • [         R                  " SS0S9n[        R                  " [        R
                  5       nU[        5       -    S S S 5        WR                  [        R
                  " US9:X  d   eg ! , (       d  f       N3= f)Nr:   r;   r   )r   )r   r>   ÚpytestÚraisesr   ÚNoInternalIDr   Úvalue)rA   r   Úes      r   Útest_matmul_resource_without_idÚ,TestRegistry.test_matmul_resource_without_idT   s]   € Ü—?’?¨U°E¨NÑ;ˆÜ�]Š]œ:×2Ñ2Ô3°qØ”x“zÒ!÷ 4à�w‰wœ*×1Ò1¸8ÑDÓDÐDÑD÷ 4Õ3ús   »A6Á6
Bc                 óv   • SnSS0n[        5       R                  X4/5      n[        U[        S9nX1   U:X  d   eg )Nr<   ú$schemaú,https://json-schema.org/draft/2020-12/schemarF   )r   Úwith_contentsr   r	   )rA   r4   ÚschemarB   Úexpecteds        r   Ú#test_with_contents_from_json_schemaÚ0TestRegistry.test_with_contents_from_json_schemaZ   sD   € ØˆØÐKÐLˆÜ“:×+Ñ+¨c¨]¨OÓ<ˆä V¼;ÑGˆØ‰} Ó(Ð(Ñ(r   c                 óž   • Sn[        5       R                  USS04/[        R                  S9nX!   [        R
                  " SS05      :X  d   eg )Nr<   r:   r;   ©Údefault_specification)r   rf   r   ÚOPAQUEr   r>   )rA   r4   rB   s      r   Ú,test_with_contents_and_default_specificationÚ9TestRegistry.test_with_contents_and_default_specificationb   sU   € ØˆÜ“:×+Ñ+Ø�E˜5�>Ð"Ð#Ü"/×"6Ñ"6ð ,ð 
ˆð ‰}¤§¢°¸°Ó ?Ó?Ð?Ñ?r   c                 óÎ   • Sn[        5       R                  [        U5       Vs/ s H  n[        U5      SS04PM     sn[        R
                  S9n[        U5      U:X  d   eg s  snf )Né   r:   r;   rl   )r   rf   ÚrangeÚstrr   rn   r%   )rA   ÚtotalÚirB   s       r   Útest_lenÚTestRegistry.test_lenj   sc   € ØˆÜ“:×+Ñ+Ü/4°U¬|Ó<ª|¨!Œc�!‹f�u˜e�nÓ%©|Ñ<Ü"/×"6Ñ"6ð ,ð 
ˆô �8‹} Ó%Ð%Ñ%ùò =s   £A"c                 ó&   • [        5       (       a   eg ©N)r   ©rA   s    r   Útest_bool_emptyÚTestRegistry.test_bool_emptyr   s   € Ü—:‘:Ðˆ~�:r   c                 óº   • [        5       R                  [        S5       Vs/ s H  n[        U5      SS04PM     sn[        R
                  S9nU(       d   eg s  snf )Né   r:   r;   rl   )r   rf   rs   rt   r   rn   ©rA   rv   rB   s      r   Útest_bool_not_emptyÚ TestRegistry.test_bool_not_emptyu   sS   € Ü“:×+Ñ+Ü/4°Q¬xÓ8ªx¨!Œc�!‹f�u˜e�nÓ%©xÑ8Ü"/×"6Ñ"6ð ,ð 
ˆö ˆ‰xùò 9s   ¡Ac                 ó  • [        5       R                  [        S5       Vs/ s H  n[        U5      SS04PM     sn[        R
                  S9n[        U5      [        S5       Vs1 s H  n[        U5      iM     sn:X  d   eg s  snf s  snf )Né   r:   r;   rl   )r   rf   rs   rt   r   rn   Úsetr€   s      r   Ú	test_iterÚTestRegistry.test_iter|   sz   € Ü“:×+Ñ+Ü/4°Q¬xÓ8ªx¨!Œc�!‹f�u˜e�nÓ%©xÑ8Ü"/×"6Ñ"6ð ,ð 
ˆô �8‹}´°q´Ó :²¨A¤ Q¦±Ñ :Ó:Ð:Ñ:ùò 9ùò !;s   ¡BÁ%Bc                 ó~   • [         R                  " SS05      nSn[        X!05      R                  5       nX2   UL d   eg ©Nr:   r;   r<   )r   r>   r   Úcrawlr@   s       r   Ú'test_crawl_still_has_top_level_resourceÚ4TestRegistry.test_crawl_still_has_top_level_resourceƒ   s>   € Ü—?’? E¨5 >Ó2ˆØˆÜ˜S˜OÓ,×2Ñ2Ó4ˆØ‰} Ò(Ð(Ñ(r   c                 ó,  • Sn[         R                  SUSS./S.5      nU[        5       -  n[        R                  " [
        5         X1     S S S 5        [         R                  USS.5      nUR                  5       U   U:X  d   eg ! , (       d  f       N@= f)Nú	urn:childúurn:rootrQ   rR   ©r   r   )rI   r   r   r\   r]   ÚLookupErrorrŠ   )rA   Úchild_idÚrootrB   rh   s        r   Útest_crawl_finds_a_subresourceÚ+TestRegistry.test_crawl_finds_a_subresource‰   s†   € ØˆÜ×.Ñ.Ø°8ÀBÑ,GÐ+HÑIó
ˆð œ(›*Ñ$ˆÜ�]Š]œ;Õ'ØÒ÷ (ô #×2Ñ2¸(È2Ñ3NÓOˆØ�~‰~Ó Ñ)¨XÓ5Ð5Ñ5÷	 (Õ'ús   ÁBÂ
Bc                 ó  • [         R                  SSS0S.5      nU[        5       -  nUR                  5       R	                  UR                  5       S5      R                  [        S[         R                  S5      S9:X  d   eg )Núurn:barr:   rQ   ©r   r   r   )rI   r   r   rŠ   ÚanchorÚidr_   r   ©rA   r   rB   s      r   Ú test_crawl_finds_anchors_with_idÚ-TestRegistry.test_crawl_finds_anchors_with_id•   sw   € Ü"×2Ñ2Ø¨%°¨Ñ5ó
ˆð œh›jÑ(ˆà�~‰~Ó×&Ñ& x§{¡{£}°eÓ<×BÑBÄfØÜ$×4Ñ4°RÓ8ñG
ó 
ð 	
ñ 
r   c                 ó   • [         R                  SSS005      n[        5       R                  SU5      nUR	                  5       R                  SS5      R                  [        S[         R                  S5      S9:X  d   eg )Nr   r:   rQ   r�   r   )rI   r   r   r?   rŠ   r™   r_   r   r›   s      r   Útest_crawl_finds_anchors_no_idÚ+TestRegistry.test_crawl_finds_anchors_no_id    st   € Ü"×2Ñ2°IÀÀr¸{Ð3KÓLˆÜ“:×+Ñ+¨J¸ÓAˆà�~‰~Ó×&Ñ& z°5Ó9×?Ñ?Ä6ØÜ$×4Ñ4°RÓ8ñD
ó 
ð 	
ñ 
r   c                 óœ   • [         R                  " SS05      nSn[        5       R                  X!5      nUR	                  U5      SS0:X  d   eg r‰   )r   r>   r   r?   r   r@   s       r   Útest_contentsÚTestRegistry.test_contents©   sH   € Ü—?’? E¨5 >Ó2ˆØˆÜ“:×+Ñ+¨CÓ:ˆØ× Ñ  Ó%¨%°¨Ó7Ð7Ñ7r   c                 óˆ   • Sn[         R                  SUS-   05      nU[        5       -  nX1   X1S-      s=:X  a  U:X  d   e   eg ©Núhttp://example.com/r   Ú#)rI   r   r   rS   s       r   Ú#test_getitem_strips_empty_fragmentsÚ0TestRegistry.test_getitem_strips_empty_fragments¯   sN   € Ø#ˆÜ"×2Ñ2°D¸#À¹)Ð3DÓEˆØœh›jÑ(ˆØ‰} ¨s©Ñ 3Õ?°xÓ?Ð?Ñ?Ð?Ñ?r   c                 óÈ   • Sn[         R                  SUS-   05      nU[        5       -  nUR                  U5      UR                  US-   5      s=:X  a  SUS-   0:X  d    e   eg r¥   )rI   r   r   r   rS   s       r   Ú$test_contents_strips_empty_fragmentsÚ1TestRegistry.test_contents_strips_empty_fragmentsµ   sv   € Ø#ˆÜ"×2Ñ2°D¸#À¹)Ð3DÓEˆØœh›jÑ(ˆà×Ñ˜cÓ"Ø× Ñ   s¡Ó+õ!à�c˜C‘iÐ ô!ð	
ñ!ð	
ñ!r   c                 óþ   • [        5       n[        R                  " [        R                  5       nUR                  S5        S S S 5        WR                  [        R                  " SS9:X  d   eg ! , (       d  f       N3= f)Nr<   ©Úref)r   r\   r]   r   ÚNoSuchResourcer   r_   ©rA   rB   r`   s      r   Ú"test_contents_nonexistent_resourceÚ/TestRegistry.test_contents_nonexistent_resource¿   sV   € Ü“:ˆÜ�]Š]œ:×4Ñ4Ô5¸Ø×Ñ˜mÔ,÷ 6à�w‰wœ*×3Ò3¸ÑFÓFÐFÑF÷ 6Õ5ús   ¯A.Á.
A<c                 ó(  • [         R                  SSS005      n[        5       R                  SU5      nUR	                  SS5      nUR
                  [        S[         R                  S5      S9:X  d   eUR                  UR                  5       :X  d   eg )Nr   r:   r;   r<   r   )	rI   r   r   r?   r™   r_   r   rB   rŠ   )rA   r   rB   Ú	retrieveds       r   Útest_crawled_anchorÚ TestRegistry.test_crawled_anchorÅ   sŠ   € Ü"×2Ñ2°IÀÀu¸~Ð3NÓOˆÜ“:×+Ñ+¨M¸8ÓDˆØ—O‘O M°5Ó9ˆ	Ø�‰¤&ØÜ$×4Ñ4°UÓ;ñ#
ó 
ð 	
ð 
ð ×!Ñ! X§^¡^Ó%5Ó5Ð5Ñ5r   c                 ó   • [        5       n[        R                  " [        R                  5       nUR                  SS5        S S S 5        WR                  [        R                  " SS9:X  d   eg ! , (       d  f       N3= f)Nr<   r:   r®   )r   r\   r]   r   r°   r™   r_   r±   s      r   Ú#test_anchor_in_nonexistent_resourceÚ0TestRegistry.test_anchor_in_nonexistent_resourceÏ   sV   € Ü“:ˆÜ�]Š]œ:×4Ñ4Ô5¸Ø�O‰O˜M¨5Ô1÷ 6à�w‰wœ*×3Ò3¸ÑFÓFÐFÑF÷ 6Õ5ús   ¯A/Á/
A=c                 óÜ   • [         R                  " 0 S9n[        R                  SS05      n[	        UUS.5      nU[	        5       R                  SU4SU4/5      R                  5       :X  d   eg )Nr   r:   r;   )rG   rH   rG   rH   )r   r>   rI   r   r   rJ   rŠ   rK   s       r   Ú	test_initÚTestRegistry.test_initÕ   sz   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜà(+Ø.1ñó
ˆð Ü‹zß‰^à+¨SÐ1Ø1°3Ð7ðó÷ ‰U‹Wóð
	
ñr   c                 ó  • [         R                  " 0 S9n[        R                  SS05      n[	        SU05      R                  SU5      nUR                  5       [	        5       R                  SU4SU4/5      R                  5       :X  d   eg)zm
Passing a `dict` to `Registry` gets converted to a `HashTrieMap`.

So continuing to use the registry works.
r   r:   r;   rG   rH   N)r   r>   rI   r   r   r?   rŠ   rJ   rK   s       r   Útest_dict_conversionÚ!TestRegistry.test_dict_conversionê   s�   € ô �oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜØ# SÐ)ó
ç
‰-Ð4°cÓ
:ð 	ð �N‰NÓÜ‹zß‰^à+¨SÐ1Ø1°3Ð7ðó÷ ‰U‹Wóð
	
ñr   c                 óæ   • [        5       n[        R                  " [        R                  5       nUS     S S S 5        WR
                  [        R                  " SS9:X  d   eg ! , (       d  f       N3= f)Nzurn:bigboomr®   )r   r\   r]   r   r°   r_   r±   s      r   Útest_no_such_resourceÚ"TestRegistry.test_no_such_resource  sP   € Ü“:ˆÜ�]Š]œ:×4Ñ4Ô5¸Ø�]Ò#÷ 6à�w‰wœ*×3Ò3¸ÑFÓFÐFÑF÷ 6Õ5ús   ¯A"Á"
A0c                 ó2  • [         R                  " 0 S9n[        R                  SS05      n[        R                  SS05      n[        R                  SSS005      n[	        SU05      n[	        5       R                  S	U5      n[	        UUS
.5      n[	        5       R                  SU5      R                  5       nUR                  XgU5      [	        SU4SU4SU4/[        S[        S[        R                  S5      S905      S9R                  S	U5      :X  d   eg )Nr   r:   r;   ÚbazÚquuxr   rQ   rG   rH   ©rG   úhttp://example.com/bazúhttp://example.com/foo/quuxrÈ   )rÉ   r:   r   )r   )
r   r>   rI   r   r   r?   rŠ   Úcombiner   r   )	rA   rL   rM   ÚthreeÚfourÚfirstÚsecondÚthirdÚfourths	            r   Útest_combineÚTestRegistry.test_combine  s,  € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ×/Ñ/°¸°Ó@ˆÜ×.Ñ.°	¸EÀ2¸;Ð/GÓHˆäÐ0°#Ð6Ó7ˆÜ“×)Ñ)Ð*FÈÓLˆÜà(+Ø*/ñó
ˆô ‹Jß‰]Ø-Øó÷ ‰U‹Wð 	ð �}‰}˜V¨FÓ3´xà'¨Ð-Ø)¨5Ð1Ø.°Ð5ðô
  à:¼FØ"Ü!0×!@Ñ!@ÀÓ!Dñ=ðóñ8
÷ ‰-Ð4°cÓ
:ó;ð 	;ñ ;r   c                 óJ   • [        SS05      nUR                  U5      UL d   eg)zÍ
Combining a registry with itself short-circuits.

This is a performance optimization -- otherwise we do lots more work
(in jsonschema this seems to correspond to making the test suite take
 *3x* longer).
úurn:foor;   N)r   rÊ   ©rA   rB   s     r   Útest_combine_selfÚTestRegistry.test_combine_self.  s,   € ô ˜Y¨Ð.Ó/ˆØ×Ñ Ó)¨XÒ5Ð5Ñ5r   c                 ó�  • [         R                  " 0 S9n[        R                  SS05      n[        R                  SS05      n[	        5       R                  SU5      n[	        5       R                  SU5      n[	        UUS.5      n[	        SU4SU4S	U4/5      nUR                  XV5      nX‡:w  d   eUR                  5       U:X  d   eg )
Nr   r:   r;   rÅ   rÆ   rG   rH   rÇ   rÈ   )r   r>   rI   r   r   r?   rÊ   rŠ   )	rA   rL   rM   rË   rÍ   rÎ   rÏ   rh   Úcombineds	            r   Ú%test_combine_with_uncrawled_resourcesÚ2TestRegistry.test_combine_with_uncrawled_resources:  sÑ   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ×/Ñ/°¸°Ó@ˆä“
×(Ñ(Ð)?ÀÓEˆÜ“×)Ñ)Ð*FÈÓLˆÜà(+Ø*/ñó
ˆô à'¨Ð-Ø-¨sÐ3Ø)¨5Ð1ðó
ˆð —=‘= Ó/ˆØÓ#Ð#Ð#Ø�~‰~Ó 8Ó+Ð+Ñ+r   c                 ó   • [         R                  " 0 S9n[        R                  SS05      n[        R                  SS05      nS n[	        5       R                  SU5      n[	        US9R                  S	U5      n[	        5       R                  S
U5      nUR                  Xg5      [	        US9R                  SU4S	U4S
U4/5      :X  d   eUR                  XW5      [	        US9R                  SU4S	U4S
U4/5      :X  d   eg )Nr   r:   r;   rÅ   rÆ   c                 ó   • g rz   r!   r3   s    r   ÚretrieveÚ@TestRegistry.test_combine_with_single_retrieve.<locals>.retrieveW  ó   € Ør   rG   ©rÞ   úhttp://example.com/2úhttp://example.com/3©r   r>   rI   r   r   r?   rÊ   rJ   ©rA   rL   rM   rË   rÞ   rÍ   rÎ   rÏ   s           r   Ú!test_combine_with_single_retrieveÚ.TestRegistry.test_combine_with_single_retrieveR  s"  € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ×/Ñ/°¸°Ó@ˆò	ô “
×(Ñ(Ð)?ÀÓEˆÜØñ
ç
‰-Ð.°Ó
4ð 	ô “
×(Ñ(Ð)?ÀÓGˆà�}‰}˜VÓ+¬xØñ0
ç
‰.à'¨Ð-Ø'¨Ð-Ø'¨Ð/ðó
ó
ð 	
ð 
ð �~‰~˜eÓ+¬xØñ0
ç
‰.à'¨Ð-Ø'¨Ð-Ø'¨Ð/ðó
ó
ð 	
ñ 
r   c                 óü  • [         R                  " 0 S9n[        R                  SS05      n[        R                  SS05      nS n[	        US9R                  SU5      n[	        US9R                  S	U5      n[	        US9R                  S
U5      nUR                  Xg5      [	        US9R                  SU4S	U4S
U4/5      :X  d   eUR                  XW5      [	        US9R                  SU4S	U4S
U4/5      :X  d   eg )Nr   r:   r;   rÅ   rÆ   c                 ó   • g rz   r!   r3   s    r   rÞ   Ú@TestRegistry.test_combine_with_common_retrieve.<locals>.retrievex  rà   r   rá   rG   râ   rã   rä   rå   s           r   Ú!test_combine_with_common_retrieveÚ.TestRegistry.test_combine_with_common_retrieves  s2  € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ×/Ñ/°¸°Ó@ˆò	ô  (Ñ+×9Ñ9Ø"Øó
ˆô Øñ
ç
‰-Ð.°Ó
4ð 	ô  (Ñ+×9Ñ9Ø"Øó
ˆð
 �}‰}˜VÓ+¬xØñ0
ç
‰.à'¨Ð-Ø'¨Ð-Ø'¨Ð/ðó
ó
ð 	
ð 
ð �~‰~˜eÓ+¬xØñ0
ç
‰.à'¨Ð-Ø'¨Ð-Ø'¨Ð/ðó
ó
ð 	
ñ 
r   c                 ó´  • [         R                  " 0 S9n[        R                  SS05      n[        R                  SS05      nS nS n[	        US9R                  S	U5      n[	        5       R                  S
U5      n[	        US9R                  SU5      n[        R                  " [        SS9   UR                  Xx5        S S S 5        g ! , (       d  f       g = f)Nr   r:   r;   rÅ   rÆ   c                 ó   • g rz   r!   r3   s    r   Úfoo_retrieveÚDTestRegistry.test_combine_conflicting_retrieve.<locals>.foo_retrieveŸ  rà   r   c                 ó   • g rz   r!   r3   s    r   Úbar_retrieveÚDTestRegistry.test_combine_conflicting_retrieve.<locals>.bar_retrieve¢  rà   r   rá   rG   râ   rã   zconflict.*retriev©Úmatch)
r   r>   rI   r   r   r?   r\   r]   Ú	ExceptionrÊ   )	rA   rL   rM   rË   rï   rò   rÍ   rÎ   rÏ   s	            r   Ú!test_combine_conflicting_retrieveÚ.TestRegistry.test_combine_conflicting_retrieveš  s»   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ×/Ñ/°¸°Ó@ˆò	ò	ô  ,Ñ/×=Ñ=Ø"Øó
ˆô “×)Ñ)Ð*@À#ÓFˆÜ ,Ñ/×=Ñ=Ø"Øó
ˆô
 �]Š]œ9Ð,?Ó@Ø�M‰M˜&Ô(÷ A×@Ö@ús   Â.C	Ã	
Cc                 ó¸   • [         R                  " 0 S9n[        R                  SS05      n[	        XS.5      nUR                  S5      [	        SU05      :X  d   eg )Nr   r:   r;   )rÔ   r—   rÔ   r—   )r   r>   rI   r   r   ÚremoverK   s       r   Útest_removeÚTestRegistry.test_remove²  sR   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ¨Ñ<Ó=ˆØ�‰˜yÓ)¬X°yÀ#Ð6FÓ-GÓGÐGÑGr   c                 óö   • [         R                  " 0 S9n[        R                  SS05      n[	        5       R                  SU4SU4/5      nUR                  S5      [	        5       R                  SU5      :X  d   eg )Nr   r:   r;   rÔ   r—   )r   r>   rI   r   r   rJ   rú   r?   rK   s       r   Útest_remove_uncrawledÚ"TestRegistry.test_remove_uncrawled¸  sz   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ“:×,Ñ,Ø˜Ð 	¨3Ð/Ð0ó
ˆð �‰˜yÓ)¬X«Z×-EÑ-EØØó.
ó 
ð 	
ñ 
r   c                 ó2  • [         R                  " 0 S9n[        R                  SSS005      n[	        5       R                  SU4SU4/5      R                  5       nUR                  S5      [	        5       R                  SU5      R                  5       :X  d   eg )Nr   r   r:   r;   rÔ   r—   )	r   r>   rI   r   r   rJ   rŠ   rú   r?   rK   s       r   Útest_remove_with_anchorsÚ%TestRegistry.test_remove_with_anchorsÃ  s“   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨y¸5À%¸.Ð.IÓJˆä‹Jß‰^Ø˜SÐ! I¨sÐ#3Ð4ó÷ ‰U‹Wð 	ð �O‰O˜IÓ&Ü‹zß‰]ØØó÷ ‰U‹Wóð	
ñr   c                 óú   • [         R                  " [        R                  5       n[	        5       R                  S5        S S S 5        WR                  [        R                  " SS9:X  d   eg ! , (       d  f       N3= f)Nzurn:doesNotExistr®   )r\   r]   r   r°   r   rú   r_   )rA   r`   s     r   Útest_remove_nonexistent_uriÚ(TestRegistry.test_remove_nonexistent_uri×  sS   € Ü�]Š]œ:×4Ñ4Ô5¸Ü‹J×ÑÐ0Ô1÷ 6à�w‰wœ*×3Ò3Ð8JÑKÓKÐKÑK÷ 6Õ5ús   ¥A,Á,
A:c                 ó’   ^• [         R                  " SS05      m[        U4S jS9nUR                  S5      R                  T:X  d   eg )Nr:   r;   c                 ó   >• T$ rz   r!   ©r4   r:   s    €r   r   Ú,TestRegistry.test_retrieve.<locals>.<lambda>Þ  s   ø€ ±r   rá   r<   )r   r>   r   Úget_or_retriever_   )rA   rB   r:   s     @r   Útest_retrieveÚTestRegistry.test_retrieveÜ  s>   ø€ Ü�oŠo˜u e˜nÓ-ˆÜ¤_Ñ5ˆØ×'Ñ'¨Ó6×<Ñ<ÀÓCÐCÑCr   c                 ó4  ^• [         R                  " SS05      mU4S jn[        US9nUR                  S5      R                  T:X  d   e[
        R                  " [        R                  5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr:   r;   c                 ó*   >• U S:X  a  T$ [        S5      e)Núurn:succeedzOh no!)rö   r  s    €r   rÞ   Ú@TestRegistry.test_retrieve_arbitrary_exception.<locals>.retrieveä  s   ø€ Ø�mÓ#Ø�
Ü˜HÓ%Ð%r   rá   r  úurn:uhoh)	r   r>   r   r
  r_   r\   r]   r   ÚUnretrievable©rA   rÞ   rB   r:   s      @r   Ú!test_retrieve_arbitrary_exceptionÚ.TestRegistry.test_retrieve_arbitrary_exceptioná  sq   ø€ Ü�oŠo˜u e˜nÓ-ˆõ	&ô
  XÑ.ˆØ×'Ñ'¨Ó6×<Ñ<ÀÓCÐCÐCÜ�]Š]œ:×3Ñ3Õ4Ø×$Ñ$ ZÔ0÷ 5×4Ö4úó   Á.B	Â	
Bc                 ó4  ^• [         R                  " SS05      mU4S jn[        US9nUR                  S5      R                  T:X  d   e[
        R                  " [        R                  5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr:   r;   c                 ó<   >• U S:X  a  T$ [         R                  " U S9e)Nr  r®   )r   r°   r  s    €r   rÞ   Ú=TestRegistry.test_retrieve_no_such_resource.<locals>.retrieveñ  s!   ø€ Ø�mÓ#Ø�
Ü×+Ò+°Ñ4Ð4r   rá   r  r  )	r   r>   r   r
  r_   r\   r]   r   r°   r  s      @r   Útest_retrieve_no_such_resourceÚ+TestRegistry.test_retrieve_no_such_resourceî  sq   ø€ Ü�oŠo˜u e˜nÓ-ˆõ	5ô
  XÑ.ˆØ×'Ñ'¨Ó6×<Ñ<ÀÓCÐCÐCÜ�]Š]œ:×4Ñ4Õ5Ø×$Ñ$ ZÔ0÷ 6×5Ö5úr  c                 óº   • S n[        US9n[        R                  " [        R                  5         UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                 ó.   • [         R                  " 0 5      $ rz   )r   Úfrom_contentsr3   s    r   rÞ   ÚKTestRegistry.test_retrieve_cannot_determine_specification.<locals>.retrieveü  s   € Ü×)Ò)¨"Ó-Ð-r   rá   r  )r   r\   r]   r   ÚCannotDetermineSpecificationr
  )rA   rÞ   rB   s      r   Ú,test_retrieve_cannot_determine_specificationÚ9TestRegistry.test_retrieve_cannot_determine_specificationû  s@   € ò	.ô  XÑ.ˆÜ�]Š]œ:×BÑBÕCØ×$Ñ$ ZÔ0÷ D×CÖCús   ±AÁ
Ac                 ó¬   • [         R                  " SS05      n[        SU0[        S9nUS   U:X  d   eUR	                  S5      R
                  U:X  d   eg )Nr:   r;   r<   rá   )r   r>   r   r5   r
  r_   )rA   r:   rB   s      r   Ú(test_retrieve_already_available_resourceÚ5TestRegistry.test_retrieve_already_available_resource  sW   € Ü�oŠo˜u e˜nÓ-ˆÜ˜]¨CÐ0¼7ÑCˆØ˜Ñ&¨#Ó-Ð-Ð-Ø×'Ñ'¨Ó6×<Ñ<ÀÓCÐCÑCr   c                 óä   • [         R                  SSS.5      n[         R                  SUR                  /05      n[        [        S9R                  SU5      nUR                  5       S   U:X  d   eg )NrŽ   rQ   rR   r   rá   r�   )rI   r   r   r   r5   r?   rŠ   )rA   Úchildr“   rB   s       r   Ú-test_retrieve_first_checks_crawlable_resourceÚ:TestRegistry.test_retrieve_first_checks_crawlable_resource	  sd   € Ü×/Ñ/°{È2Ñ0NÓOˆÜ×.Ñ.°
¸U¿^¹^Ð<LÐ/MÓNˆÜ¤WÑ-×;Ñ;¸JÈÓMˆØ�~‰~Ó Ñ,°Ó5Ð5Ñ5r   c                 ó¦   • [         R                  " 0 S9n[        SU05      nUR                  SS9nUR	                  S5      R
                  0 :X  d   eg )Nr   úhttp://example.com)Úbase_urir§   ©r   r>   r   r*   Úlookupr   )rA   rL   rB   r*   s       r   Útest_resolverÚTestRegistry.test_resolver  sQ   € Ü�oŠo rÑ*ˆÜÐ1°3Ð7Ó8ˆØ×$Ñ$Ð.BÐ$ÐCˆØ�‰˜sÓ#×,Ñ,°Ó2Ð2Ñ2r   c                 ó  • [         R                  SS05      n[        5       R                  U5      nUR	                  S5      R
                  UR
                  :X  d   eUR	                  S5      R
                  UR
                  :X  d   eg )Nr   r+  r§   )rI   r   r   Úresolver_with_rootr.  r   ©rA   r“   r*   s      r   Ú"test_resolver_with_root_identifiedÚ/TestRegistry.test_resolver_with_root_identified  sm   € Ü×.Ñ.°Ð6JÐ/KÓLˆÜ“:×0Ñ0°Ó6ˆØ�‰Ð3Ó4×=Ñ=ÀÇÁÓNÐNÐNØ�‰˜sÓ#×,Ñ,°·±Ó=Ð=Ñ=r   c                 ó´   • [         R                  " 0 S9n[        5       R                  U5      nUR	                  S5      R
                  UR
                  :X  d   eg )Nr   r§   )r   r>   r   r2  r.  r   r3  s      r   Ú$test_resolver_with_root_unidentifiedÚ1TestRegistry.test_resolver_with_root_unidentified  sC   € Ü�Š¨Ñ+ˆÜ“:×0Ñ0°Ó6ˆØ�‰˜sÓ#×,Ñ,°·±Ó=Ð=Ñ=r   c                 óø   • [         R                  " 0 S9n[        R                  SS05      n[	        5       R                  SU4SU4/5      n[        U5      S:X  d   e[        UR                  5       5      S:X  d   eg )Nr   r:   r;   rG   rH   z"<Registry (2 uncrawled resources)>z<Registry (2 resources)>)r   r>   rI   r   r   rJ   ÚreprrŠ   rK   s       r   Ú	test_reprÚTestRegistry.test_repr   s{   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆÜ“:×,Ñ,à'¨Ð-Ø-¨sÐ3ðó
ˆô �H‹~Ð!EÓEÐEÐEÜ�H—N‘NÓ$Ó%Ð)CÓCÐCÑCr   c                 óÎ   • [         R                  " 0 S9n[        R                  SS05      n[	        SU05      R                  5       R                  SUS9n[        U5      S:X  d   eg )Nr   r:   r;   rG   rH   r=   z%<Registry (2 resources, 1 uncrawled)>)r   r>   rI   r   r   rŠ   r?   r:  rK   s       r   Útest_repr_mixed_crawledÚ$TestRegistry.test_repr_mixed_crawled,  sf   € Ü�oŠo rÑ*ˆÜ×-Ñ-¨u°e¨nÓ=ˆäØ'¨Ð-ó÷ ‰U‹Wß‰]Ð;Àcˆ]ÐJð 	ô �H‹~Ð!HÓHÐHÑHr   c                 óz   • [        5       R                  S[        R                  " 0 S9S9n[	        U5      S:X  d   eg )NrG   r   r=   z!<Registry (1 uncrawled resource)>)r   r?   r   r>   r:  rÕ   s     r   Útest_repr_one_resourceÚ#TestRegistry.test_repr_one_resource8  s=   € Ü“:×+Ñ+Ø&Ü—_’_¨bÑ1ð ,ð 
ˆô �H‹~Ð!DÓDÐDÑDr   c                 ó6   • [        [        5       5      S:X  d   eg )Nz<Registry (0 resources)>)r:  r   r{   s    r   Útest_repr_emptyÚTestRegistry.test_repr_empty?  s   € Ü”H“JÓÐ#=Ó=Ð=Ñ=r   r!   N)4Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rC   rN   rT   rY   ra   ri   ro   rw   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/  r4  r7  r;  r>  rA  rD  Ú__static_attributes__r!   r   r   r7   r7   "   sþ   † ò)ò
ò*Cò

òEò)ò@ò&òòò;ò)ò
6ò	
ò
ò8ò@ò
òGò6òGò
ò*
ò0Gò$;òL
6ò,ò0
òB%
òN)ò0Hò	
ò
ò(Lò
Dò
1ò1ò1òDò6ò3ò>ò>ò

Dò
IòEõ>r   r7   c                   ón   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rSrg)ÚTestResourceiC  c                 ó`   • SS0n[         R                  " U5      nU[        U[        S9:X  d   eg )Nrd   re   rF   )r   r  r	   ©rA   rg   r   s      r   Ú#test_from_contents_from_json_schemaÚ0TestResource.test_from_contents_from_json_schemaD  s2   € ØÐKÐLˆÜ×)Ò)¨&Ó1ˆØœ8¨VÄ;ÑOÓOÐOÑOr   c                 ó°   • [         R                  " [        R                  5         [        R
                  " SS05        SSS5        g! , (       d  f       g= f)z”
Creating a resource with no discernible way to see what
specification it belongs to (e.g. no ``$schema`` keyword for JSON
Schema) raises an error.
r:   r;   N)r\   r]   r   r   r   r  r{   s    r   Ú2test_from_contents_with_no_discernible_informationÚ?TestResource.test_from_contents_with_no_discernible_informationI  s5   € ô �]Š]œ:×BÑBÕCÜ×"Ò" E¨5 >Ô2÷ D×CÖCúó   ¥AÁ
Ac                 ó†   • [         R                  " SS0[        R                  S9nU[         R                  " SS0S9:X  d   eg ©Nr:   r;   rl   r   ©r   r  r   rn   r>   ©rA   r   s     r   Ú>test_from_contents_with_no_discernible_information_and_defaultÚKTestResource.test_from_contents_with_no_discernible_information_and_defaultS  ó?   € Ü×)Ò)Ø�EˆNÜ"/×"6Ñ"6ñ
ˆð œ8Ÿ?š?°U¸E°NÑCÓCÐCÑCr   c                 óz   • SS0n[         R                  " U[        R                  S9nU[        U[        S9:X  d   eg )Nrd   re   rl   rF   )r   r  r   rn   r	   rN  s      r   Ú#test_from_contents_unneeded_defaultÚ0TestResource.test_from_contents_unneeded_defaultZ  sJ   € ØÐKÐLˆÜ×)Ò)ØÜ"/×"6Ñ"6ñ
ˆð œ8ØÜ%ñ
ó 
ð 	
ñ 
r   c                 ó^   • [         R                  " S[        S9nU[        S[        S9:X  d   eg )NTrl   rF   )r   r  rI   rX  s     r   Útest_non_mapping_from_contentsÚ+TestResource.test_non_mapping_from_contentse  s9   € Ü×)Ò)ØÜ"1ñ
ˆð œ8ØÜ)ñ
ó 
ð 	
ñ 
r   c                 ó†   • [         R                  " SS0[        R                  S9nU[         R                  " SS0S9:X  d   eg rV  rW  rX  s     r   Ú test_from_contents_with_fallbackÚ-TestResource.test_from_contents_with_fallbacko  r[  r   c                 ój   • [        SS S S S S9n[        SS0US	9nUR                  5       S
:X  d   eg )NÚ c                 ó   • g©Núurn:fixedIDr!   r   s    r   r   ÚATestResource.test_id_delegates_to_specification.<locals>.<lambda>y  ó   €  =r   c                 ó   • / $ rz   r!   r   s    r   r   rj  z  ó   € ©Rr   c                 ó   • / $ rz   r!   ©r   r   s     r   r   rj  {  ó   € ±rr   c                 ó   • U$ rz   r!   r(   s      r   r   rj  }  ó   € ¹r   r,   r:   rÅ   rF   ri  )r   r   rš   ©rA   r   r   s      r   Ú"test_id_delegates_to_specificationÚ/TestResource.test_id_delegates_to_specificationv  sG   € Ü%ØÙ0Ù/Ù9á@ñ
ˆô Ø˜U�^Ø'ñ
ˆð �{‰{‹} Ó-Ð-Ñ-r   c                 óh   • Sn[         R                  SUS-   05      nUR                  5       U:X  d   eg r¥   )rI   r   rš   )rA   r4   r“   s      r   Útest_id_strips_empty_fragmentÚ*TestResource.test_id_strips_empty_fragment†  s4   € Ø#ˆÜ×.Ñ.°°c¸C±iÐ/@ÓAˆØ�w‰w‹y˜CÓÐÑr   c                 óÊ   • [         R                  S0 S/05      n[        UR                  5       5      0 S4 Vs/ s H  n[         R                  U5      PM     sn:X  d   eg s  snf )Nr   rQ   )rI   r   ÚlistÚsubresources)rA   r   r   s      r   Ú,test_subresources_delegates_to_specificationÚ9TestResource.test_subresources_delegates_to_specification‹  sf   € Ü"×2Ñ2°JÀÀRÀÐ3IÓJˆÜ�H×)Ñ)Ó+Ó,Ø?AÀ2¹hó1
Ú>F°dŒO×+Ñ+¨DÖ1¹hñ1
ó 
ð 	
ñ 
ùò 1
s   ¸A c                 ó¤   • SS0n[         R                  SU/05      n[        UR                  5       5      [        R                  " U5      /:X  d   eg )Nrd   re   r   )rI   r   rz  r{  r	   rN  s      r   Ú-test_subresource_with_different_specificationÚ:TestResource.test_subresource_with_different_specification‘  sW   € ØÐKÐLˆÜ"×2Ñ2°JÀÀÐ3IÓJˆÜ�H×)Ñ)Ó+Ó,Ü×'Ò'¨Ó/ð1
ó 
ð 	
ñ 
r   c           	      ó   • [         R                  S0 SSS.05      n[        UR                  5       5      [	        S[         R                  0 5      S9[	        S[         R                  S5      S9[	        S[         R                  S5      S9/:X  d   eg )	Nr   é   rf  )r:   r;   rÅ   r:   r   r;   rÅ   )rI   r   rz  r   r   rX  s     r   Ú'test_anchors_delegates_to_specificationÚ4TestResource.test_anchors_delegates_to_specification˜  s‡   € Ü"×2Ñ2Ø ¨1°RÑ8Ð9ó
ˆô �H×$Ñ$Ó&Ó'Ü˜¬×(GÑ(GÈÓ(KÑLÜ˜¬×(GÑ(GÈÓ(JÑKÜ˜¬×(GÑ(GÈÓ(KÑLð,
ó 
ð 	
ñ 
r   c                 ó    • [         R                  " SS0S9n[        5       R                  5       nUR	                  SUS9R
                  S:X  d   eg )Nr:   rÅ   r   z/foo©r*   ©r   r>   r   r*   Úpointerr   ©rA   r   r*   s      r   Útest_pointer_to_mappingÚ$TestResource.test_pointer_to_mapping¢  sH   € Ü—?’?¨U°E¨NÑ;ˆÜ“:×&Ñ&Ó(ˆØ×Ñ °ÐÐ:×CÑCÀuÓLÐLÑLr   c                 ó¦   • [         R                  " SSS/00S9n[        5       R                  5       nUR	                  SUS9R
                  S:X  d   eg )Nr:   r;   r   r   z
/foo/bar/0r†  r‡  r‰  s      r   Útest_pointer_to_arrayÚ"TestResource.test_pointer_to_array§  sO   € Ü—?’?¨U°U¸Q¸C°LÐ,AÑBˆÜ“:×&Ñ&Ó(ˆØ×Ñ °xÐÐ@×IÑIÈQÓNÐNÑNr   c                 ó¤   • SS0n[         R                  " US9n[        5       R                  5       nUR	                  SUS9R
                  U:X  d   eg )Nr:   rÅ   r   rf  r†  r‡  )rA   r   r   r*   s       r   Útest_root_pointerÚTestResource.test_root_pointer¬  sM   € Ø˜5�>ˆÜ—?’?¨HÑ5ˆÜ“:×&Ñ&Ó(ˆØ×Ñ ¨XÐÐ6×?Ñ?À8ÓKÐKÑKr   c                 óp   • SS0n[         R                  " U5      [        U[        R                  S9:X  d   eg )Nr:   r;   rF   )r   r>   r   rn   )rA   r   s     r   Útest_opaqueÚTestResource.test_opaque²  s9   € Ø˜5�>ˆÜ�Š˜xÓ(¬HØÜ'×.Ñ.ñ-
ó 
ð 	
ñ 
r   r!   N)rF  rG  rH  rI  rO  rR  rY  r]  r`  rc  rt  rw  r|  r  rƒ  rŠ  r�  r�  r“  rJ  r!   r   r   rL  rL  C  sS   † òPò
3òDò	
ò
òDò.ò  ò

ò
ò
òMò
Oò
Lõ
r   rL  c                   ó€   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)ÚTestResolveriº  c                 óÀ   • [         R                  " SS0S9n[        SU05      R                  5       nUR	                  S5      nUR
                  UR
                  :X  d   eg )Nr:   rÅ   r   rG   r-  )rA   r   r*   Úresolveds       r   Útest_lookup_exact_uriÚ"TestResolver.test_lookup_exact_uri»  sV   € Ü—?’?¨U°E¨NÑ;ˆÜÐ3°XÐ>Ó?×HÑHÓJˆØ—?‘?Ð#9Ó:ˆØ× Ñ  H×$5Ñ$5Ó5Ð5Ñ5r   c                 ó¾   • [         R                  SSSS./S.5      nU[        5       -  nUR                  5       R	                  S5      nUR
                  SSS.:X  d   eg )Nr¦   zhttp://example.com/arQ   rR   r�   ©rI   r   r   r*   r.  r   ©rA   r“   rB   r˜  s       r   Útest_lookup_subresourceÚ$TestResolver.test_lookup_subresourceÁ  si   € Ü×.Ñ.à+à1¸"Ñ=ðñó
ˆð œ(›*Ñ$ˆØ×$Ñ$Ó&×-Ñ-Ð.DÓEˆØ× Ñ Ð+AÈ"Ñ$MÓMÐMÑMr   c                 ó´   • [         R                  SSS0S.5      nU[        5       -  nUR                  5       R	                  S5      nUR
                  S:X  d   eg )Nr¦   r:   rQ   r˜   zhttp://example.com/#foorœ  r�  s       r   Útest_lookup_anchor_with_idÚ'TestResolver.test_lookup_anchor_with_idÎ  s]   € Ü×.Ñ.à+Ø! 2˜;ñó
ˆð œ(›*Ñ$ˆØ×$Ñ$Ó&×-Ñ-Ð.GÓHˆØ× Ñ  BÓ&Ð&Ñ&r   c                 óÌ   • [         R                  SSS005      n[        5       R                  SU5      R	                  5       nUR                  S5      nUR                  S:X  d   eg )Nr   r:   rQ   r<   zurn:example#foo)rI   r   r   r?   r*   r.  r   )rA   r“   r*   r˜  s       r   Útest_lookup_anchor_without_idÚ*TestResolver.test_lookup_anchor_without_idÙ  s[   € Ü×.Ñ.°	¸EÀ2¸;Ð/GÓHˆÜ“:×+Ñ+¨M¸4Ó@×IÑIÓKˆØ—?‘?Ð#4Ó5ˆØ× Ñ  BÓ&Ð&Ñ&r   c                 ó  • [        5       R                  5       nSn[        R                  " [        R
                  5       nUR                  U5        S S S 5        WR                  [        R
                  " US9:X  d   eg ! , (       d  f       N3= f)Nz!http://example.com/does/not/existr®   )r   r*   r\   r]   r   ÚUnresolvabler.  r_   )rA   r*   r¯   r`   s       r   Útest_lookup_unknown_referenceÚ*TestResolver.test_lookup_unknown_referenceß  sb   € Ü“:×&Ñ&Ó(ˆØ1ˆÜ�]Š]œ:×2Ñ2Ô3°qØ�O‰O˜CÔ ÷ 4à�w‰wœ*×1Ò1°cÑ:Ó:Ð:Ñ:÷ 4Õ3ús   ¿A>Á>
Bc                 óŒ  • [         R                  " S0 05      n[        SU05      R                  5       nSn[        R
                  " [        R                  5       nUR                  U5        S S S 5        WR                  [        R                  " SUS9:X  d   e[        UR                  5      S:X  d   eg ! , (       d  f       NO= f)Nr:   rG   zhttp://example.com/1#/foo/barz/foo/bar©r¯   r   z,'/foo/bar' does not exist within {'foo': {}})r   r>   r   r*   r\   r]   r   r§  r.  r_   ÚPointerToNowherert   ©rA   r   r*   r¯   r`   s        r   Ú test_lookup_non_existent_pointerÚ-TestResolver.test_lookup_non_existent_pointeræ  s¢   € Ü—?’? E¨2 ;Ó/ˆÜÐ3°XÐ>Ó?×HÑHÓJˆØ-ˆÜ�]Š]œ:×2Ñ2Ô3°qØ�O‰O˜CÔ ÷ 4à�w‰wœ*×5Ò5ØØñ
ó 
ð 	
ð 
ô �1—7‘7‹|ÐMÓMÐMÑM÷ 4Õ3ús   ÁB5Â5
Cc                 óV  • [         R                  " / SQ5      n[        SU05      R                  5       nSn[        R
                  " [        R                  5       nUR                  U5        S S S 5        WR                  [        R                  " SUS9:X  d   eg ! , (       d  f       N4= f)N)r‚  r   é   r„   rG   zhttp://example.com/1#/10z/10r«  )r   r>   r   r*   r\   r]   r   r§  r.  r_   r¬  r­  s        r   Ú/test_lookup_non_existent_pointer_to_array_indexÚ<TestResolver.test_lookup_non_existent_pointer_to_array_indexò  s…   € Ü—?’?¢<Ó0ˆÜÐ3°XÐ>Ó?×HÑHÓJˆØ(ˆÜ�]Š]œ:×2Ñ2Ô3°qØ�O‰O˜CÔ ÷ 4à�w‰wœ*×5Ò5ØØñ
ó 
ð 	
ñ 
÷ 4Õ3ús   ÁBÂ
B(c                 ó¤   • [        5       R                  [        R                  " S0 05      5      nUR	                  S5      R
                  0 :X  d   eg )Nrf  ú#/)r   r2  r   r>   r.  r   )rA   r*   s     r   Ú#test_lookup_pointer_to_empty_stringÚ0TestResolver.test_lookup_pointer_to_empty_stringý  s>   € Ü“:×0Ñ0´·²À"ÀbÀÓ1JÓKˆØ�‰˜tÓ$×-Ñ-°Ó3Ð3Ñ3r   c                 óL  • [         R                  " S0 05      n[        5       R                  U5      n[        R
                  " [        R                  SS9 nUR                  S5        S S S 5        WR                  [        R                  " SUS9:X  d   eg ! , (       d  f       N4= f)Nr:   z+^'/' does not exist within {'foo': {}}.*'#'rô   rµ  Ú/r«  )r   r>   r   r2  r\   r]   r   r§  r.  r_   r¬  )rA   r   r*   r`   s       r   Ú0test_lookup_non_existent_pointer_to_empty_stringÚ=TestResolver.test_lookup_non_existent_pointer_to_empty_string  sŠ   € Ü—?’? E¨2 ;Ó/ˆÜ“:×0Ñ0°Ó:ˆÜ�]Š]Ü×#Ñ#Ø?ò
ð Ø�O‰O˜DÔ!÷	
ð
 �w‰wœ*×5Ò5ØØñ
ó 
ð 	
ñ 
÷
õ 
ús   ÁBÂ
B#c                 ó   • [         R                  S0 05      n[        5       R                  SU5      R	                  5       nUR                  S5      nUR                  UR                  :X  d   eSn[        R                  " [        R                  5       nUR                  U5        S S S 5        S[        WR                  5      ;   d   eUR                  [        R                  " SUSS9:X  d   eg ! , (       d  f       NP= f)Nr   r<   zurn:example#noSuchAnchorz'noSuchAnchor' does not existÚnoSuchAnchor)r¯   r   r™   )rI   r   r   r?   r*   r.  r   r\   r]   r   r§  rt   r_   ÚNoSuchAnchor)rA   r“   r*   r˜  r¯   r`   s         r   Útest_lookup_non_existent_anchorÚ,TestResolver.test_lookup_non_existent_anchor  sÎ   € Ü×.Ñ.°	¸2¨Ó?ˆÜ“:×+Ñ+¨M¸4Ó@×IÑIÓKˆØ—?‘? =Ó1ˆØ× Ñ  D§M¡MÓ1Ð1Ð1à(ˆÜ�]Š]œ:×2Ñ2Ô3°qØ�O‰O˜CÔ ÷ 4à.´#°a·g±g³,Ó>Ð>Ð>Ø�w‰wœ*×1Ò1ØØØ!ñ
ó 
ð 	
ñ 
÷ 4Õ3ús   ÂC/Ã/
C=c                 ó€  • [        5       R                  [        R                  SSS0S.5      5      nUR	                  S5      nUR
                  S:X  d   e[        R                  " [        R                  5       nUR	                  S5        S S S 5        S[        WR                  5      ;   d   eg ! , (       d  f       N*= f)Nr¦   r;   rQ   rR   z	#/foo/barz#foo/barz '#/foo/bar')r   r2  rI   r   r.  r   r\   r]   r   ÚInvalidAnchorrt   r_   )rA   r*   Úvalidr`   s       r   Ú*test_lookup_invalid_JSON_pointerish_anchorÚ7TestResolver.test_lookup_invalid_JSON_pointerish_anchor  s—   € Ü“:×0Ñ0Ü×+Ñ+à/Ø! 2˜;ñóó
ˆð —‘ Ó,ˆØ�~‰~ Ó#Ð#Ð#ä�]Š]œ:×3Ñ3Ô4¸Ø�O‰O˜JÔ'÷ 5à¤ Q§W¡W£Ó-Ð-Ñ-÷ 5Õ4ús   Á9B/Â/
B=c                 óÂ   ^• [         R                  " SS0S9m[        U4S jS9R                  5       nUR	                  S5      nUR
                  TR
                  :X  d   eg )Nr:   rÅ   r   c                 ó   >• T$ rz   r!   r=   s    €r   r   Ú=TestResolver.test_lookup_retrieved_resource.<locals>.<lambda>1  s   ø€ ±r   rá   r¦   r-  )rA   r*   r˜  r   s      @r   Útest_lookup_retrieved_resourceÚ+TestResolver.test_lookup_retrieved_resource/  sR   ø€ Ü—?’?¨U°E¨NÑ;ˆÜÔ%9Ñ:×CÑCÓEˆØ—?‘?Ð#8Ó9ˆØ× Ñ  H×$5Ñ$5Ó5Ð5Ñ5r   c                 ó~  • Sn[        [        S9n[        R                  " [        R
                  5         UR                  U5        SSS5        UR                  5       n[        R                  " [        R                  5         UR                  U5        SSS5        g! , (       d  f       N]= f! , (       d  f       g= f)z<
Unretrievable exceptions are also wrapped in Unresolvable.
r¦   rá   N)
r   r5   r\   r]   r   r  r
  r*   r§  r.  )rA   r4   rB   r*   s       r   Ú%test_lookup_failed_retrieved_resourceÚ2TestResolver.test_lookup_failed_retrieved_resource5  s€   € ð
 $ˆä¤WÑ-ˆÜ�]Š]œ:×3Ñ3Õ4Ø×$Ñ$ SÔ)÷ 5ð ×$Ñ$Ó&ˆÜ�]Š]œ:×2Ñ2Õ3Ø�O‰O˜CÔ ÷ 4Ð3÷	 5Õ4ú÷ 4Õ3ús   ´BÂB.Â
B+Â.
B<c                 ó:  ^• [         R                  " SS0S9nU/mU4S jn[        US9R                  5       nUR	                  S5      nUR
                  UR
                  :X  d   eUR                  R	                  S5      nUR
                  UR
                  :X  d   eg)zS
A (custom-)retrieved resource is added to the registry returned by
looking it up.
r:   rÅ   r   c                 ó$   >• TR                  5       $ rz   ©Úpop©r4   Úonces    €r   rÞ   ÚKTestResolver.test_repeated_lookup_from_retrieved_resource.<locals>.retrieveL  ó   ø€ Ø—8‘8“:Ðr   rá   r¦   Nr-  ©rA   r   rÞ   r*   r˜  rÓ  s        @r   Ú,test_repeated_lookup_from_retrieved_resourceÚ9TestResolver.test_repeated_lookup_from_retrieved_resourceD  s’   ø€ ô
 —?’?¨U°E¨NÑ;ˆØˆzˆõ	ô  XÑ.×7Ñ7Ó9ˆØ—?‘?Ð#8Ó9ˆØ× Ñ  H×$5Ñ$5Ó5Ð5Ð5à×$Ñ$×+Ñ+Ð,AÓBˆØ× Ñ  H×$5Ñ$5Ó5Ð5Ñ5r   c                 ó:  ^• [         R                  " SS0S9nU/mU4S jn[        US9R                  5       nUR	                  S5      nUR
                  UR
                  :X  d   eUR                  R	                  S5      nUR
                  UR
                  :X  d   eg )Nr:   rÅ   r   c                 ó$   >• TR                  5       $ rz   rÐ  rÒ  s    €r   rÞ   ÚRTestResolver.test_repeated_anchor_lookup_from_retrieved_resource.<locals>.retrieveZ  rÕ  r   rá   r¦   r§   r-  rÖ  s        @r   Ú3test_repeated_anchor_lookup_from_retrieved_resourceÚ@TestResolver.test_repeated_anchor_lookup_from_retrieved_resourceV  s�   ø€ Ü—?’?¨U°E¨NÑ;ˆØˆzˆõ	ô  XÑ.×7Ñ7Ó9ˆØ—?‘?Ð#8Ó9ˆØ× Ñ  H×$5Ñ$5Ó5Ð5Ð5à×$Ñ$×+Ñ+¨CÓ0ˆØ× Ñ  H×$5Ñ$5Ó5Ð5Ñ5r   c                 óN  • [         R                  SSSS0/S./S.5      nU[        5       -  nUR                  5       nUR	                  S5      nUR
                  UR
                  :X  d   e[        R                  " [        R                  5         UR                  R	                  S5        S S S 5        UR                  R                  [         R                  UR
                  S   S   5      5      nUR	                  S5      nUR
                  SS0:X  d   eg ! , (       d  f       Nr= f)Nr¦   úchild/r   Ú
grandchildr�   r   r   )rI   r   r   r*   r.  r   r\   r]   r   r§  r'   )rA   r“   rB   r*   rÍ   ÚsubrÎ   s          r   Útest_in_subresourceÚ TestResolver.test_in_subresourceg  s   € Ü×.Ñ.à+ð 'Ø&*¨LÐ%9Ð$:ñðñó

ˆð œ(›*Ñ$ˆà×$Ñ$Ó&ˆØ—‘Ð 5Ó6ˆØ�~‰~ §¡Ó.Ð.Ð.ä�]Š]œ:×2Ñ2Õ3Ø�N‰N×!Ñ! ,Ô/÷ 4ð �n‰n×+Ñ+Ü×+Ñ+¨E¯N©N¸:Ñ,FÀqÑ,IÓJó
ˆð —‘˜LÓ)ˆØ�‰ 4¨Ð"6Ó6Ð6Ñ6÷ 4Õ3ús   ÂDÄ
D$c                 ó  • [         R                  SSSS0/S./S.5      nU[        5       -  nUR                  5       nUR	                  S5      nUR
                  UR
                  :X  d   e[        R                  " [        R                  5         UR                  R	                  S5        S S S 5        UR                  R	                  S5      nUR                  R	                  S5      nUR
                  SS0:X  d   eg ! , (       d  f       NY= f)Nr¦   rß  r   rà  r�   ú#/children/0)
rI   r   r   r*   r.  r   r\   r]   r   r§  )rA   r“   rB   r*   rÍ   rÎ   rÏ   s          r   Útest_in_pointer_subresourceÚ(TestResolver.test_in_pointer_subresource‚  sè   € Ü×.Ñ.à+ð 'Ø&*¨LÐ%9Ð$:ñðñó

ˆð œ(›*Ñ$ˆà×$Ñ$Ó&ˆØ—‘Ð 5Ó6ˆØ�~‰~ §¡Ó.Ð.Ð.ä�]Š]œ:×2Ñ2Õ3Ø�N‰N×!Ñ! ,Ô/÷ 4ð —‘×&Ñ& ~Ó6ˆØ—‘×&Ñ& |Ó4ˆØ�~‰~ $¨Ð!5Ó5Ð5Ñ5÷ 4Õ3ús   ÂC=Ã=
Dc                 óÔ  • [         R                  SSSS0/S./S.5      n[         R                  SSS0/S.5      nX/[        5       -  nUR                  5       nUR	                  S5      nUR                  R	                  S5      nUR                  R	                  S5      nUR                  R	                  S5      n[        UR                  R                  5       5      S	UR                  R                  4S
UR                  R                  4SUR                  R                  4/:X  d   e[        UR                  R                  5       5      S
UR                  R                  4SUR                  R                  4/:X  d   e[        UR                  R                  5       5      SUR                  R                  4/:X  d   e[        UR                  R                  5       5      / :X  d   eg )Nr¦   rß  r   rà  r�   zhttp://example.com/twoz
two-child/rå  z#http://example.com/child/grandchildzhttp://example.com/child/)rI   r   r   r*   r.  rz  Údynamic_scopeÚ	_registry)	rA   rL   rM   rB   r*   rÍ   rÎ   rÏ   rÐ   s	            r   Útest_dynamic_scopeÚTestResolver.test_dynamic_scope›  sÐ  € Ü×-Ñ-à+ð 'Ø&*¨LÐ%9Ð$:ñðñó

ˆô ×-Ñ-à.Ø" LÐ1Ð2ñó
ˆð �:¤£
Ñ*ˆà×$Ñ$Ó&ˆØ—‘Ð 5Ó6ˆØ—‘×&Ñ& ~Ó6ˆØ—‘×&Ñ& |Ó4ˆØ—‘×&Ñ&Ð'?Ó@ˆÜ�F—O‘O×1Ñ1Ó3Ó4Ø2°F·O±O×4MÑ4MÐNØ(¨&¯/©/×*CÑ*CÐDØ" F§O¡O×$=Ñ$=Ð>ð9
ó 
ð 	
ð 
ô
 �E—N‘N×0Ñ0Ó2Ó3Ø(¨%¯.©.×*BÑ*BÐCØ" E§N¡N×$<Ñ$<Ð=ð8
ó 
ð 	
ð 
ô �F—O‘O×1Ñ1Ó3Ó4Ø" F§O¡O×$=Ñ$=Ð>ð9
ó 
ð 	
ð 
ô �E—N‘N×0Ñ0Ó2Ó3°rÓ9Ð9Ñ9r   r!   N)rF  rG  rH  rI  r™  rž  r¡  r¤  r¨  r®  r²  r¶  rº  r¿  rÄ  rÉ  rÌ  r×  rÜ  râ  ræ  rë  rJ  r!   r   r   r–  r–  º  s^   † ò6òNò	'ò'ò;ò
Nò	
ò4ò
ò
ò .ò"6ò!ò6ò$6ò"7ò66õ2%:r   r–  c                   óP   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)ÚTestSpecificationiÃ  c                 ó˜   • [        SS S S S S9nUR                  SS0S	9nU[        SS0US
9:X  d   eUR                  5       S:X  d   eg )Nrf  c                 ó   • grh  r!   r   s    r   r   Ú8TestSpecification.test_create_resource.<locals>.<lambda>Ç  rk  r   c                 ó   • / $ rz   r!   r   s    r   r   rñ  È  rm  r   c                 ó   • / $ rz   r!   ro  s     r   r   rñ  É  rp  r   c                 ó   • U$ rz   r!   r(   s      r   r   rñ  Ë  rr  r   r,   r:   rÅ   r   rF   ri  )r   r   r   rš   rs  s      r   Útest_create_resourceÚ&TestSpecification.test_create_resourceÄ  sm   € Ü%ØÙ0Ù/Ù9á@ñ
ˆð !×0Ñ0¸5À%¸.Ð0ÐIˆØœ8Ø˜U�^Ø'ñ
ó 
ð 	
ð 
ð �{‰{‹} Ó-Ð-Ñ-r   c                 óP   • SS0n[         R                  " U5      nU[        :X  d   eg ©Nrd   re   )r   Údetectr	   ©rA   rg   r   s      r   Útest_detect_from_json_schemaÚ.TestSpecification.test_detect_from_json_schemaÕ  s+   € ØÐKÐLˆÜ%×,Ò,¨VÓ4ˆØ¤Ó+Ð+Ñ+r   c                 ó°   • [         R                  " [        R                  5         [        R
                  " SS05        S S S 5        g ! , (       d  f       g = f©Nr:   r;   ©r\   r]   r   r   r   rù  r{   s    r   Ú+test_detect_with_no_discernible_informationÚ=TestSpecification.test_detect_with_no_discernible_informationÚ  s3   € Ü�]Š]œ:×BÑBÕCÜ× Ò  %¨ Ô0÷ D×CÖCúrT  c                 ó°   • [         R                  " [        R                  5         [        R
                  " SS05        S S S 5        g ! , (       d  f       g = f)Nrd   é%   rÿ  r{   s    r   Útest_detect_with_non_URI_schemaÚ1TestSpecification.test_detect_with_non_URI_schemaÞ  s3   € Ü�]Š]œ:×BÑBÕCÜ× Ò  )¨R Ô1÷ D×CÖCúrT  c                 óp   • [         R                  R                  SS05      nU[         R                  L d   eg rþ  ©r   rn   rù  ©rA   r   s     r   Ú7test_detect_with_no_discernible_information_and_defaultÚITestSpecification.test_detect_with_no_discernible_information_and_defaultâ  ó0   € Ü%×,Ñ,×3Ñ3°U¸E°NÓCˆØ¤× 4Ñ 4Ò4Ð4Ñ4r   c                 ób   • SS0n[         R                  R                  U5      nU[        :X  d   eg rø  )r   rn   rù  r	   rú  s      r   Útest_detect_unneeded_defaultÚ.TestSpecification.test_detect_unneeded_defaultæ  s1   € ØÐKÐLˆÜ%×,Ñ,×3Ñ3°FÓ;ˆØ¤Ó+Ð+Ñ+r   c                 ó¬   • [         R                  " [        R                  5         [        R
                  " S5        S S S 5        g ! , (       d  f       g = f©NTrÿ  r{   s    r   Útest_non_mapping_detectÚ)TestSpecification.test_non_mapping_detectë  s/   € Ü�]Š]œ:×BÑBÕCÜ× Ò  Ô&÷ D×CÖCús   ¥AÁ
Ac                 óD   • [         R                  S5      nU[         L d   eg r  )rI   rù  r  s     r   Ú$test_non_mapping_detect_with_defaultÚ6TestSpecification.test_non_mapping_detect_with_defaultï  s    € Ü'×.Ñ.¨tÓ4ˆØ¤Ò/Ð/Ñ/r   c                 óp   • [         R                  R                  SS05      nU[         R                  L d   eg rþ  r  r  s     r   Útest_detect_with_fallbackÚ+TestSpecification.test_detect_with_fallbackó  r  r   c                 ó.   • [        [        5      S:X  d   eg )Nz&<Specification name='id-and-children'>)r:  rI   r{   s    r   r;  ÚTestSpecification.test_repr÷  s   € ä”Ó!Ð%MÓMð	
ÙMr   r!   N)rF  rG  rH  rI  rõ  rû  r   r  r	  r  r  r  r  r;  rJ  r!   r   r   rî  rî  Ã  s4   † ò.ò",ò
1ò2ò5ò,ò
'ò0ò5õ
r   rî  c                   óü   • \ rS rSrSS0SSS\" 5       /r\R                  R                  S\5      S 5       r	\R                  R                  S\5      S 5       r
\R                  R                  S\5      S	 5       rS
rg)ÚTestOpaqueSpecificationiý  r:   r;   Tr  Úthingc                 óH   • [         R                  R                  U5      b   eg)z
An arbitrary thing has no ID.
N)r   rn   r-   ©rA   r  s     r   Ú
test_no_idÚ"TestOpaqueSpecification.test_no_id   s!   € ô ×#Ñ#×)Ñ)¨%Ó0Ñ8Ð8Ñ8r   c                 ó`   • [        [        R                  R                  U5      5      / :X  d   eg)z)
An arbitrary thing has no subresources.
N)rz  r   rn   r.   r  s     r   Útest_no_subresourcesÚ,TestOpaqueSpecification.test_no_subresources  s(   € ô ”M×(Ñ(×8Ñ8¸Ó?Ó@ÀBÓFÐFÑFr   c                 ó`   • [        [        R                  R                  U5      5      / :X  d   eg)z$
An arbitrary thing has no anchors.
N)rz  r   rn   r/   r  s     r   Útest_no_anchorsÚ'TestOpaqueSpecification.test_no_anchors  s(   € ô ”M×(Ñ(×3Ñ3°EÓ:Ó;¸rÓAÐAÑAr   r!   N)rF  rG  rH  rI  ÚobjectÚTHINGSr\   ÚmarkÚparametrizer   r#  r&  rJ  r!   r   r   r  r  ý  s‰   † Ø�eˆn˜d B¨©v«xÐ8€Fà‡[�[×Ñ˜W fÓ-ñ9ó .ð9ð ‡[�[×Ñ˜W fÓ-ñGó .ðGð ‡[�[×Ñ˜W fÓ-ñBó .óBr   r  Úclsc                 ó€   • [         R                  " [        SS9    " S SU 5      nS S S 5        g ! , (       d  f       g = f)Nz(?i)subclassingrô   c                   ó   • \ rS rSrSrg)Ú"test_nonsubclassable.<locals>.Boomi   r!   N)rF  rG  rH  rI  rJ  r!   r   r   ÚBoomr/     s   † Úr   r0  )r\   r]   rö   )r,  r0  s     r   Útest_nonsubclassabler1    s+   € ô
 
�Š”yÐ(9Ó	:ô	�3ô 	÷ 
;×	:Ö	:ús   š/¯
=)Úrpdsr   r\   Úreferencingr   r   r   r   r   Úreferencing.jsonschemar	   rI   r5   r7   rL  r–  rî  r  r*  r+  r¬  r1  r!   r   r   Ú<module>r5     s¯   ðÝ Û ç MÕ MÝ .áØ	Ù
-ÙAñññ€ò(M÷^>ñ ^>÷Bt
ñ t
÷nF:ñ F:÷R7
ñ 7
÷tBñ Bð8 ‡�×ÑØ	ØˆX�x °
×0KÑ0KÐLóñó	ñr   