Ë
    š”e¼6 ã                   óæ  — d Z ddlZddlmZ d„ Z G d„ d«      Z G d„ de«      Z G d	„ d
e«      Z G d„ de«      Z G d„ de«      Z	 G d„ dej                  «      Z G d„ de«      Z G d„ dej                  «      Z G d„ dee«      Z G d„ dej                  «      Z G d„ dee«      Z G d„ dej                  «      Z G d„ dej                  «      Z G d„ d e«      Z G d!„ d"ej                  «      Zy)#zAdapter registry tests
é    N)ÚOptimizationTestMixinc            	      óî   — ddl m}   G d„ d| «      } G d„ d|«      } G d„ d|«      } G d	„ d
||«      } G d„ d||«      } G d„ d| «      } G d„ d|«      } G d„ d| «      } G d„ d|«      }	|||||||||	f	S )Nr   ©Ú	Interfacec                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IB0N©Ú__name__Ú
__module__Ú__qualname__© ó    úC/usr/lib/python3/dist-packages/zope/interface/tests/test_adapter.pyÚIB0r      ó   „ Ør   r   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IB1Nr	   r   r   r   ÚIB1r      r   r   r   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IB2Nr	   r   r   r   ÚIB2r      r   r   r   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IB3Nr	   r   r   r   ÚIB3r       r   r   r   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IB4Nr	   r   r   r   ÚIB4r   "   r   r   r   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IF0Nr	   r   r   r   ÚIF0r   %   r   r   r    c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IF1Nr	   r   r   r   ÚIF1r"   '   r   r   r#   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IR0Nr	   r   r   r   ÚIR0r%   *   r   r   r&   c                   ó   — e Zd Zy)ú_makeInterfaces.<locals>.IR1Nr	   r   r   r   ÚIR1r(   ,   r   r   r)   )Úzope.interfacer   )
r   r   r   r   r   r   r    r#   r&   r)   s
             r   Ú_makeInterfacesr+      s�   € Ý(ôˆiô ôˆcô ôˆcô ôˆc�3ô ôˆc�3ô ôˆiô ôˆcô ôˆiô ôˆcô ð ��S˜#˜s C¨¨c°3Ð6Ð6r   c                   ó:   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y)	ÚCustomDataTypeBaseNc                 ó    — | j                   |   S ©N©Ú_data©ÚselfÚnames     r   Ú__getitem__zCustomDataTypeBase.__getitem__7   s   € Ø�z‰z˜$ÑÐr   c                 ó"   — || j                   |<   y r/   r0   )r3   r4   Úvalues      r   Ú__setitem__zCustomDataTypeBase.__setitem__:   s   € Ø ˆ�
‰
�4Òr   c                 ó   — | j                   |= y r/   r0   r2   s     r   Ú__delitem__zCustomDataTypeBase.__delitem__=   s   € Ø�J‰J�tÑr   c                 ó,   — t        | j                  «      S r/   )Úlenr1   ©r3   s    r   Ú__len__zCustomDataTypeBase.__len__@   s   € Ü�4—:‘:‹Ðr   c                 ó   — || j                   v S r/   r0   r2   s     r   Ú__contains__zCustomDataTypeBase.__contains__C   s   € Ø�t—z‘zÐ!Ð!r   c                 ón   — || u ryt        |«      t        | «      k7  ry|j                  | j                  k(  S )NTF)Útyper1   ©r3   Úothers     r   Ú__eq__zCustomDataTypeBase.__eq__F   s2   € Ø�D‰=Øä�‹;œ$˜t›*Ò$ØØ�{‰{˜dŸj™jÑ(Ð(r   c                 ó,   — t        | j                  «      S r/   )Úreprr1   r=   s    r   Ú__repr__zCustomDataTypeBase.__repr__N   s   € Ü�D—J‘JÓÐr   )r
   r   r   r1   r5   r8   r:   r>   r@   rE   rH   r   r   r   r-   r-   5   s*   „ Ø€Eò ò!òòò"ò)ó r   r-   c                   ó   — e Zd Zdd„Zy)ÚCustomMappingNc                 ó¸   — i | _         |r| j                   j                  |«       | j                   j                  | _        | j                   j                  | _        y r/   )r1   ÚupdateÚgetÚitemsrC   s     r   Ú__init__zCustomMapping.__init__R   s>   € ØˆŒ
ÙØ�J‰J×Ñ˜eÔ$Ø—:‘:—>‘>ˆŒØ—Z‘Z×%Ñ%ˆ�
r   r/   ©r
   r   r   rO   r   r   r   rJ   rJ   Q   s   „ ô&r   rJ   c                   ó   — e Zd Zdd„Zy)ÚCustomSequenceNc                 ó‚   — g | _         |r| j                   j                  |«       | j                   j                  | _        y r/   )r1   ÚextendÚappendrC   s     r   rO   zCustomSequence.__init__[   s/   € ØˆŒ
ÙØ�J‰J×Ñ˜eÔ$Ø—j‘j×'Ñ'ˆ�r   r/   rP   r   r   r   rR   rR   Z   s   „ ô(r   rR   c                   ó   — e Zd Zy)ÚCustomLeafSequenceNr	   r   r   r   rW   rW   a   ó   „ Ør   rW   c                   ó   — e Zd Zy)ÚCustomProvidedNr	   r   r   r   rZ   rZ   d   rX   r   rZ   c                   ó  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd,d„Zd,d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-y)-ÚBaseAdapterRegistryTestsNc                 ó   — ddl m} |S )Nr   ©ÚBaseAdapterRegistry©Úzope.interface.adapterr_   )r3   r_   s     r   Ú_getBaseAdapterRegistryz0BaseAdapterRegistryTests._getBaseAdapterRegistryl   s   € Ý>Ø"Ð"r   c                 óœ   — | j                  «       } G d„ d|«      }|j                  D ]!  }t        |j                  |t	        «       «       Œ# |S )Nc                   ó    — e Zd Z G d„ d«      Zy)ú6BaseAdapterRegistryTests._getTargetClass.<locals>._CUTc                   ó,   — e Zd ZdxZZd„ Zd„ Zd„ Zd„ Zy)úBBaseAdapterRegistryTests._getTargetClass.<locals>._CUT.LookupClassr   c                  ó   — y r/   r   )r3   Úregs     r   rO   zKBaseAdapterRegistryTests._getTargetClass.<locals>._CUT.LookupClass.__init__u   s   € Ør   c                 ó0   — | xj                   |fz  c_         y r/   ©Ú_changed)r3   Úorigs     r   ÚchangedzJBaseAdapterRegistryTests._getTargetClass.<locals>._CUT.LookupClass.changedw   s   € Ø—M’M d WÑ,–Mr   c                 ó0   — | xj                   |fz  c_         y r/   )Ú
_extendors©r3   Úprovideds     r   Úadd_extendorzOBaseAdapterRegistryTests._getTargetClass.<locals>._CUT.LookupClass.add_extendory   s   € Ø—O’O¨ {Ñ2–Or   c                 óh   — t        | j                  D �cg c]	  }||k7  r|‘Œ c}«      | _        y c c}w r/   )Útuplerp   )r3   rr   Úxs      r   Úremove_extendorzRBaseAdapterRegistryTests._getTargetClass.<locals>._CUT.LookupClass.remove_extendor{   s3   € Ü&+¸¿¹ö -?°1Ø01°X²ò ./ò -?ó '@�D•Oùò -?s   ”/N)	r
   r   r   rl   rp   rO   rn   rs   rw   r   r   r   ÚLookupClassrg   s   s!   „ Ø(*Ð*�˜:òò-ò3ó@r   rx   N)r
   r   r   rx   r   r   r   Ú_CUTre   r   s   „ ÷
@ò 
@r   ry   )rb   Ú
_delegatedÚsetattrrx   Úobject)r3   r_   ry   r4   s       r   Ú_getTargetClassz(BaseAdapterRegistryTests._getTargetClassp   sP   € Ø"×:Ñ:Ó<Ðô	@Ð&ô 	@ð (×2Ñ2ò 	6ˆDÜ�D×$Ñ$ d¬F«HÕ5ð	6àˆr   c                 ó,   —  | j                  «       «       S r/   ©r}   r=   s    r   Ú_makeOnez!BaseAdapterRegistryTests._makeOne‚   s   € Ø%ˆt×#Ñ#Ó%Ó'Ð'r   c                 ó   — t         S r/   ©Údictr=   s    r   Ú_getMappingTypez(BaseAdapterRegistryTests._getMappingType…   ó   € Üˆr   c                 ó   — t         S r/   r‚   r=   s    r   Ú_getProvidedTypez)BaseAdapterRegistryTests._getProvidedTypeˆ   r…   r   c                 ó   — t         S r/   )Úlistr=   s    r   Ú_getMutableListTypez,BaseAdapterRegistryTests._getMutableListType‹   r…   r   c                 ó   — t         S r/   )ru   r=   s    r   Ú_getLeafSequenceTypez-BaseAdapterRegistryTests._getLeafSequenceTypeŽ   s   € Üˆr   c                 ó´   — | j                  «       } |«       }|j                  D ]2  }| j                  t        ||«      t        |j                  |«      «       Œ4 y r/   )r}   rz   ÚassertIsÚgetattrÚ	_v_lookup)r3   ÚCUTÚregistryr4   s       r   Útest_lookup_delegationz/BaseAdapterRegistryTests.test_lookup_delegation‘   sN   € Ø×"Ñ"Ó$ˆÙ“5ˆØ—N‘Nò 	VˆDØ�M‰Mœ' (¨DÓ1´7¸8×;MÑ;MÈtÓ3TÕUñ	Vr   c                 ó\   — | j                  «       }| j                  |j                  d«       y ©Né   )r€   ÚassertEqualÚ_generation©r3   r’   s     r   Ú"test__generation_on_first_creationz;BaseAdapterRegistryTests.test__generation_on_first_creation—   s#   € Ø—=‘=“?ˆà×Ñ˜×-Ñ-¨qÕ1r   c                 óâ   — | j                  «       }t        «       }|j                  |«       | j                  |j                  d«       | j                  |j
                  j                  ||f«       y ©Né   )r€   r|   rn   r—   r˜   r�   rl   )r3   r’   rm   s      r   Ú&test__generation_after_calling_changedz?BaseAdapterRegistryTests.test__generation_after_calling_changedœ   sY   € Ø—=‘=“?ˆÜ‹xˆØ×Ñ˜Ôà×Ñ˜×-Ñ-¨qÔ1Ø×Ñ˜×+Ñ+×4Ñ4°xÀÐ6GÕHr   c                 ó€   —  G d„ d«      }| j                  «       }|f|_        | j                  |j                  d«       y )Nc                   ó   — e Zd Zy)úQBaseAdapterRegistryTests.test__generation_after_changing___bases__.<locals>._BaseNr	   r   r   r   Ú_Baser¡   ¥   ó   „ Ør   r¢   r�   )r€   Ú	__bases__r—   r˜   )r3   r¢   r’   s      r   Ú)test__generation_after_changing___bases__zBBaseAdapterRegistryTests.test__generation_after_changing___bases__¤   s7   € ÷	ñ 	à—=‘=“?ˆØ#˜XˆÔØ×Ñ˜×-Ñ-¨qÕ1r   c                 óä  — | j                  t        |j                  «      |«       | j                  |j                  | j	                  «       «       | j                  «       }|j                  D ]  }| j                  ||«       Œ | j                  |j                  d    |«       «       | j                  |j                  d   |«       | j                  t        |j                  |dz
     «      d«       y ©Nr   r–   )r—   r<   Ú	_adaptersÚassertIsInstancerŠ   r„   ©r3   r’   Úexpected_orderÚMTÚmappings        r   Ú_check_basic_types_of_adaptersz7BaseAdapterRegistryTests._check_basic_types_of_adapters«   sÌ   € Ø×Ñœ˜X×/Ñ/Ó0°.ÔAØ×Ñ˜h×0Ñ0°$×2JÑ2JÓ2LÔMØ×!Ñ!Ó#ˆØ×)Ñ)ò 	/ˆGØ×!Ñ! '¨2Õ.ð	/à×Ñ˜×+Ñ+¨AÑ.±³Ô5Ø×Ñ˜h×0Ñ0°Ñ3°RÔ8Ø×Ñœ˜X×/Ñ/°ÀÑ0BÑCÓDÀaÕHr   c                 óê  — | j                  t        |j                  «      |«       | j                  |j                  | j	                  «       «       | j                  «       }|j                  D ]  }| j                  ||«       Œ |ro| j                  |j                  d    |«       «       | j                  |j                  d   |«       | j                  t        |j                  |dz
     «      d«       y y r§   )r—   r<   Ú_subscribersr©   rŠ   r„   rª   s        r   Ú!_check_basic_types_of_subscribersz:BaseAdapterRegistryTests._check_basic_types_of_subscribersµ   sÔ   € Ø×Ñœ˜X×2Ñ2Ó3°^ÔDØ×Ñ˜h×3Ñ3°T×5MÑ5MÓ5OÔPØ×!Ñ!Ó#ˆØ×,Ñ,ò 	/ˆGØ×!Ñ! '¨2Õ.ð	/áØ×Ñ˜X×2Ñ2°1Ñ5±r³tÔ<Ø×!Ñ! (×"7Ñ"7¸Ñ":¸BÔ?Ø×ÑœS ×!6Ñ!6°~ÈÑ7IÑ!JÓKÈQÕOð r   c                 óp  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |g|dd«       | j                  |
j	                  |g|d«      d«       | j                  |
j
                  d«       | j                  |
«       | j                  «       }| j                  |
j                  d    || || |ddi«      i«      i«      «       | j                  «       }| j                  |
j                   ||di«      «       t        |
j                  «       «      }| j                  ||f|ddfg«       y )NÚ ÚA1r�   r–   )r+   r€   Úregisterr—   Ú
registeredr˜   r®   r„   r¨   r‡   Ú	_providedr‰   ÚallRegistrations)r3   r   r   r   r   r   r    r#   r&   r)   r’   r¬   ÚPTr¶   s                 r   Útest_registerz&BaseAdapterRegistryTests.test_registerÀ   sH  € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜3˜%  b¨$Ô/Ø×Ñ˜×,Ñ,¨c¨U°C¸Ó<¸dÔCØ×Ñ˜×-Ñ-¨qÔ1Ø×+Ñ+¨HÔ5Ø×!Ñ!Ó#ˆØ×Ñ˜×+Ñ+¨AÑ.±Ø‘Ø‘R˜˜T˜
“^ðó ð4
ó 1ô 	ð
 ×"Ñ"Ó$ˆØ×Ñ˜×+Ñ+©RØ�ð1
ó .ô 	ô ˜(×3Ñ3Ó5Ó6ˆ
Ø×Ñ˜ØˆFØØØð	'
ð &õ 	r   c                 ó.  ‡
‡‡‡‡‡— t        «       \	  Š
ŠŠŠ}}}ŠŠ| j                  «       }|j                  g ‰dd«       |j                  g ‰dd«       |j                  ‰
g‰dd«       |j                  ‰
g‰dd«       |j                  ‰
g‰dd«       |j                  ‰
g‰dd«       |j                  ‰
‰g‰dd«       |j                  ‰
‰g‰dd«       |j                  ‰
‰g‰d	d«       |j                  ‰
‰g‰dd«       ˆ
ˆˆˆˆˆfd
„}| j                  |j                   || j                  «       | j                  «       ¬«      «       t        |j                  «       «      }| j                  |d‰ddfd‰ddf‰
f‰ddf‰
f‰ddf‰
f‰ddf‰
f‰ddf‰
‰f‰ddf‰
‰f‰ddf‰
‰f‰d	df‰
‰f‰ddfg
«       | j                  «       }|D ]  } |j                  |Ž  Œ | j                  |j                  |j                  «       | j                  |j                  |j                  «       t        |_        t        |_        t        |_        t         |_        d„ }	|	|_        |j'                  «        | j                  |j                   |t        t        ¬«      «       y )Nr³   r´   Úname1ÚA2Úname2ÚA3Úname3ÚA4Úname4c                 ó   •—  |  |‰ |dddœ«      i«       |‰ |‰ |dddœ«      ‰ |dddœ«      i«      i«       |‰ |‰ |‰ |ddi«      i«      ‰ |‰ |d	di«      ‰ |d
di«      i«      ‰ |‰ |ddi«      i«      i«      i«      g«      S )Nr´   r½   )r³   r¼   )r³   r¾   r¿   rÁ   )r³   rÀ   r³   r¾   rÂ   r   )ÚLr¬   r   r   r   r   r&   r)   s     €€€€€€r   Úbuild_adapterszXBaseAdapterRegistryTests.test_register_multiple_allRegistrations.<locals>.build_adaptersë   s  ø€ ÙáØ™Ø Ø!%ñó ðó ñ Ø™Ø™RØ $Ø%)ñ!ó ð ™RØ $Ø%)ñ!ó ð	ó 	ðó ñ Ø™Ø™RØ¡ R¨ J£ð!ó ð ™RØ¡ W¨d OÓ!4Ø¡ W¨d OÓ!4ð!ó ð ™RØ¡ R¨ J£ð!ó ðó ðó ð-$ó $ð $r   )rÄ   r¬   r   c                 óD   — | �| n	t        «       } | j                  |«       | S r/   ©rW   rU   ©ÚexistingÚnews     r   ÚaddValuezRBaseAdapterRegistryTests.test_register_multiple_allRegistrations.<locals>.addValue1  ó#   € Ø#+Ð#7‘xÔ=OÓ=QˆHØ�O‰O˜CÔ ØˆOr   )r+   r€   rµ   r—   r¨   rŠ   r„   Úsortedr¸   r·   rJ   Ú_mappingTyperW   Ú_leafSequenceTyperR   Ú_sequenceTyperZ   Ú_providedTypeÚ_addValueToLeafÚrebuild)r3   r   r    r#   r’   rÅ   r¶   Ú	registry2ÚargsrË   r   r   r   r   r&   r)   s             @@@@@@r   Ú'test_register_multiple_allRegistrationsz@BaseAdapterRegistryTests.test_register_multiple_allRegistrationsÚ   sÎ  ý€ Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆà×Ñ˜"˜c 2 tÔ,Ø×Ñ˜"˜c 7¨DÔ1à×Ñ˜3˜%  b¨$Ô/Ø×Ñ˜3˜%  g¨tÔ4Ø×Ñ˜3˜%  b¨$Ô/Ø×Ñ˜3˜%  g¨tÔ4à×Ñ˜3 ˜* c¨2¨tÔ4Ø×Ñ˜3 ˜* c¨7°DÔ9Ø×Ñ˜3 ˜* c¨7°DÔ9Ø×Ñ˜3 ˜* c¨2¨tÔ4÷%	ñ %	ðN 	×Ñ˜×+Ñ+Ù'¨$×*BÑ*BÓ*DØ+/×+?Ñ+?Ó+AôCô	Dô ˜H×5Ñ5Ó7Ó8ˆ
Ø×Ñ˜Ø��b˜$ÐØ��g˜tÐ$ØˆV�S˜"˜dÐ#ØˆV�S˜' 4Ð(ØˆV�S˜"˜dÐ#ØˆV�S˜' 4Ð(Ø�3ˆZ˜˜b $Ð'Ø�3ˆZ˜˜g tÐ,Ø�3ˆZ˜˜g tÐ,Ø�3ˆZ˜˜b $Ð'ð&
ô 	ð —M‘M“Oˆ	Øò 	&ˆDØˆI×Ñ Ò%ð	&ð 	×Ñ˜×,Ñ,¨h×.@Ñ.@ÔAØ×Ñ˜×,Ñ,¨h×.@Ñ.@ÔAô !.ˆÔÜ%7ˆÔ"Ü!/ˆÔÜ!/ˆÔò	ð $,ˆÔ à×ÑÔà×Ñ˜×+Ñ+Ù'Ü-Ü -ôõ	r   c           	      óÚ   — t        «       \	  }}}}}}}}}	| j                  «       }
| j                  t        «      5  |
j	                  |g|t        «       d«       d d d «       y # 1 sw Y   y xY w©Nr´   )r+   r€   ÚassertRaisesÚ
ValueErrorrµ   r|   ©r3   r   r   r   r   r   r    r#   r&   r)   r’   s              r   Útest_register_with_invalid_namez8BaseAdapterRegistryTests.test_register_with_invalid_name?  sc   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×ÑœzÓ*ñ 	:Ø×Ñ˜s˜e S¬&«(°DÔ9÷	:÷ 	:ñ 	:ús   ºA!Á!A*c           	      ó”  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  d g|dd«       |
j                  d g|dd «       | j                  t	        |
j
                  «      d«       | j                  |
j
                  | j                  «       «       t        |
j                  «       «      }| j                  |g «       y )Nr³   r´   r   )
r+   r€   rµ   r—   r<   r¨   r©   rŠ   r‰   r¸   )r3   r   r   r   r   r   r    r#   r&   r)   r’   r¶   s               r   Ú)test_register_with_value_None_unregisterszBBaseAdapterRegistryTests.test_register_with_value_None_unregistersE  s±   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜4˜& # r¨4Ô0Ø×Ñ˜4˜& # r¨4Ô0Ø×Ñœ˜X×/Ñ/Ó0°!Ô4Ø×Ñ˜h×0Ñ0°$×2JÑ2JÓ2LÔMÜ˜(×3Ñ3Ó5Ó6ˆ
Ø×Ñ˜ RÕ(r   c                 ó"  — ddl m} t        «       \	  }}}}}}}}	}
| j                  «       }t	        «       }|j                  d g|	d|«       |j                  }|j                  d g|	d|«       | j                  |j                  |«       | j                  |«       | j                  «       }| j                  |j                  d    || ||	 |d|i«      i«      i«      «       t        |j                  «       «      }| j                  ||f|	d|fg«       y )Nr   r   r³   r–   )r*   r   r+   r€   r|   rµ   r˜   r—   r®   r„   r¨   r‰   r¸   )r3   r   r   r   r   r   r   r    r#   r&   r)   r’   Ú_valueÚ_beforer¬   r¶   s                   r   Útest_register_with_same_valuez6BaseAdapterRegistryTests.test_register_with_same_valueO  s  € Ý,Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ“ˆØ×Ñ˜4˜& # r¨6Ô2Ø×&Ñ&ˆØ×Ñ˜4˜& # r¨6Ô2Ø×Ñ˜×-Ñ-¨wÔ7Ø×+Ñ+¨HÔ5Ø×!Ñ!Ó#ˆØ×Ñ˜×+Ñ+¨AÑ.±à™2à™R  V Ó-ðóðó1
ô 	ô ˜(×3Ñ3Ó5Ó6ˆ
Ø×Ñ˜ØˆLØØØð	'
ð &õ 	r   c                 óÂ   — | j                  «       }| j                  |j                  d gd d«      d «       t        |j	                  «       «      }| j                  |g «       y ©Nr³   )r€   r—   r¶   r‰   r¸   )r3   r’   r¶   s      r   Útest_registered_emptyz.BaseAdapterRegistryTests.test_registered_emptyl  sQ   € Ø—=‘=“?ˆØ×Ñ˜×,Ñ,¨d¨V°T¸2Ó>ÀÔEÜ˜(×3Ñ3Ó5Ó6ˆ
Ø×Ñ˜ RÕ(r   c           	      ó¾   — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |gd dd«       | j                  |
j	                  |gd d«      d «       y ©Nr³   r´   )r+   r€   rµ   r—   r¶   rÛ   s              r   Útest_registered_non_empty_missz7BaseAdapterRegistryTests.test_registered_non_empty_missr  s_   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜3˜%  r¨4Ô0Ø×Ñ˜×,Ñ,¨c¨U°D¸"Ó=¸tÕDr   c                 ó–   — | j                  «       }|j                  d gd dd«       | j                  |j                  d gd d«      d«       y rç   )r€   rµ   r—   r¶   r™   s     r   Útest_registered_non_empty_hitz6BaseAdapterRegistryTests.test_registered_non_empty_hitx  sD   € Ø—=‘=“?ˆØ×Ñ˜4˜& $¨¨DÔ1Ø×Ñ˜×,Ñ,¨d¨V°T¸2Ó>ÀÕEr   c                 óÞ   — | j                  «       }|j                  d gd d«       | j                  |j                  d gd d«      d «       | j                  t	        |j
                  «      d«       y )Nr³   r   )r€   Ú
unregisterr—   r¶   r<   r·   r™   s     r   Útest_unregister_emptyz.BaseAdapterRegistryTests.test_unregister_empty}  s]   € Ø—=‘=“?ˆØ×Ñ˜T˜F D¨"Ô-Ø×Ñ˜×,Ñ,¨d¨V°T¸2Ó>ÀÔEØ×Ñœ˜X×/Ñ/Ó0°!Õ4r   c                 óþ  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |gd dd«       |
j                  |gd d«       | j	                  |
j                  |gd d«      d«       | j                  |
«       | j                  «       }| j	                  |
j                  d    || |d  |ddi«      i«      i«      «       | j                  «       }| j	                  |
j                   |d di«      «       y )Nr³   r´   r–   ©r+   r€   rµ   rì   r—   r¶   r®   r„   r¨   r‡   r·   ©r3   r   r   r   r   r   r    r#   r&   r)   r’   r¬   r¹   s                r   Ú*test_unregister_non_empty_miss_on_requiredzCBaseAdapterRegistryTests.test_unregister_non_empty_miss_on_requiredƒ  s	  € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜3˜%  r¨4Ô0Ø×Ñ˜S˜E 4¨Ô,Ø×Ñ˜×,Ñ,¨c¨U°D¸"Ó=¸tÔDØ×+Ñ+¨HÔ5Ø×!Ñ!Ó#ˆØ×Ñ˜×+Ñ+¨AÑ.±à‘Rà™b " d ›nðóðó1
ô 	ð ×"Ñ"Ó$ˆØ×Ñ˜×+Ñ+©RØ�!ð1
ó .õ 	r   c                 óþ  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |gd dd«       |
j                  |gd d«       | j	                  |
j                  |gd d«      d«       | j                  |
«       | j                  «       }| j	                  |
j                  d    || |d  |ddi«      i«      i«      «       | j                  «       }| j	                  |
j                   |d di«      «       y )Nr³   r´   Únonesuchr–   rï   rð   s                r   Ú&test_unregister_non_empty_miss_on_namez?BaseAdapterRegistryTests.test_unregister_non_empty_miss_on_name™  s	  € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜3˜%  r¨4Ô0Ø×Ñ˜S˜E 4¨Ô4Ø×Ñ˜×,Ñ,¨c¨U°D¸"Ó=¸tÔDØ×+Ñ+¨HÔ5Ø×!Ñ!Ó#ˆØ×Ñ˜×+Ñ+¨AÑ.±à‘Rà™b " d ›nðóðó1
ô 	ð ×"Ñ"Ó$ˆØ×Ñ˜×+Ñ+©RØ�!ð1
ó .õ 	r   c           	      ó  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }t        «       }|
j                  |gd d|«       |
j	                  |gd d|«       | j                  |
j                  |gd d«      |«       y rä   )r+   r€   r|   rµ   rì   rŽ   r¶   ©r3   r   r   r   r   r   r    r#   r&   r)   r’   rm   Únomatchs                r   Ú(test_unregister_with_value_not_None_misszABaseAdapterRegistryTests.test_unregister_with_value_not_None_miss¯  s�   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ‹xˆÜ“(ˆØ×Ñ˜3˜%  r¨4Ô0Ø×Ñ˜S˜E 4¨¨WÔ5Ø�‰�h×)Ñ)¨3¨%°°rÓ:¸DÕAr   c                 ó  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }t        «       }|
j                  ||gd d|«       |
j                  ||gd d|«       | j	                  |
d¬«       | j                  ||
j                  d   |   «       | j                  ||
j                  d   |   «       | j                  «       }| j                  |
j                  d    || || |d  |d|i«      i«      | |d  |d|i«      i«      i«      i«      «       | j                  «       }| j                  |
j                   |d di«      «       |
j                  ||gd d|«       | j                  ||
j                  d   |   «       | j                  ||
j                  d   |   «       | j                  |
j                  d    || || |d  |d|i«      i«      i«      i«      «       | j                  |
j                   |d di«      «       y )Nr³   é   ©r«   r�   r–   )r+   r€   r|   rµ   r®   ÚassertInr¨   r„   r—   r‡   r·   rì   ÚassertNotIn)r3   r   r   r   r   r   r    r#   r&   r)   r’   ÚoneÚanotherr¬   r¹   s                  r   Ú.test_unregister_hit_clears_empty_subcomponentszGBaseAdapterRegistryTests.test_unregister_hit_clears_empty_subcomponents¸  s-  € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ‹hˆÜ“(ˆØ×Ñ˜3 ˜* d¨B°Ô4Ø×Ñ˜3 ˜* d¨B°Ô8Ø×+Ñ+¨HÀQÐ+ÔGØ�‰�c˜8×-Ñ-¨aÑ0°Ñ5Ô6Ø�‰�c˜8×-Ñ-¨aÑ0°Ñ5Ô6Ø×!Ñ!Ó#ˆØ×Ñ˜×+Ñ+¨AÑ.±à‘Rà™R ¡r¨2¨s¨)£}Ð 5Ó6Ø™R ¡r¨2¨w¨-Ó'8Ð 9Ó:ðóðó	1
ô 		ð ×"Ñ"Ó$ˆØ×Ñ˜×+Ñ+©RØ�!ð1
ó .ô 	ð 	×Ñ˜S #˜J¨¨b°'Ô:Ø�‰�c˜8×-Ñ-¨aÑ0°Ñ5Ô6Ø×Ñ˜˜h×0Ñ0°Ñ3°CÑ8Ô9Ø×Ñ˜×+Ñ+¨AÑ.±à‘Rà™R ¡r¨2¨s¨)£}Ð 5Ó6ðóðó1
ô 	ð 	×Ñ˜×+Ñ+©RØ�!ð1
ó .õ 	r   c                 óº   — | j                  «       }|j                  d gd d«       | j                  |j                  d gd d«      d «       | j	                  |d¬«       y )Nr³   r   rû   )r€   Úunsubscriber—   r¶   r±   r™   s     r   Útest_unsubscribe_emptyz/BaseAdapterRegistryTests.test_unsubscribe_emptyâ  sU   € Ø—=‘=“?ˆØ×Ñ˜d˜V T¨2Ô.Ø×Ñ˜×,Ñ,¨d¨V°T¸2Ó>ÀÔEØ×.Ñ.¨xÈÐ.ÕJr   c                 ó€  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }|
j                  |gd |«       | j	                  «       }| j                  «       }| j                  «       }| j                  |
«       | j                  |
j                  d    || |d  |d ||f«      i«      i«      i«      «       | j                  |
j                   |i «      «       |
j                  |gd |«       | j                  t        |
j                  «      d«       | j                  |
j                   |i «      «       y )Nr–   r³   r   )r+   r€   r|   Ú	subscriber„   rŒ   r‡   r±   r—   r°   r·   r  r<   )r3   r   r   r   r   r   r    r#   r&   r)   r’   rm   r¬   rÄ   r¹   s                  r   Útest_unsubscribe_hitz-BaseAdapterRegistryTests.test_unsubscribe_hitè  s0  € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ‹xˆØ×Ñ˜C˜5 $¨Ô-Ø×!Ñ!Ó#ˆØ×%Ñ%Ó'ˆØ×"Ñ"Ó$ˆØ×.Ñ.¨xÔ8Ø×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘bØ™˜4˜'›
ðó ðó ð7
ó 4ô 	ð 	×Ñ˜×+Ñ+©R°«VÔ4Ø×Ñ˜c˜U D¨$Ô/Ø×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×Ñ˜×+Ñ+©R°«VÕ4r   c                 ó(   — | j                  ||«       y)a¦  
        Implementations may choose to use new, immutable objects
        instead of mutating existing subscriber leaf objects, or vice versa.

        The default implementation uses immutable tuples, so they are never
        the same. Other implementations may use persistent lists so they should be
        the same and mutated in place. Subclasses testing this behaviour need to
        override this method.
        N)ÚassertIsNot©r3   Úleaf1Úleaf2s      r   ÚassertLeafIdentityz+BaseAdapterRegistryTests.assertLeafIdentityý  s   € ð 	×Ñ˜ Õ&r   c                 óÎ  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }t        «       }t        «       }t        «       }|
j                  |gd |«       |
j                  |gd |«       |
j                  |g||«       |
j                  |g||«       | j	                  |
d¬«       | j                  «       }| j                  «       }| j                  «       }| j                  |
j                  d    || |d  |d |||f«      i«      | |d |||f«      i«      i«      i«      «       | j                  |
j                   ||di«      «       |
j                  d   |   |   d   }|
j                  d   |   d    d   }|
j                  |gd |«       |
j                  |g||«       | j                  |
j                  d    || |d  |d ||f«      i«      | |d ||f«      i«      i«      i«      «       | j                  |
j                   ||di«      «       |
j                  d   |   |   d   }|
j                  d   |   d    d   }| j                  ||«       | j                  ||«       |
j                  |gd |«       |
j                  |g||«       | j                  t        |
j                  «      d«       | j                  t        |
j                  «      d«       y )Nr�   rû   r–   r³   r   )r+   r€   r|   r  r±   r„   rŒ   r‡   r—   r°   r·   r  r  r<   )r3   r   r   r   r   r   r    r#   r&   r)   r’   ÚfirstÚsecondÚthirdÚfourthr¬   rÄ   r¹   ÚIR0_leaf_origÚNon_leaf_origÚIR0_leaf_newÚNon_leaf_news                         r   Útest_unsubscribe_after_multiplez8BaseAdapterRegistryTests.test_unsubscribe_after_multiple	  s  € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ“ˆÜ“ˆÜ“ˆÜ“ˆØ×Ñ˜C˜5 $¨Ô.Ø×Ñ˜C˜5 $¨Ô/Ø×Ñ˜C˜5 # uÔ-Ø×Ñ˜C˜5 # vÔ.Ø×.Ñ.¨xÈÐ.ÔJØ×!Ñ!Ó#ˆØ×%Ñ%Ó'ˆØ×"Ñ"Ó$ˆØ×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘b˜"™a ¨ Ó0Ð1Ó2Ø‘R˜™Q  v˜Ó/Ð0Ó1ðó ð7
ó 4ô 	ð 	×Ñ˜×+Ñ+©RØ�ð1
ó .ô 	ð
 !×-Ñ-¨aÑ0°Ñ5°cÑ:¸2Ñ>ˆØ ×-Ñ-¨aÑ0°Ñ5°dÑ;¸BÑ?ˆà×Ñ˜c˜U D¨%Ô0Ø×Ñ˜c˜U C¨Ô/à×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘b˜"™a  	›lÐ+Ó,Ø‘R˜™Q ˜y›\Ð*Ó+ðó ð7
ó 4ô 	ð 	×Ñ˜×+Ñ+©RØ�ð1
ó .ô 	ð  ×,Ñ,¨QÑ/°Ñ4°SÑ9¸"Ñ=ˆØ×,Ñ,¨QÑ/°Ñ4°TÑ:¸2Ñ>ˆà×Ñ ¨|Ô<Ø×Ñ ¨|Ô<à×Ñ˜c˜U D¨&Ô1Ø×Ñ˜c˜U C¨Ô0Ø×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×Ñœ˜X×/Ñ/Ó0°!Õ4r   c                 ó²  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }|
j                  |g||«       |
j                  |g||«       | j	                  «       }| j                  «       }| j                  «       }| j                  |
j                  d    || || |d |||f«      i«      i«      i«      «       | j                  |
j                   ||di«      «       |
j                  |g||«       |
j                  |g||«       | j                  t        |
j                  «      d«       | j                  |
j                   |«       «       y ©Nr–   r³   r�   r   ©r+   r€   r|   r  r„   rŒ   r‡   r—   r°   r·   r  r<   )r3   r   r   r   r   r   r    r#   r&   r)   r’   r  r¬   rÄ   r¹   s                  r   Ú5test_subscribe_unsubscribe_identical_objects_providedzNBaseAdapterRegistryTests.test_subscribe_unsubscribe_identical_objects_provided=  sU  € ä6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ“ˆØ×Ñ˜C˜5 # uÔ-Ø×Ñ˜C˜5 # uÔ-à×!Ñ!Ó#ˆØ×%Ñ%Ó'ˆØ×"Ñ"Ó$ˆØ×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘R˜™Q  u˜~Ó.Ð/Ó0ðó ð7
ó 4ô 	ð
 	×Ñ˜×+Ñ+©RØ�ð1
ó .ô 	ð 	×Ñ˜c˜U C¨Ô/Ø×Ñ˜c˜U C¨Ô/Ø×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×Ñ˜×+Ñ+©R«TÕ2r   c                 óÆ  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }t        «       }|
j                  |g||«       |
j                  |g||«       | j	                  «       }| j                  «       }| j                  «       }| j                  |
j                  d    || || |d |||f«      i«      i«      i«      «       | j                  |
j                   ||di«      «       |
j                  |g||«       |
j                  |g||«       | j                  t        |
j                  «      d«       | j                  |
j                   |«       «       y r  r  )r3   r   r   r   r   r   r    r#   r&   r)   r’   r  r  r¬   rÄ   r¹   s                   r   Ú4test_subscribe_unsubscribe_nonequal_objects_providedzMBaseAdapterRegistryTests.test_subscribe_unsubscribe_nonequal_objects_providedV  s\  € ä6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ“ˆÜ“ˆØ×Ñ˜C˜5 # uÔ-Ø×Ñ˜C˜5 # vÔ.à×!Ñ!Ó#ˆØ×%Ñ%Ó'ˆØ×"Ñ"Ó$ˆØ×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘R˜™Q  v˜Ó/Ð0Ó1ðó ð7
ó 4ô 	ð
 	×Ñ˜×+Ñ+©RØ�ð1
ó .ô 	ð 	×Ñ˜c˜U C¨Ô/Ø×Ñ˜c˜U C¨Ô0Ø×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×Ñ˜×+Ñ+©R«TÕ2r   c                 óÀ   — | j                  «       }| j                  |j                  d gd d«      «       t        |j	                  «       «      }| j                  |g «       y rä   )r€   ÚassertIsNoneÚ
subscribedr‰   ÚallSubscriptionsr—   )r3   r’   r  s      r   Útest_subscribed_emptyz.BaseAdapterRegistryTests.test_subscribed_emptyp  sO   € Ø—=‘=“?ˆØ×Ñ˜(×-Ñ-¨t¨f°d¸BÓ?Ô@Ü˜(×3Ñ3Ó5Ó6ˆ
Ø×Ñ˜ RÕ(r   c           	      óF  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |g|d«       | j                  |
j	                  |g|d«      «       | j                  |
j	                  |g|d«      «       | j                  |
j	                  |g|d«      «       y )Nr´   r³   )r+   r€   r  r  r  rÛ   s              r   Útest_subscribed_non_empty_missz7BaseAdapterRegistryTests.test_subscribed_non_empty_missv  s™   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜C˜5 # tÔ,à×Ñ˜(×-Ñ-¨s¨e°S¸"Ó=Ô>à×Ñ˜(×-Ñ-¨s¨e°S¸"Ó=Ô>à×Ñ˜(×-Ñ-¨s¨e°S¸"Ó=Õ>r   c           	      ó¼   — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |g|d«       | j                  |
j	                  |g|d«      d«       y rØ   )r+   r€   r  r—   r  rÛ   s              r   Útest_subscribed_non_empty_hitz6BaseAdapterRegistryTests.test_subscribed_non_empty_hit�  s]   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜C˜5 # tÔ,Ø×Ñ˜×,Ñ,¨c¨U°C¸Ó>ÀÕEr   c           	      óZ  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }t        «       }|
j                  |gd |«       |
j                  |gd |«       | j	                  |
d¬«       |
j                  |gd «       | j                  t        |
j                  «      d«       y )Nr�   rû   r   )	r+   r€   r|   r  r±   r  r—   r<   r°   )r3   r   r   r   r   r   r    r#   r&   r)   r’   r  r  s                r   Ú&test_unsubscribe_w_None_after_multiplez?BaseAdapterRegistryTests.test_unsubscribe_w_None_after_multiple‡  sž   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ“ˆÜ“ˆà×Ñ˜C˜5 $¨Ô.Ø×Ñ˜C˜5 $¨Ô/Ø×.Ñ.¨xÈÐ.ÔJØ×Ñ˜c˜U DÔ)Ø×Ñœ˜X×2Ñ2Ó3°QÕ7r   c                 óÆ  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |gd d«       | j                  |
d¬«       |
j	                  |gd d«       | j                  t        |
j                  «      d«       | j                  «       }| j                  «       }| j                  |
j                  d    || |d  |d |d«      i«      i«      i«      «       y )Nr´   r�   rû   r³   r–   ©r´   ©
r+   r€   r  r±   r  r—   r<   r°   r„   rŒ   ©r3   r   r   r   r   r   r    r#   r&   r)   r’   r¬   rÄ   s                r   Ú+test_unsubscribe_non_empty_miss_on_requiredzDBaseAdapterRegistryTests.test_unsubscribe_non_empty_miss_on_required“  sã   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜C˜5 $¨Ô-Ø×.Ñ.¨xÈÐ.ÔJØ×Ñ˜c˜U D¨"Ô-Ø×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×!Ñ!Ó#ˆØ×%Ñ%Ó'ˆØ×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘b˜"™a ›jÐ)Ó*ðó ð7
ó 4õ 	r   c                 óÆ  — t        «       \	  }}}}}}}}}	| j                  «       }
|
j                  |gd d«       | j                  |
d¬«       |
j	                  |gd d«       | j                  t        |
j                  «      d«       | j                  «       }| j                  «       }| j                  |
j                  d    || |d  |d |d«      i«      i«      i«      «       y )Nr´   r�   rû   r½   r–   r³   r)  r*  r+  s                r   Ú(test_unsubscribe_non_empty_miss_on_valuezABaseAdapterRegistryTests.test_unsubscribe_non_empty_miss_on_value¢  sã   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñ˜C˜5 $¨Ô-Ø×.Ñ.¨xÈÐ.ÔJØ×Ñ˜c˜U D¨$Ô/Ø×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×!Ñ!Ó#ˆØ×%Ñ%Ó'ˆØ×Ñ˜×.Ñ.¨qÑ1±2Ø‘Ø‘b˜"™a ›jÐ)Ó*ðó ð7
ó 4õ 	r   c           	      ó  — t        «       \	  }}}}}}}}}	| j                  «       }
t        «       }t        «       }|
j                  |gd |«       |
j	                  |gd |«       | j                  t        |
j                  «      d«       y rœ   )r+   r€   r|   r  r  r—   r<   r°   rö   s                r   Ú)test_unsubscribe_with_value_not_None_misszBBaseAdapterRegistryTests.test_unsubscribe_with_value_not_None_miss±  sy   € Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆÜ‹xˆÜ“(ˆØ×Ñ˜C˜5 $¨Ô-Ø×Ñ˜c˜U D¨'Ô2Ø×Ñœ˜X×2Ñ2Ó3°QÕ7r   c                 ó&   — | j                  d«       y )Nz*Example method, not intended to be called.©Úfailr=   s    r   Ú_instance_method_notify_targetz7BaseAdapterRegistryTests._instance_method_notify_targetº  s   € Ø�	‰	Ð>Õ?r   c           	      óX  — t        «       \	  }}}}}}}}}	| j                  «       }
| j                  t        |
j                  «      d«       |
j                  |gd | j                  «       |
j                  |gd | j                  «       | j                  t        |
j                  «      d«       y ©Nr   )r+   r€   r—   r<   r°   r  r4  r  rÛ   s              r   Ú test_unsubscribe_instance_methodz9BaseAdapterRegistryTests.test_unsubscribe_instance_method½  s’   € ä6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆØ×Ñœ˜X×2Ñ2Ó3°QÔ7Ø×Ñ˜C˜5 $¨×(KÑ(KÔLØ×Ñ˜c˜U D¨$×*MÑ*MÔNØ×Ñœ˜X×2Ñ2Ó3°QÕ7r   c                 óœ  ‡‡‡‡‡‡— t        «       \	  ŠŠŠŠ}}}ŠŠ| j                  «       }|j                  g ‰d«       |j                  g ‰d«       |j                  ‰g‰d«       |j                  ‰g‰d«       |j                  ‰g‰d«       |j                  ‰g‰d«       |j                  ‰‰g‰d«       |j                  ‰‰g‰d«       |j                  ‰‰g‰d«       |j                  ‰‰g‰d«       ˆˆˆˆˆˆfd„}| j                  |j                   || j                  «       | j                  «       | j                  «       ¬«      «       ˆˆfd„}| j                  |j                   || j                  «       ¬«      «       t        |j                  «       «      }| j                  |d	‰dfd	‰df‰f‰df‰f‰df‰f‰df‰f‰df‰‰f‰df‰‰f‰df‰‰f‰df‰‰f‰dfg
«       | j                  «       }|D ]  }	 |j                  |	Ž  Œ | j                  |j                  |j                  «       | j                  |j                  |j                  «       t        |_        t        |_        t         |_        t$        |_        d
„ }
|
|_        |j+                  «        | j                  |j                   |t         t        t        ¬«      «       y )Nr´   r½   r¿   rÁ   c                 ó‚  •—  |  |‰ |d |ddg«      i«      i«       |‰ |‰ |d |ddg«      i«      ‰ |d |ddg«      i«      i«      i«       |‰ |‰ |‰ |d |dg«      i«      i«      ‰ |‰ |d |dg«      i«      ‰ |d |dg«      i«      i«      ‰ |‰ |d |dg«      i«      i«      i«      i«      g«      S )Nr³   r´   r½   r¿   rÁ   r   )	rÄ   ÚFr¬   r   r   r   r   r&   r)   s	      €€€€€€r   Úbuild_subscribersz\BaseAdapterRegistryTests.test_subscribe_multiple_allRegistrations.<locals>.build_subscribersØ  s5  ø€ ÙáØ™Ø™A˜t T˜l›Oðó ðó ñ Ø™Ø™RØ¡ 4¨ ,£ð!ó ð ™RØ¡ 4¨ ,£ð!ó ð	ó ð	ó 	ñ Ø™Ø™RØ¡ R©¨D¨6« OÓ!4ð!ó ð ™RØ¡ R©¨D¨6« OÓ!4Ø¡ R©¨D¨6« OÓ!4ð!ó ð ™RØ¡ R©¨D¨6« OÓ!4ð!ó ðó ðó ð'!ó !ð !r   )rÄ   r:  r¬   c                 ó   •—  | ‰d‰di«      S )Né   é   r   )ÚPr&   r)   s    €€r   Úbuild_providedzYBaseAdapterRegistryTests.test_subscribe_multiple_allRegistrations.<locals>.build_provided  s   ø€ ÙØ�QØ�Qðó ð r   )r?  r   c                 óD   — | �| n	t        «       } | j                  |«       | S r/   rÇ   rÈ   s     r   rË   zSBaseAdapterRegistryTests.test_subscribe_multiple_allRegistrations.<locals>.addValue(  rÌ   r   )r+   r€   r  r—   r°   rŠ   rŒ   r„   r·   r‡   rÍ   r   rJ   rÎ   rW   rÏ   rR   rÐ   rZ   rÑ   rÒ   rÓ   )r3   r   r    r#   r’   r;  r@  r¶   rÔ   rÕ   rË   r   r   r   r   r&   r)   s              @@@@@@r   Ú(test_subscribe_multiple_allRegistrationszABaseAdapterRegistryTests.test_subscribe_multiple_allRegistrationsÆ  sá  ý€ Ü6EÓ6GÑ3ˆˆS�#�s˜C  c¨3°Ø—=‘=“?ˆà×Ñ˜2˜s DÔ)Ø×Ñ˜2˜s DÔ)à×Ñ˜C˜5 # tÔ,Ø×Ñ˜C˜5 # tÔ,Ø×Ñ˜C˜5 # tÔ,Ø×Ñ˜C˜5 # tÔ,à×Ñ˜C ˜: s¨DÔ1Ø×Ñ˜C ˜: s¨DÔ1Ø×Ñ˜C ˜: s¨DÔ1Ø×Ñ˜C ˜: s¨DÔ1÷"	ñ "	ðH 	×Ñ˜×.Ñ.Ù*Ø#×7Ñ7Ó9Ø#×8Ñ8Ó:Ø $× 4Ñ 4Ó 6ôô	õ	ð 	×Ñ˜×+Ñ+Ù'¨$×*?Ñ*?Ó*AÔBô	Dô ˜H×5Ñ5Ó7Ó8ˆ
Ø×Ñ˜Ø��dˆOØ��dˆOØˆV�S˜$ÐØˆV�S˜$ÐØˆV�S˜$ÐØˆV�S˜$ÐØ�3ˆZ˜˜dÐ#Ø�3ˆZ˜˜dÐ#Ø�3ˆZ˜˜dÐ#Ø�3ˆZ˜˜dÐ#ð&
ô 	ð —M‘M“Oˆ	Øò 	'ˆDØˆI×Ñ Ò&ð	'ð 	×Ñ˜×/Ñ/°×1FÑ1FÔGØ×Ñ˜×,Ñ,¨h×.@Ñ.@ÔAô !.ˆÔÜ%7ˆÔ"Ü!/ˆÔÜ!/ˆÔò	ð $,ˆÔ à×ÑÔà×Ñ˜×.Ñ.Ù*Ü-Ü1Ü -ôõ	r   )r�   ).r
   r   r   ÚmaxDiffrb   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.  r0  r4  r7  rB  r   r   r   r\   r\   h   sè   „ à€Gò#òò$(òòòòòVò2ò
Iò2óIó	Pòò4còJ:ò)òò:)òEòFò
5òò,ò,Bò(òTKò5ò*
'ò25òh3ò23ò4)ò	?òFò
8òòò8ò@ò8óor   r\   c                   ó4   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	Ú#CustomTypesBaseAdapterRegistryTestszá
    This class may be extended by other packages to test their own
    adapter registries that use custom types. (So be cautious about
    breaking changes.)

    One known user is ``zope.component.persistentregistry``.
    c                 ó   — t         S r/   )rJ   r=   s    r   r„   z3CustomTypesBaseAdapterRegistryTests._getMappingTypeA  s   € ÜÐr   c                 ó   — t         S r/   )rZ   r=   s    r   r‡   z4CustomTypesBaseAdapterRegistryTests._getProvidedTypeD  ó   € ÜÐr   c                 ó   — t         S r/   )rR   r=   s    r   rŠ   z7CustomTypesBaseAdapterRegistryTests._getMutableListTypeG  rH  r   c                 ó   — t         S r/   )rW   r=   s    r   rŒ   z8CustomTypesBaseAdapterRegistryTests._getLeafSequenceTypeJ  s   € Ü!Ð!r   c                 ó2   ‡ ‡— ddl mŠ  G ˆˆ fd„d‰«      }|S )Nr   r^   c                   ó¦   •— e Zd ZW °j                  «       ZW °j                  «       ZW °j                  «       ZW °j                  «       Z
d„ Zˆ fd„Zy)úZCustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistry.<locals>.CustomAdapterRegistryc                 óL   — |s| j                  «       }|j                  |«       |S r/   )rÏ   rU   )r3   Úexisting_leaf_sequenceÚnew_items      r   rÒ   zjCustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistry.<locals>.CustomAdapterRegistry._addValueToLeafU  s(   € Ù-Ø-1×-CÑ-CÓ-EÐ*Ø&×-Ñ-¨hÔ7Ø-Ð-r   c                 óD   •— ‰j                  | ||«      }||d d  ||vsJ ‚|S r/   )Ú_removeValueFromLeaf)r3   rO  Ú	to_removeÚwithout_removedr_   s       €r   rR  zoCustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistry.<locals>.CustomAdapterRegistry._removeValueFromLeaf[  s>   ø€ Ø"5×"JÑ"JØØ*Øó#�ð -<Ð&¡qÐ)Ø Ð(>Ñ>Ð>Ð>Ø-Ð-r   N)r
   r   r   r„   rÎ   rŠ   rÐ   rŒ   rÏ   r‡   rÑ   rÒ   rR  )r_   r3   s   €€r   ÚCustomAdapterRegistryrM  O  sF   ø„ Ù×/Ñ/Ó1ˆLÙ ×4Ñ4Ó6ˆMÙ $× 9Ñ 9Ó ;ÐÙ ×1Ñ1Ó3ˆMò.õ.r   rU  r`   )r3   rU  r_   s   ` @r   rb   z;CustomTypesBaseAdapterRegistryTests._getBaseAdapterRegistryM  s   ù€ Ý>÷	.Ð$7ô 	.ð* %Ð$r   c                 ó(   — | j                  ||«       y r/   )rŽ   r	  s      r   r  z6CustomTypesBaseAdapterRegistryTests.assertLeafIdentityf  s   € Ø�‰�e˜UÕ#r   N)
r
   r   r   Ú__doc__r„   r‡   rŠ   rŒ   rb   r  r   r   r   rE  rE  8  s%   „ ñòòòò"ò%ó2$r   rE  c                   óÊ   ‡ — e Zd Zd„ ZeZ	 	 dd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZ S )ÚLookupBaseFallbackTestsc                 ó   — ddl m} |S )Nr   )ÚLookupBaseFallback)ra   r[  )r3   r[  s     r   Ú_getFallbackClassz)LookupBaseFallbackTests._getFallbackClassl  s   € Ý=Ø!Ð!r   c                 ón   ‡‡‡— ‰€d„ Š‰€d„ Š‰€d„ Š G ˆˆˆfd„d| j                  «       «      } |«       S )Nc                  ó   — y r/   r   ©r3   Úrequiredrr   r4   s       r   Ú	uc_lookupz3LookupBaseFallbackTests._makeOne.<locals>.uc_lookupv  ó   € Ør   c                 ó   — t        «       ‚r/   ©ÚNotImplementedError©r3   r`  rr   s      r   Úuc_lookupAllz6LookupBaseFallbackTests._makeOne.<locals>.uc_lookupAlly  ó   € Ü)Ó+Ð+r   c                 ó   — t        «       ‚r/   rd  rf  s      r   Úuc_subscriptionsz:LookupBaseFallbackTests._makeOne.<locals>.uc_subscriptions|  rh  r   c                   ó    •— e Zd ZW ° ZW °ZW °Zy)ú1LookupBaseFallbackTests._makeOne.<locals>.DerivedN)r
   r   r   Ú_uncached_lookupÚ_uncached_lookupAllÚ_uncached_subscriptions)ra  rg  rj  s   €€€r   ÚDerivedrl  ~  s   ø„ Ù(ÐÙ".ÐÙ&6Ñ#r   rp  r   )r3   ra  rg  rj  rp  s    ``` r   r€   z LookupBaseFallbackTests._makeOner  sJ   ú€ ð ÐòàÐò,àÐ#ò,÷	7ð 	7�d×*Ñ*Ó,ô 	7ñ ‹yÐr   c                 ó¸   — d„ }| j                  |¬«      }| j                  t        «      5  |j                  ddt	        «       «       d d d «       y # 1 sw Y   y xY w)Nc                 ó&   — | j                  d«       y ©NzThis should never be calledr2  r_  s       r   Ú_lookupzCLookupBaseFallbackTests.test_lookup_w_invalid_name.<locals>._lookup…  ó   € Ø�I‰IÐ3Õ4r   ©ra  ©ÚAÚB)r€   rÙ   rÚ   Úlookupr|   ©r3   rt  Úlbs      r   Útest_lookup_w_invalid_namez2LookupBaseFallbackTests.test_lookup_w_invalid_name„  sL   € ò	5à�]‰] Wˆ]Ó-ˆØ×ÑœzÓ*ñ 	-Ø�I‰I�f˜c¤6£8Ô,÷	-÷ 	-ñ 	-úó   «AÁAc                 ó¦   ‡— g Šˆfd„}| j                  |¬«      }|j                  ddd«      }| j                  |«       | j                  ‰dg«       y )Nc                 ó.   •— ‰j                  |||f«       y r/   ©rU   ©r3   r`  rr   r4   Ú_called_withs       €r   rt  zDLookupBaseFallbackTests.test_lookup_miss_no_default.<locals>._lookup�  ó   ø€ Ø×Ñ ¨8°TÐ :Õ;r   rv  rw  ry  ÚC©rw  ry  r…  )r€   rz  r  r—   ©r3   rt  r|  Úfoundrƒ  s       @r   Útest_lookup_miss_no_defaultz3LookupBaseFallbackTests.test_lookup_miss_no_default‹  sS   ø€ Øˆô	<ð �]‰] Wˆ]Ó-ˆØ—	‘	˜& # sÓ+ˆØ×Ñ˜%Ô Ø×Ñ˜Ð(:Ð';Õ<r   c                 ó¾   ‡— g Št        «       }ˆfd„}| j                  |¬«      }|j                  ddd|«      }| j                  ||«       | j	                  ‰dg«       y )Nc                 ó.   •— ‰j                  |||f«       y r/   r�  r‚  s       €r   rt  zCLookupBaseFallbackTests.test_lookup_miss_w_default.<locals>._lookup˜  r„  r   rv  rw  ry  r…  r†  ©r|   r€   rz  rŽ   r—   ©r3   Ú_defaultrt  r|  rˆ  rƒ  s        @r   Útest_lookup_miss_w_defaultz2LookupBaseFallbackTests.test_lookup_miss_w_default•  s\   ø€ ØˆÜ“8ˆô	<ð �]‰] Wˆ]Ó-ˆØ—	‘	˜& # s¨HÓ5ˆØ�‰�e˜XÔ&Ø×Ñ˜Ð(:Ð';Õ<r   c                 ó  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }| j                  ||«       | j	                  ‰dg«       | j	                  ‰||g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  ©rU   Úpop©r3   r`  rr   r4   rƒ  Ú_resultss       €€r   rt  z?LookupBaseFallbackTests.test_lookup_not_cached.<locals>._lookup¤  ó&   ø€ Ø×Ñ ¨8°TÐ :Ô;Ø—<‘< “?Ð"r   rv  rw  ry  r…  r†  rŒ  ©	r3   ÚaÚbÚcrt  r|  rˆ  rƒ  r•  s	          @@r   Útest_lookup_not_cachedz.LookupBaseFallbackTests.test_lookup_not_cached   s…   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—	‘	˜& # sÓ+ˆØ�‰�e˜QÔØ×Ñ˜Ð(:Ð';Ô<Ø×Ñ˜ A q 6Õ*r   c                 ó@  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }|j                  ddd«      }| j                  ||«       | j	                  ‰dg«       | j	                  ‰||g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  z;LookupBaseFallbackTests.test_lookup_cached.<locals>._lookup±  r–  r   rv  rw  ry  r…  r†  rŒ  r—  s	          @@r   Útest_lookup_cachedz*LookupBaseFallbackTests.test_lookup_cached­  s—   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—	‘	˜& # sÓ+ˆØ—	‘	˜& # sÓ+ˆØ�‰�e˜QÔØ×Ñ˜Ð(:Ð';Ô<Ø×Ñ˜ A q 6Õ*r   c                 ó  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }| j                  ||«       | j	                  ‰dg«       | j	                  ‰||g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  zNLookupBaseFallbackTests.test_lookup_not_cached_multi_required.<locals>._lookup¿  r–  r   rv  ©rx  ÚDry  r…  ©r¡  ry  r…  rŒ  r—  s	          @@r   Ú%test_lookup_not_cached_multi_requiredz=LookupBaseFallbackTests.test_lookup_not_cached_multi_required»  s…   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—	‘	˜* c¨3Ó/ˆØ�‰�e˜QÔØ×Ñ˜Ð(>Ð'?Ô@Ø×Ñ˜ A q 6Õ*r   c                 ó@  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }|j                  ddd«      }| j                  ||«       | j	                  ‰dg«       | j	                  ‰||g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  zJLookupBaseFallbackTests.test_lookup_cached_multi_required.<locals>._lookupÌ  r–  r   rv  r¡  ry  r…  r£  rŒ  r—  s	          @@r   Ú!test_lookup_cached_multi_requiredz9LookupBaseFallbackTests.test_lookup_cached_multi_requiredÈ  s—   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—	‘	˜* c¨3Ó/ˆØ—	‘	˜* c¨3Ó/ˆØ�‰�e˜QÔØ×Ñ˜Ð(>Ð'?Ô@Ø×Ñ˜ A q 6Õ*r   c                 ób  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }|j                  |«       |j                  ddd«      }| j	                  ||«       | j                  ‰ddg«       | j                  ‰|g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  zMLookupBaseFallbackTests.test_lookup_not_cached_after_changed.<locals>._lookupÚ  r–  r   rv  rw  ry  r…  r†  )r|   r€   rz  rn   rŽ   r—   r—  s	          @@r   Ú$test_lookup_not_cached_after_changedz<LookupBaseFallbackTests.test_lookup_not_cached_after_changedÖ  s¦   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—	‘	˜& # sÓ+ˆØ
�
‰
�2ŒØ—	‘	˜& # sÓ+ˆØ�‰�e˜QÔØ×Ñ˜Ø,Ð.@ÐAô	Cà×Ñ˜ A 3Õ'r   c                 ó¸   — d„ }| j                  |¬«      }| j                  t        «      5  |j                  ddt	        «       «       d d d «       y # 1 sw Y   y xY w)Nc                 ó&   — | j                  d«       y rs  r2  r_  s       r   rt  zDLookupBaseFallbackTests.test_lookup1_w_invalid_name.<locals>._lookupç  ru  r   rv  rx  ry  )r€   rÙ   rÚ   Úlookup1r|   r{  s      r   Útest_lookup1_w_invalid_namez3LookupBaseFallbackTests.test_lookup1_w_invalid_nameæ  sN   € ò	5ð �]‰] Wˆ]Ó-ˆØ×ÑœzÓ*ñ 	+Ø�J‰J�s˜C¤£Ô*÷	+÷ 	+ñ 	+úr~  c                 ó¦   ‡— g Šˆfd„}| j                  |¬«      }|j                  ddd«      }| j                  |«       | j                  ‰dg«       y )Nc                 ó.   •— ‰j                  |||f«       y r/   r�  r‚  s       €r   rt  zELookupBaseFallbackTests.test_lookup1_miss_no_default.<locals>._lookupð  r„  r   rv  rx  ry  r…  r†  )r€   r­  r  r—   r‡  s       @r   Útest_lookup1_miss_no_defaultz4LookupBaseFallbackTests.test_lookup1_miss_no_defaultî  sS   ø€ Øˆô	<ð �]‰] Wˆ]Ó-ˆØ—
‘
˜3  SÓ)ˆØ×Ñ˜%Ô Ø×Ñ˜Ð(:Ð';Õ<r   c                 ó¾   ‡— g Št        «       }ˆfd„}| j                  |¬«      }|j                  ddd|«      }| j                  ||«       | j	                  ‰dg«       y )Nc                 ó.   •— ‰j                  |||f«       y r/   r�  r‚  s       €r   rt  zDLookupBaseFallbackTests.test_lookup1_miss_w_default.<locals>._lookupû  r„  r   rv  rx  ry  r…  r†  ©r|   r€   r­  rŽ   r—   r�  s        @r   Útest_lookup1_miss_w_defaultz3LookupBaseFallbackTests.test_lookup1_miss_w_defaultø  s\   ø€ ØˆÜ“8ˆô	<ð �]‰] Wˆ]Ó-ˆØ—
‘
˜3  S¨(Ó3ˆØ�‰�e˜XÔ&Ø×Ñ˜Ð(:Ð';Õ<r   c                 ó
  ‡— g Št        «       }ˆfd„}| j                  |¬«      }|j                  ddd|«      }| j                  ||«       |j                  ddd|«      }| j                  ||«       | j	                  ‰dg«       y )Nc                 ó.   •— ‰j                  |||f«       y r/   r�  r‚  s       €r   rt  zSLookupBaseFallbackTests.test_lookup1_miss_w_default_negative_cache.<locals>._lookup  r„  r   rv  rx  ry  r…  r†  r´  r�  s        @r   Ú*test_lookup1_miss_w_default_negative_cachezBLookupBaseFallbackTests.test_lookup1_miss_w_default_negative_cache  s~   ø€ ØˆÜ“8ˆô	<ð �]‰] Wˆ]Ó-ˆØ—
‘
˜3  S¨(Ó3ˆØ�‰�e˜XÔ&Ø—
‘
˜3  S¨(Ó3ˆØ�‰�e˜XÔ&Ø×Ñ˜Ð(:Ð';Õ<r   c                 ó  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }| j                  ||«       | j	                  ‰dg«       | j	                  ‰||g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  z@LookupBaseFallbackTests.test_lookup1_not_cached.<locals>._lookup  r–  r   rv  rx  ry  r…  r†  r´  r—  s	          @@r   Útest_lookup1_not_cachedz/LookupBaseFallbackTests.test_lookup1_not_cached  s…   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—
‘
˜3  SÓ)ˆØ�‰�e˜QÔØ×Ñ˜Ð(:Ð';Ô<Ø×Ñ˜ A q 6Õ*r   c                 ó@  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }|j                  ddd«      }| j                  ||«       | j	                  ‰dg«       | j	                  ‰||g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  z<LookupBaseFallbackTests.test_lookup1_cached.<locals>._lookup!  r–  r   rv  rx  ry  r…  r†  r´  r—  s	          @@r   Útest_lookup1_cachedz+LookupBaseFallbackTests.test_lookup1_cached  s—   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—
‘
˜3  SÓ)ˆØ—
‘
˜3  SÓ)ˆØ�‰�e˜QÔØ×Ñ˜Ð(:Ð';Ô<Ø×Ñ˜ A q 6Õ*r   c                 ób  ‡‡— g Št        «       t        «       t        «       }}}|||gŠˆˆfd„}| j                  |¬«      }|j                  ddd«      }|j                  |«       |j                  ddd«      }| j	                  ||«       | j                  ‰ddg«       | j                  ‰|g«       y )Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  zNLookupBaseFallbackTests.test_lookup1_not_cached_after_changed.<locals>._lookup/  r–  r   rv  rx  ry  r…  r†  )r|   r€   r­  rn   rŽ   r—   r—  s	          @@r   Ú%test_lookup1_not_cached_after_changedz=LookupBaseFallbackTests.test_lookup1_not_cached_after_changed+  s¦   ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð �]‰] Wˆ]Ó-ˆØ—
‘
˜3  SÓ)ˆØ
�
‰
�2ŒØ—
‘
˜3  SÓ)ˆØ�‰�e˜QÔØ×Ñ˜Ø,Ð.@ÐAô	Cà×Ñ˜ A 3Õ'r   c                 óÖ   — t        «       t        «       }}| j                  «       }| j                  t        «      5  |j	                  ||t        «       «       d d d «       y # 1 sw Y   y xY wr/   )r|   r€   rÙ   rÚ   Úadapter_hook)r3   ÚreqÚprvr|  s       r   Ú test_adapter_hook_w_invalid_namez8LookupBaseFallbackTests.test_adapter_hook_w_invalid_name;  sO   € Ü“8œV›XˆSˆØ�]‰]‹_ˆØ×ÑœzÓ*ñ 	0Ø�O‰O˜C ¤f£hÔ/÷	0÷ 	0ñ 	0ús   ºAÁA(c                 ó”   — t        «       t        «       }}| j                  «       }|j                  ||d«      }| j                  |«       y rä   )r|   r€   rÃ  r  )r3   rÄ  rÅ  r|  rˆ  s        r   Ú!test_adapter_hook_miss_no_defaultz9LookupBaseFallbackTests.test_adapter_hook_miss_no_defaultA  s:   € Ü“8œV›XˆSˆØ�]‰]‹_ˆØ—‘  S¨"Ó-ˆØ×Ñ˜%Õ r   c                 ó¬   — t        «       t        «       t        «       }}}| j                  «       }|j                  ||d|«      }| j                  ||«       y rä   )r|   r€   rÃ  rŽ   )r3   rÄ  rÅ  rŽ  r|  rˆ  s         r   Ú test_adapter_hook_miss_w_defaultz8LookupBaseFallbackTests.test_adapter_hook_miss_w_defaultG  sB   € Ü#›X¤v£x´³�(ˆSˆØ�]‰]‹_ˆØ—‘  S¨"¨hÓ7ˆØ�‰�e˜XÕ&r   c                 óò   ‡‡— g Šˆfd„Šˆfd„}t        «       t        «       t        «       }}}| j                  |¬«      }|j                  ||d|«      }| j                  ||«       | j	                  ‰|g«       y )Nc                 ó(   •— ‰j                  | «       y r/   r�  ©ÚcontextÚ_f_called_withs    €r   Ú_factoryzTLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_None.<locals>._factoryO  s   ø€ Ø×!Ñ! 'Õ*r   c                 ó   •— ‰S r/   r   ©r3   r`  rr   r4   rÐ  s       €r   rt  zSLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_None.<locals>._lookupR  ó   ø€ ØˆOr   rv  r…  ©r|   r€   rÃ  rŽ   r—   )	r3   rt  rÄ  rÅ  rŽ  r|  ÚadaptedrÏ  rÐ  s	          @@r   Ú*test_adapter_hook_hit_factory_returns_NonezBLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_NoneM  si   ù€ Øˆô	+ô	ä#›X¤v£x´³�(ˆSˆØ�]‰] Wˆ]Ó-ˆØ—/‘/ # s¨C°Ó:ˆØ�‰�g˜xÔ(Ø×Ñ˜¨#¨Õ/r   c                 ó
  ‡‡‡	— g Št        «       Šˆˆfd„Š	ˆ	fd„}t        «       t        «       t        «       }}}| j                  |¬«      }|j                  ||d|«      }| j                  |‰«       | j	                  ‰|g«       y )Nc                 ó*   •— ‰j                  | «       ‰S r/   r�  ©rÎ  Ú_adapterrÏ  s    €€r   rÐ  zWLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_adapter.<locals>._factory]  ó   ø€ Ø×!Ñ! 'Ô*ØˆOr   c                 ó   •— ‰S r/   r   rÒ  s       €r   rt  zVLookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_adapter.<locals>._lookup`  rÓ  r   rv  r…  rÔ  ©
r3   rt  rÄ  rÅ  rŽ  r|  rÕ  rÚ  rÏ  rÐ  s
          @@@r   Ú-test_adapter_hook_hit_factory_returns_adapterzELookupBaseFallbackTests.test_adapter_hook_hit_factory_returns_adapterZ  óp   ú€ ØˆÜ“8ˆõ	ô	ä#›X¤v£x´³�(ˆSˆØ�]‰] Wˆ]Ó-ˆØ—/‘/ # s¨C°Ó:ˆØ�‰�g˜xÔ(Ø×Ñ˜¨#¨Õ/r   c                 óÞ   •‡‡— g Šˆfd„Šdˆfd„	}t        «       }t        «       }| j                  |¬«      }|j                  ||«      }| j	                  || «       | j                  ‰| g«       y )Nc                 ó*   •— ‰j                  | «       | S r/   r�  rÍ  s    €r   rÐ  zILookupBaseFallbackTests.test_adapter_hook_super_unwraps.<locals>._factoryj  s   ø€ Ø×!Ñ! 'Ô*ØˆNr   c                 ó   •— ‰S r/   r   rÒ  s       €r   rt  zHLookupBaseFallbackTests.test_adapter_hook_super_unwraps.<locals>._lookupm  rÓ  r   rv  )r³   )Úsuperr|   r€   rÃ  rŽ   r—   )	r3   rt  r`  rr   r|  rÕ  rÏ  rÐ  Ú	__class__s	         @@€r   Útest_adapter_hook_super_unwrapsz7LookupBaseFallbackTests.test_adapter_hook_super_unwrapsh  s`   ú€ Øˆô	õ	ä“7ˆÜ“8ˆØ�]‰] Wˆ]Ó-ˆØ—/‘/ (¨HÓ5ˆØ�‰�g˜tÔ$Ø×Ñ˜¨$¨Õ0r   c                 ó
  ‡‡‡	— g Št        «       Šˆˆfd„Š	ˆ	fd„}t        «       t        «       t        «       }}}| j                  |¬«      }|j                  ||d|«      }| j                  |‰«       | j	                  ‰|g«       y )Nc                 ó*   •— ‰j                  | «       ‰S r/   r�  rÙ  s    €€r   rÐ  z;LookupBaseFallbackTests.test_queryAdapter.<locals>._factoryy  rÛ  r   c                 ó   •— ‰S r/   r   rÒ  s       €r   rt  z:LookupBaseFallbackTests.test_queryAdapter.<locals>._lookup|  rÓ  r   rv  r…  )r|   r€   ÚqueryAdapterrŽ   r—   rÝ  s
          @@@r   Útest_queryAdapterz)LookupBaseFallbackTests.test_queryAdapterv  rß  r   c                 óö   ‡‡— g Št        «       t        «       t        «       gŠˆˆfd„}| j                  |¬«      }|j                  dd«      }| j                  |t	        ‰«      «       | j                  ‰dg«       y )Nc                 ó@   •— ‰j                  ||f«       t        ‰«      S r/   ©rU   ru   ©r3   r`  rr   rƒ  r•  s      €€r   Ú
_lookupAllzCLookupBaseFallbackTests.test_lookupAll_uncached.<locals>._lookupAll‡  ó    ø€ Ø×Ñ ¨8Ð 4Ô5Ü˜“?Ð"r   ©rg  rx  ry  ©rw  ry  ©r|   r€   Ú	lookupAllr—   ru   ©r3   rï  r|  rˆ  rƒ  r•  s       @@r   Útest_lookupAll_uncachedz/LookupBaseFallbackTests.test_lookupAll_uncached„  sg   ù€ ØˆÜ“Hœf›h¬«Ð1ˆõ	#ð �]‰]¨
ˆ]Ó3ˆØ—‘˜S #Ó&ˆØ×Ñ˜¤ h£Ô0Ø×Ñ˜¨ Õ7r   c                 ó  ‡‡— g Št        «       t        «       t        «       gŠˆˆfd„}| j                  |¬«      }|j                  dd«      }|j                  dd«      }| j                  |t	        ‰«      «       | j                  ‰dg«       y )Nc                 ó@   •— ‰j                  ||f«       t        ‰«      S r/   rí  rî  s      €€r   rï  zALookupBaseFallbackTests.test_lookupAll_cached.<locals>._lookupAll’  rð  r   rñ  rx  ry  rò  ró  rõ  s       @@r   Útest_lookupAll_cachedz-LookupBaseFallbackTests.test_lookupAll_cached�  sw   ù€ ØˆÜ“Hœf›h¬«Ð1ˆõ	#ð �]‰]¨
ˆ]Ó3ˆØ—‘˜S #Ó&ˆØ—‘˜S #Ó&ˆØ×Ñ˜¤ h£Ô0Ø×Ñ˜¨ Õ7r   c                 óö   ‡‡— g Št        «       t        «       t        «       gŠˆˆfd„}| j                  |¬«      }|j                  dd«      }| j                  |t	        ‰«      «       | j                  ‰dg«       y )Nc                 ó@   •— ‰j                  ||f«       t        ‰«      S r/   rí  rî  s      €€r   Ú_subscriptionszKLookupBaseFallbackTests.test_subscriptions_uncached.<locals>._subscriptionsž  rð  r   ©rj  rx  ry  rò  ©r|   r€   Úsubscriptionsr—   ru   ©r3   rü  r|  rˆ  rƒ  r•  s       @@r   Útest_subscriptions_uncachedz3LookupBaseFallbackTests.test_subscriptions_uncached›  si   ù€ ØˆÜ“Hœf›h¬«Ð1ˆõ	#ð �]‰]¨Nˆ]Ó;ˆØ× Ñ   cÓ*ˆØ×Ñ˜¤ h£Ô0Ø×Ñ˜¨ Õ7r   c                 ó  ‡‡— g Št        «       t        «       t        «       gŠˆˆfd„}| j                  |¬«      }|j                  dd«      }|j                  dd«      }| j                  |t	        ‰«      «       | j                  ‰dg«       y )Nc                 ó@   •— ‰j                  ||f«       t        ‰«      S r/   rí  rî  s      €€r   rü  zILookupBaseFallbackTests.test_subscriptions_cached.<locals>._subscriptions©  rð  r   rý  rx  ry  rò  rþ  r   s       @@r   Útest_subscriptions_cachedz1LookupBaseFallbackTests.test_subscriptions_cached¦  s{   ù€ ØˆÜ“Hœf›h¬«Ð1ˆõ	#ð �]‰]¨Nˆ]Ó;ˆØ× Ñ   cÓ*ˆØ× Ñ   cÓ*ˆØ×Ñ˜¤ h£Ô0Ø×Ñ˜¨ Õ7r   ©NNN)!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  Ú__classcell__©rä  s   @r   rY  rY  j  sœ   ø„ ò"ð (€Oà48Ø"&óò$-ò=ò	=ò+ò+ò+ò+ò(ò +ò=ò	=ò=ò+ò+ò(ò 0ò!ò'ò0ò0ô1ò0ò	8ò
8ò	8ö
8r   rY  c                   ó   — e Zd Zd„ Zy)ÚLookupBaseTestsc                 ó   — ddl m} |S )Nr   )Ú
LookupBase)ra   r  )r3   r  s     r   r}   zLookupBaseTests._getTargetClass¶  s   € Ý5ØÐr   N©r
   r   r   r}   r   r   r   r	  r	  ³  s   „ ór   r	  c                   óL   — e Zd Zd„ ZeZ	 	 dd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚVerifyingBaseFallbackTestsc                 ó   — ddl m} |S )Nr   )ÚVerifyingBaseFallback)ra   r  )r3   r  s     r   r\  z,VerifyingBaseFallbackTests._getFallbackClass½  s   € Ý@Ø$Ð$r   Nc                 ó–   ‡‡‡— ‰€d„ Š‰€d„ Š‰€d„ Š G ˆˆˆfd„d| j                  «       «      } ||«      }|j                  |«       |S )Nc                 ó   — t        «       ‚r/   rd  r_  s       r   ra  z6VerifyingBaseFallbackTests._makeOne.<locals>.uc_lookupÇ  rh  r   c                 ó   — t        «       ‚r/   rd  rf  s      r   rg  z9VerifyingBaseFallbackTests._makeOne.<locals>.uc_lookupAllÊ  rh  r   c                 ó   — t        «       ‚r/   rd  rf  s      r   rj  z=VerifyingBaseFallbackTests._makeOne.<locals>.uc_subscriptionsÍ  rh  r   c                   ó2   •‡ — e Zd ZW °ZW °ZW °Zˆ fd„Zˆ xZS )ú4VerifyingBaseFallbackTests._makeOne.<locals>.Derivedc                 ó0   •— t         ‰| �  «        || _        y r/   )rã  rO   Ú	_registry)r3   r’   rä  s     €r   rO   z=VerifyingBaseFallbackTests._makeOne.<locals>.Derived.__init__Ó  s   ø€ Ü‘Ñ Ô"Ø!)�•r   )r
   r   r   rm  rn  ro  rO   r  )rä  ra  rg  rj  s   @€€€r   rp  r  Ï  s   ù„ Ù(ÐÙ".ÐÙ&6Ð#÷*ð *r   rp  )r}   rn   )r3   r’   ra  rg  rj  rp  Úderiveds     ```  r   r€   z#VerifyingBaseFallbackTests._makeOneÃ  s]   ú€ ð Ðò,àÐò,àÐ#ò,÷	*ð 	*�d×*Ñ*Ó,ô 	*ñ ˜(Ó#ˆØ�‰˜Ô Øˆr   c                 ó@   ‡—  G d„ d«      Š G ˆfd„d«      } ||«      S )Nc                   ó   — e Zd ZdZy)ú@VerifyingBaseFallbackTests._makeRegistry.<locals>.WithGenerationr–   N)r
   r   r   r˜   r   r   r   ÚWithGenerationr  Û  s   „ Ø‰Kr   r  c                   ó   •— e Zd Zˆ fd„Zy)ú:VerifyingBaseFallbackTests._makeRegistry.<locals>.Registryc                 óV   •— t        |«      D �cg c]	  } ‰«       ‘Œ c}| _        y c c}w r/   )ÚrangeÚro)r3   ÚdepthÚir  s      €r   rO   zCVerifyingBaseFallbackTests._makeRegistry.<locals>.Registry.__init__Þ  s   ø€ Ü5:¸5³\ÖB°™>Õ+ÒB�•ùÒBs   �&NrP   )r  s   €r   ÚRegistryr  Ý  s	   ø„ õCr   r%  r   )r3   r#  r%  r  s      @r   Ú_makeRegistryz(VerifyingBaseFallbackTests._makeRegistryÚ  s%   ø€ ÷	ñ 	÷	Có 	Cñ ˜‹Ðr   c                 ó@  ‡‡	— g Št        «       t        «       t        «       }}}|||gŠ	ˆˆ	fd„}| j                  d«      }| j                  ||¬«      }|j                  ddd«      }|j                  ddd«      }| j	                  ||«       | j                  ‰dg«       | j                  ‰	||g«       |j                  d   xj                  dz  c_        |j                  ddd«      }| j	                  ||«       | j                  ‰ddg«       | j                  ‰	|g«       y )	Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  z7VerifyingBaseFallbackTests.test_lookup.<locals>._lookupæ  r–  r   rú   rv  rw  ry  r…  r†  r–   )r|   r&  r€   rz  rŽ   r—   r"  r˜   ©
r3   r˜  r™  rš  rt  ri   r|  rˆ  rƒ  r•  s
           @@r   Útest_lookupz&VerifyingBaseFallbackTests.test_lookupâ  s  ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð × Ñ  Ó#ˆØ�]‰]˜3¨'ˆ]Ó2ˆØ—	‘	˜& # sÓ+ˆØ—	‘	˜& # sÓ+ˆØ�‰�e˜QÔØ×Ñ˜Ð(:Ð';Ô<Ø×Ñ˜ A q 6Ô*Ø�‰ˆq‰	×Ò Ñ"ÕØ—	‘	˜& # sÓ+ˆØ�‰�e˜QÔØ×Ñ˜Ø,Ð.@ÐAô	Cà×Ñ˜ A 3Õ'r   c                 ó@  ‡‡	— g Št        «       t        «       t        «       }}}|||gŠ	ˆˆ	fd„}| j                  d«      }| j                  ||¬«      }|j                  ddd«      }|j                  ddd«      }| j	                  ||«       | j                  ‰dg«       | j                  ‰	||g«       |j                  d   xj                  dz  c_        |j                  ddd«      }| j	                  ||«       | j                  ‰ddg«       | j                  ‰	|g«       y )	Nc                 óN   •— ‰j                  |||f«       ‰j                  d«      S r6  r’  r”  s       €€r   rt  z8VerifyingBaseFallbackTests.test_lookup1.<locals>._lookupû  r–  r   rú   rv  rx  ry  r…  r†  r–   )r|   r&  r€   r­  rŽ   r—   r"  r˜   r)  s
           @@r   Útest_lookup1z'VerifyingBaseFallbackTests.test_lookup1÷  s  ù€ ØˆÜ“(œF›H¤f£hˆaˆ1ˆØ�q˜!�9ˆõ	#ð × Ñ  Ó#ˆØ�]‰]˜3¨'ˆ]Ó2ˆØ—
‘
˜3  SÓ)ˆØ—
‘
˜3  SÓ)ˆØ�‰�e˜QÔØ×Ñ˜Ð(:Ð';Ô<Ø×Ñ˜ A q 6Ô*Ø�‰ˆq‰	×Ò Ñ"ÕØ—
‘
˜3  SÓ)ˆØ�‰�e˜QÔØ×Ñ˜Ø,Ð.@ÐAô	Cà×Ñ˜ A 3Õ'r   c                 ó,  ‡ ‡‡‡— t        «       t        «       t        «       g\  ŠŠ}ˆfd„}ˆfd„}ˆ fd„}|||gŠˆfd„}t        «       t        «       t        «       }}}‰ j                  d«      }	‰ j                  |	|¬«      }
|
j                  ||d|«      }‰ j	                  |‰«       |
j                  ||d|«      }‰ j	                  |‰«       |	j
                  d   xj                  dz  c_        |
j                  ||d|«      }‰ j	                  |‰«       y )	Nc                 ó   •— ‰S r/   r   ©rÎ  r˜  s    €r   Ú	_factory1z?VerifyingBaseFallbackTests.test_adapter_hook.<locals>._factory1  ó   ø€ ØˆHr   c                 ó   •— ‰S r/   r   ©rÎ  r™  s    €r   Ú	_factory2z?VerifyingBaseFallbackTests.test_adapter_hook.<locals>._factory2  r2  r   c                 ó(   •— ‰j                  d«       y rs  r2  ©rÎ  r3   s    €r   Ú	_factory3z?VerifyingBaseFallbackTests.test_adapter_hook.<locals>._factory3  ó   ø€ Ø�I‰IÐ3Õ4r   c                 ó&   •— ‰j                  d«      S r6  ©r“  ©r3   r`  rr   r4   Ú
_factoriess       €r   rt  z=VerifyingBaseFallbackTests.test_adapter_hook.<locals>._lookup  ó   ø€ Ø—>‘> !Ó$Ð$r   rú   rv  r…  r–   )r|   r&  r€   rÃ  rŽ   r"  r˜   ©r3   Ú_cr1  r5  r8  rt  rÄ  rÅ  rŽ  ri   r|  rÕ  r=  r˜  r™  s   `           @@@r   Útest_adapter_hookz,VerifyingBaseFallbackTests.test_adapter_hook  óï   û€ Ü“Hœf›h¬«Ð1‰ˆˆ1ˆbô	ô	ô	5à ¨IÐ6ˆ
ô	%ä#›X¤v£x´³�(ˆSˆØ× Ñ  Ó#ˆØ�]‰]˜3¨'ˆ]Ó2ˆØ—/‘/ # s¨C°Ó:ˆØ�‰�g˜qÔ!Ø—/‘/ # s¨C°Ó:ˆØ�‰�g˜qÔ!Ø�‰ˆq‰	×Ò Ñ"ÕØ—/‘/ # s¨C°Ó:ˆØ�‰�g˜qÕ!r   c                 ó,  ‡ ‡‡‡— t        «       t        «       t        «       g\  ŠŠ}ˆfd„}ˆfd„}ˆ fd„}|||gŠˆfd„}t        «       t        «       t        «       }}}‰ j                  d«      }	‰ j                  |	|¬«      }
|
j                  ||d|«      }‰ j	                  |‰«       |
j                  ||d|«      }‰ j	                  |‰«       |	j
                  d   xj                  dz  c_        |
j                  ||d|«      }‰ j	                  |‰«       y )	Nc                 ó   •— ‰S r/   r   r0  s    €r   r1  z?VerifyingBaseFallbackTests.test_queryAdapter.<locals>._factory1$  r2  r   c                 ó   •— ‰S r/   r   r4  s    €r   r5  z?VerifyingBaseFallbackTests.test_queryAdapter.<locals>._factory2&  r2  r   c                 ó(   •— ‰j                  d«       y rs  r2  r7  s    €r   r8  z?VerifyingBaseFallbackTests.test_queryAdapter.<locals>._factory3(  r9  r   c                 ó&   •— ‰j                  d«      S r6  r;  r<  s       €r   rt  z=VerifyingBaseFallbackTests.test_queryAdapter.<locals>._lookup+  r>  r   rú   rv  r…  r–   )r|   r&  r€   ré  rŽ   r"  r˜   rÃ  r?  s   `           @@@r   rê  z,VerifyingBaseFallbackTests.test_queryAdapter"  rB  r   c                 ó&  ‡— t        «       t        «       t        «       g}t        «       t        «       t        «       g}||gŠˆfd„}| j                  d«      }| j                  ||¬«      }|j                  dd«      }| j	                  |t        |«      «       |j                  dd«      }| j	                  |t        |«      «       |j                  d   xj                  dz  c_        |j                  dd«      }| j	                  |t        |«      «       y )Nc                 ó8   •— t        ‰j                  d«      «      S r6  ©ru   r“  ©r3   r`  rr   r•  s      €r   rï  z=VerifyingBaseFallbackTests.test_lookupAll.<locals>._lookupAll<  ó   ø€ Ü˜Ÿ™ a›Ó)Ð)r   rú   rñ  rx  ry  r–   )r|   r&  r€   rô  r—   ru   r"  r˜   )r3   Ú
_results_1Ú
_results_2rï  ri   r|  rˆ  r•  s          @r   Útest_lookupAllz)VerifyingBaseFallbackTests.test_lookupAll8  sà   ø€ Ü“h¤£¬&«(Ð3ˆ
Ü“h¤£¬&«(Ð3ˆ
Ø 
Ð+ˆô	*à× Ñ  Ó#ˆØ�]‰]˜3¨Zˆ]Ó8ˆØ—‘˜S #Ó&ˆØ×Ñ˜¤ jÓ 1Ô2Ø—‘˜S #Ó&ˆØ×Ñ˜¤ jÓ 1Ô2Ø�‰ˆq‰	×Ò Ñ"ÕØ—‘˜S #Ó&ˆØ×Ñ˜¤ jÓ 1Õ2r   c                 ó&  ‡— t        «       t        «       t        «       g}t        «       t        «       t        «       g}||gŠˆfd„}| j                  d«      }| j                  ||¬«      }|j                  dd«      }| j	                  |t        |«      «       |j                  dd«      }| j	                  |t        |«      «       |j                  d   xj                  dz  c_        |j                  dd«      }| j	                  |t        |«      «       y )Nc                 ó8   •— t        ‰j                  d«      «      S r6  rJ  rK  s      €r   rü  zEVerifyingBaseFallbackTests.test_subscriptions.<locals>._subscriptionsL  rL  r   rú   rý  rx  ry  r–   )r|   r&  r€   rÿ  r—   ru   r"  r˜   )r3   rM  rN  rü  ri   r|  rˆ  r•  s          @r   Útest_subscriptionsz-VerifyingBaseFallbackTests.test_subscriptionsH  sæ   ø€ Ü“h¤£¬&«(Ð3ˆ
Ü“h¤£¬&«(Ð3ˆ
Ø 
Ð+ˆô	*à× Ñ  Ó#ˆØ�]‰]˜3°ˆ]Ó@ˆØ× Ñ   cÓ*ˆØ×Ñ˜¤ jÓ 1Ô2Ø× Ñ   cÓ*ˆØ×Ñ˜¤ jÓ 1Ô2Ø�‰ˆq‰	×Ò Ñ"ÕØ× Ñ   cÓ*ˆØ×Ñ˜¤ jÓ 1Õ2r   r  )r
   r   r   r\  r}   r€   r&  r*  r-  rA  rê  rO  rR  r   r   r   r  r  »  s<   „ ò%ð (€Oà>BØ"&óò.ò(ò*(ò*"ò,"ò,3ó 3r   r  c                   ó   — e Zd Zd„ Zy)ÚVerifyingBaseTestsc                 ó   — ddl m} |S )Nr   )ÚVerifyingBase)ra   rV  )r3   rV  s     r   r}   z"VerifyingBaseTests._getTargetClass\  s   € Ý8ØÐr   Nr  r   r   r   rT  rT  Y  s   „ ór   rT  c                   óö   ‡ — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'ˆ xZ(S )&ÚAdapterLookupBaseTestsc                 ó   — ddl m} |S )Nr   )ÚAdapterLookupBase)ra   rZ  )r3   rZ  s     r   r}   z&AdapterLookupBaseTests._getTargetClassc  s   € Ý<Ø Ð r   c                 ó.   —  | j                  «       |«      S r/   r   r™   s     r   r€   zAdapterLookupBaseTests._makeOneg  s   € Ø%ˆt×#Ñ#Ó% hÓ/Ð/r   c                 ó$   —  G d„ d«      } |«       S )Nc                   ó   — e Zd Zd„ Zy)ú<AdapterLookupBaseTests._makeSubregistry.<locals>.Subregistryc                 ó    — g | _         g | _        y r/   )r¨   r°   r=   s    r   rO   zEAdapterLookupBaseTests._makeSubregistry.<locals>.Subregistry.__init__l  s   € Ø!#�”Ø$&�Õ!r   NrP   r   r   r   ÚSubregistryr^  k  s   „ ó'r   r`  r   )r3   rr   r`  s      r   Ú_makeSubregistryz'AdapterLookupBaseTests._makeSubregistryj  s   € ÷	'ñ 	'ñ ‹}Ðr   c                 ó&   —  G d„ d«      } ||«      S )Nc                   ó   — e Zd Zd„ Zy)ú6AdapterLookupBaseTests._makeRegistry.<locals>.Registryc                 ó    — || _         g | _        y r/   )r·   r"  rq   s     r   rO   z?AdapterLookupBaseTests._makeRegistry.<locals>.Registry.__init__s  s   € Ø!)�”Ø�•r   NrP   r   r   r   r%  rd  r  s   „ ór   r%  r   )r3   rr   r%  s      r   r&  z$AdapterLookupBaseTests._makeRegistryq  s   € ÷	ñ 	ñ ˜Ó!Ð!r   c                 ó~   — | j                  «       }| j                  |«      }| j                  |j                  i «       y r/   )r&  r€   r—   rp   )r3   r’   Úalbs      r   Útest_ctor_empty_registryz/AdapterLookupBaseTests.test_ctor_empty_registryx  s2   € Ø×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ×Ñ˜Ÿ™¨Õ,r   c                 óì  — ddl m} ddlm}  |d«      } |d|f«      }| j	                  ||«      }| j                  |«      }| j                  t        |j                  j                  «       «      t        |||g«      «       | j                  |j                  |   ||g«       | j                  |j                  |   |g«       | j                  t        |j                  |   «      t        ||g«      «       y ©Nr   r   ©ÚInterfaceClassÚIFooÚIBar)
r*   r   Úzope.interface.interfacerl  r&  r€   r—   rÍ   rp   Úkeys©r3   r   rl  rm  rn  r’   rg  s          r   Útest_ctor_w_registry_providedz4AdapterLookupBaseTests.test_ctor_w_registry_provided}  sÓ   € Ý,Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ�m‰m˜HÓ%ˆØ×Ñœ §¡× 3Ñ 3Ó 5Ó6Ü  t¨YÐ 7Ó8ô	:à×Ñ˜Ÿ™¨Ñ-°°d¨|Ô<Ø×Ñ˜Ÿ™¨Ñ-°¨vÔ6Ø×Ñœ §¡¨yÑ 9Ó:Ü  t Ó-õ	/r   c                 óž   —  G d„ d«      } G d„ d| j                  «       |«      }| j                  «       } ||«      }|j                  |«       y )Nc                   ó   — e Zd Zd„ Zy)úAAdapterLookupBaseTests.test_changed_empty_required.<locals>.Mixinc                  ó   — y r/   r   rC   s     r   rn   zIAdapterLookupBaseTests.test_changed_empty_required.<locals>.Mixin.changedŽ  rb  r   N©r
   r   r   rn   r   r   r   ÚMixinru  �  ó   „ ór   rx  c                   ó   — e Zd Zy)úCAdapterLookupBaseTests.test_changed_empty_required.<locals>.DerivedNr	   r   r   r   rp  r{  �  r£   r   rp  )r}   r&  rn   )r3   rx  rp  r’   rg  s        r   Útest_changed_empty_requiredz2AdapterLookupBaseTests.test_changed_empty_required‹  sG   € ÷	ñ 	ô	�d×*Ñ*Ó,¨eô 	à×%Ñ%Ó'ˆÙ�hÓˆØ�‰�CÕr   c                 óÈ  —  G d„ d«      } G d„ d| j                  «       |«      } G d„ d«      } |d«      } |d«      }| j                  «       } ||«      }d	|j                  |<   d	|j                  |<   |j                  |«       | j	                  t        |j                  «      d
«       | j	                  |j                  d «       | j	                  |j                  |«       y )Nc                   ó   — e Zd Zd„ Zy)ú=AdapterLookupBaseTests.test_changed_w_required.<locals>.Mixinc                  ó   — y r/   r   rC   s     r   rn   zEAdapterLookupBaseTests.test_changed_w_required.<locals>.Mixin.changed™  rb  r   Nrw  r   r   r   rx  r  ˜  ry  r   rx  c                   ó   — e Zd Zy)ú?AdapterLookupBaseTests.test_changed_w_required.<locals>.DerivedNr	   r   r   r   rp  r‚  ›  r£   r   rp  c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)úCAdapterLookupBaseTests.test_changed_w_required.<locals>.FauxWeakrefNc                 ó   — || _         y r/   ©Ú_here)r3   Úheres     r   rO   zLAdapterLookupBaseTests.test_changed_w_required.<locals>.FauxWeakref.__init__Ÿ  s	   € Ø!�•
r   c                 ó"   — | j                   r| S d S r/   r†  r=   s    r   Ú__call__zLAdapterLookupBaseTests.test_changed_w_required.<locals>.FauxWeakref.__call__¡  s   € Ø#Ÿzšz�tÐ3¨tÐ3r   c                 ó   — || _         y r/   )Ú_unsub)r3   Útargets     r   r  zOAdapterLookupBaseTests.test_changed_w_required.<locals>.FauxWeakref.unsubscribe£  s	   € Ø$�•r   )r
   r   r   rŒ  rO   rŠ  r  r   r   r   ÚFauxWeakrefr„  �  s   „ ØˆFò"ò4ó%r   rŽ  FTr–   r   )r}   r&  Ú	_requiredrn   r—   r<   rŒ  )r3   rx  rp  rŽ  Úgonerˆ  r’   rg  s           r   Útest_changed_w_requiredz.AdapterLookupBaseTests.test_changed_w_required–  sÄ   € ÷	ñ 	ô	�d×*Ñ*Ó,¨eô 	÷	%ñ 	%ñ ˜5Ó!ˆÙ˜4Ó ˆØ×%Ñ%Ó'ˆÙ�hÓˆØˆ�‰�dÑØˆ�‰�dÑØ�‰�CÔØ×Ñœ˜SŸ]™]Ó+¨QÔ/Ø×Ñ˜Ÿ™ dÔ+Ø×Ñ˜Ÿ™ cÕ*r   c                 ó  — ddl m} ddlm}  |d«      } |d|f«      }| j	                  «       }| j                  |«      }||g|_        |j                  «        | j                  t        |j                  j                  «       «      t        |||g«      «       | j                  |j                  |   ||g«       | j                  |j                  |   |g«       | j                  t        |j                  |   «      t        ||g«      «       y rj  )r*   r   ro  rl  r&  r€   r·   Úinit_extendorsr—   rÍ   rp   rp  rq  s          r   Ú)test_init_extendors_after_registry_updatez@AdapterLookupBaseTests.test_init_extendors_after_registry_update°  sç   € Ý,Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ" D˜\ˆÔØ×ÑÔØ×Ñœ §¡× 3Ñ 3Ó 5Ó6Ü  t¨YÐ 7Ó8ô	:à×Ñ˜Ÿ™¨Ñ-°°d¨|Ô<Ø×Ñ˜Ÿ™¨Ñ-°¨vÔ6Ø×Ñœ §¡¨yÑ 9Ó:Ü  t Ó-õ	/r   c                 ó,  — ddl m} ddlm}  |d«      } |d|f«      }| j	                  «       }| j                  |«      }|j                  |«       |j                  |«       | j                  t        |j                  j                  «       «      t        |||g«      «       | j                  |j                  |   ||g«       | j                  |j                  |   |g«       | j                  t        |j                  |   «      t        ||g«      «       y rj  )r*   r   ro  rl  r&  r€   rs   r—   rÍ   rp   rp  rq  s          r   Útest_add_extendorz(AdapterLookupBaseTests.test_add_extendorÀ  së   € Ý,Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ×Ñ˜ÔØ×Ñ˜ÔØ×Ñœ §¡× 3Ñ 3Ó 5Ó6Ü  t¨YÐ 7Ó8ô	:à×Ñ˜Ÿ™¨Ñ-°°d¨|Ô<Ø×Ñ˜Ÿ™¨Ñ-°¨vÔ6Ø×Ñœ §¡¨yÑ 9Ó:Ü  t Ó-õ	/r   c                 ó
  — ddl m} ddlm}  |d«      } |d|f«      }| j	                  ||«      }| j                  |«      }|j                  |«       | j                  t        |j                  j                  «       «      t        |||g«      «       | j                  |j                  |   |g«       | j                  |j                  |   |g«       | j                  t        |j                  |   «      t        |g«      «       y rj  )r*   r   ro  rl  r&  r€   rw   r—   rÍ   rp   rp  rq  s          r   Útest_remove_extendorz+AdapterLookupBaseTests.test_remove_extendorÐ  sÜ   € Ý,Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ�m‰m˜HÓ%ˆØ×Ñ˜DÔ!Ø×Ñœ §¡× 3Ñ 3Ó 5Ó6Ü  t¨YÐ 7Ó8ô	:à×Ñ˜Ÿ™¨Ñ-°¨vÔ6Ø×Ñ˜Ÿ™¨Ñ-°¨vÔ6Ø×Ñœ §¡¨yÑ 9Ó:Ü  ›õ	)r   c                 ó^  — ddl m}  |d«      } |d|f«      }| j                  «       }| j                  |«      }|j	                  |f|«      }| j                  |d «       | j                  t        |j                  «      d«       | j                  |j                  «       |j                  «       y ©Nr   rk  rm  rn  r–   )
ro  rl  r&  r€   rm  r—   r<   r�  rü   Úweakref©r3   rl  rm  rn  r’   rg  Úresults          r   Útest__uncached_lookup_empty_roz5AdapterLookupBaseTests.test__uncached_lookup_empty_roá  sŽ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ×%Ñ% t g¨tÓ4ˆØ×Ñ˜ Ô&Ø×Ñœ˜SŸ]™]Ó+¨QÔ/Ø�‰�d—l‘l“n c§m¡mÕ4r   c                 ó  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }|j                  j                  |«       | j                  |«      }|j                  |f|«      }| j                  |d «       y ©Nr   rk  rm  rn  )	ro  rl  r&  ra  r"  rU   r€   rm  r—   ©r3   rl  rm  rn  r’   Úsubrrg  r�  s           r   Ú test__uncached_lookup_order_missz7AdapterLookupBaseTests.test__uncached_lookup_order_missì  s�   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆØ�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×%Ñ% t g¨tÓ4ˆØ×Ñ˜ Õ&r   c                 ó6  — ddl m}  |d«      } |d|f«      }| j                  «       }| j                  «       }i i g|_        |j
                  j                  |«       | j                  |«      }||_        |j                  |f|«      }| j                  |d «       y r   )ro  rl  r&  ra  r¨   r"  rU   r€   r�   rm  r—   r¡  s           r   Ú$test__uncached_lookup_extendors_missz;AdapterLookupBaseTests.test__uncached_lookup_extendors_miss÷  s�   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ×$Ñ$Ó&ˆØ˜b˜ˆŒØ�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×%Ñ% t g¨tÓ4ˆØ×Ñ˜ Õ&r   c                 ój  — ddl m}  |d«      } |d|f«      } |d«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }	| j                  |	d «       y ©Nr   rk  rm  rn  ÚIQuxr³   ©ro  rl  r&  ra  r|   r¨   r"  rU   r€   r�   rm  r—   ©
r3   rl  rm  rn  r¨  r’   r¢  Ú
irrelevantrg  r�  s
             r   Ú1test__uncached_lookup_components_miss_wrong_ifacezHAdapterLookupBaseTests.test__uncached_lookup_components_miss_wrong_iface  s½   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ˜fÓ%ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Xˆ
àØ�D˜2˜zÐ*ð ð ð
ˆŒð
 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×%Ñ% t g¨tÓ4ˆØ×Ñ˜ Õ&r   c                 óZ  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }| j                  |d «       y ©Nr   rk  rm  rn  Ú	wrongnamer©  ©	r3   rl  rm  rn  r’   r¢  r¯  rg  r�  s	            r   Ú0test__uncached_lookup_components_miss_wrong_namezGAdapterLookupBaseTests.test__uncached_lookup_components_miss_wrong_name  s³   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆä“Hˆ	àØ�D˜;¨	Ð2ð ð ð
ˆŒð
 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×%Ñ% t g¨tÓ4ˆØ×Ñ˜ Õ&r   c                 óZ  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }| j                  ||«       y ©Nr   rk  rm  rn  r³   ©ro  rl  r&  ra  r|   r¨   r"  rU   r€   r�   rm  rŽ   )	r3   rl  rm  rn  r’   r¢  Ú	_expectedrg  r�  s	            r   Ú test__uncached_lookup_simple_hitz7AdapterLookupBaseTests.test__uncached_lookup_simple_hit*  s¬   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	àØ�D˜2˜y˜/Ð*Ð+ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×%Ñ% t g¨tÓ4ˆØ�‰�f˜iÕ(r   c                 ó¤  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }|j                  |f|«      }	| j                  ||«       | j                  |	|«       y r³  r´  )
r3   rl  rm  rn  r’   r¢  rµ  rg  r�  Úresult2s
             r   Ú"test__uncached_lookup_repeated_hitz9AdapterLookupBaseTests.test__uncached_lookup_repeated_hit;  sÎ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	àØ�D˜2˜y˜/Ð*Ð+ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×%Ñ% t g¨tÓ4ˆØ×&Ñ&¨ w°Ó5ˆØ�‰�f˜iÔ(Ø�‰�g˜yÕ)r   c                 ó´  — ddl m} ddlm}  |d«      } |d|f«      } ||«       G d„ d«      «       } |«       }| j	                  «       }| j                  «       }i i g|_        |j                  j                  |«       | j                  |«      }	|	j                  |	_        |	|_        t        «       }
|	j                  |f||
¬«      }| j                  ||
«       y )	Nr   ©Úimplementerrk  rm  rn  c                   ó   — e Zd Zy)úFAdapterLookupBaseTests.test_queryMultiAdaptor_lookup_miss.<locals>.FooNr	   r   r   r   ÚFoor¾  S  ó   „ àr   r¿  ©Údefault)Úzope.interface.declarationsr¼  ro  rl  r&  ra  r¨   r"  rU   r€   rm  rz  r�   r|   ÚqueryMultiAdapterrŽ   )r3   r¼  rl  rm  rn  r¿  Úfoor’   r¢  rg  rŽ  r�  s               r   Ú"test_queryMultiAdaptor_lookup_missz9AdapterLookupBaseTests.test_queryMultiAdaptor_lookup_missN  sÒ   € Ý;Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×%Ñ%Ó'ˆØ×$Ñ$Ó&ˆàØð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×)Ñ)ˆŒ
ØˆŒÜ“8ˆØ×&Ñ&¨ v¨t¸XÐ&ÓFˆØ�‰�f˜hÕ'r   c                 óÈ   ‡‡— ddl m} ddlm}  |d«      Š| j	                  «       }| j                  |«      Š‰j                  ‰_        ˆˆfd„}|j                  | |d¬«       y )Nr   rk  )ÚMissingSomeAttrsrm  c                 ó*   •— ‰j                  | f‰«      S r/   )rÄ  )Úobrm  rg  s    €€r   ÚtestzVAdapterLookupBaseTests.test_queryMultiAdapter_errors_on_attribute_access.<locals>.testr  s   ø€ Ø×(Ñ(Ø�Øóð r   rä  )Úexpected_missing)	ro  rl  Úzope.interface.testsrÈ  r&  r€   rm  rz  Útest_raises)r3   rl  rÈ  r’   rË  rm  rg  s        @@r   Ú1test_queryMultiAdapter_errors_on_attribute_accesszHAdapterLookupBaseTests.test_queryMultiAdapter_errors_on_attribute_accesse  sZ   ù€ õ
 	<Ý9á˜fÓ%ˆØ×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ×)Ñ)ˆŒ
õ	ð 	×$Ñ$ T¨4À+Ð$ÕNr   c                 ó  ‡— ddl m} ddlm}  |d«      } |d|f«      } ||«       G d„ d«      «       } |«       }| j	                  ||«      }| j                  «       }t        «       }	g Šˆfd„}
i ||d	|
iiig|_        |j                  j                  |«       | j                  |«      }|j                  |_        ||_        t        «       }|j                  |f||¬
«      }| j                  ||«       | j!                  ‰|g«       y )Nr   r»  rk  rm  rn  c                   ó   — e Zd Zy)úGAdapterLookupBaseTests.test_queryMultiAdaptor_factory_miss.<locals>.FooNr	   r   r   r   r¿  rÒ    rÀ  r   r¿  c                 ó(   •— ‰j                  | «       y r/   r�  )rÎ  rƒ  s    €r   rÐ  zLAdapterLookupBaseTests.test_queryMultiAdaptor_factory_miss.<locals>._factory‡  s   ø€ Ø×Ñ Õ(r   r³   rÁ  ©rÃ  r¼  ro  rl  r&  ra  r|   r¨   r"  rU   r€   rm  rz  r�   rÄ  rŽ   r—   )r3   r¼  rl  rm  rn  r¿  rÅ  r’   r¢  rµ  rÐ  rg  rŽ  r�  rƒ  s                 @r   Ú#test_queryMultiAdaptor_factory_missz:AdapterLookupBaseTests.test_queryMultiAdaptor_factory_missz  s
  ø€ Ý;Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	Øˆô	)ð Ø�D˜2˜x˜.Ð)Ð*ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×)Ñ)ˆŒ
ØˆŒÜ“8ˆØ×&Ñ&¨ v¨t¸XÐ&ÓFˆØ�‰�f˜hÔ'Ø×Ñ˜¨ uÕ-r   c                 ó  ‡‡— ddl m} ddlm}  |d«      } |d|f«      } ||«       G d„ d«      «       } |«       }| j	                  ||«      }| j                  «       }t        «       Šg Šˆˆfd„}	i ||d	|	iiig|_        |j                  j                  |«       | j                  |«      }
|
j                  |
_        |
|_        t        «       }|
j                  |f||¬
«      }| j                  |‰«       | j!                  ‰|g«       y )Nr   r»  rk  rm  rn  c                   ó   — e Zd Zy)úFAdapterLookupBaseTests.test_queryMultiAdaptor_factory_hit.<locals>.FooNr	   r   r   r   r¿  rØ  œ  rÀ  r   r¿  c                 ó*   •— ‰j                  | «       ‰S r/   r�  )rÎ  rƒ  rµ  s    €€r   rÐ  zKAdapterLookupBaseTests.test_queryMultiAdaptor_factory_hit.<locals>._factory¤  s   ø€ Ø×Ñ Ô(ØÐr   r³   rÁ  rÔ  )r3   r¼  rl  rm  rn  r¿  rÅ  r’   r¢  rÐ  rg  rŽ  r�  rƒ  rµ  s                @@r   Ú"test_queryMultiAdaptor_factory_hitz9AdapterLookupBaseTests.test_queryMultiAdaptor_factory_hit—  s
  ù€ Ý;Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	Øˆõ	ð Ø�D˜2˜x˜.Ð)Ð*ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×)Ñ)ˆŒ
ØˆŒÜ“8ˆØ×&Ñ&¨ v¨t¸XÐ&ÓFˆØ�‰�f˜iÔ(Ø×Ñ˜¨ uÕ-r   c                 óà   •‡— | j                  | j                  «       «      }ˆfd„}d„ Š||_        t        «       ddt        «       g}|j	                  |d «      }| j                  || dd| f«       y )Nc                  ó   •— ‰S r/   r   )rÕ   Úfactorys    €r   rz  zKAdapterLookupBaseTests.test_queryMultiAdapter_super_unwraps.<locals>.lookup¶  s   ø€ ØˆNr   c                  ó   — | S r/   r   )rÕ   s    r   rÝ  zLAdapterLookupBaseTests.test_queryMultiAdapter_super_unwraps.<locals>.factory¸  s   € ØˆKr   é*   Úabc)r€   r&  rz  rã  rÄ  r—   )r3   rg  rz  Úobjectsr�  rÝ  rä  s        @€r   Ú$test_queryMultiAdapter_super_unwrapsz;AdapterLookupBaseTests.test_queryMultiAdapter_super_unwraps´  sy   ù€ Ø�m‰m˜D×.Ñ.Ó0Ó1ˆô	ò	àˆŒ
ô ‹GØØÜ‹Gð	
ˆð ×&Ñ& w°Ó5ˆØ×Ñ˜ØØØØð	"
õ 	r   c                 ó^  — ddl m}  |d«      } |d|f«      }| j                  «       }| j                  |«      }|j	                  |f|«      }| j                  |d«       | j                  t        |j                  «      d«       | j                  |j                  «       |j                  «       y )Nr   rk  rm  rn  r   r–   )
ro  rl  r&  r€   rn  r—   r<   r�  rü   r›  rœ  s          r   Ú!test__uncached_lookupAll_empty_roz8AdapterLookupBaseTests.test__uncached_lookupAll_empty_roË  sŽ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ×(Ñ(¨$¨°$Ó7ˆØ×Ñ˜ Ô$Ø×Ñœ˜SŸ]™]Ó+¨QÔ/Ø�‰�d—l‘l“n c§m¡mÕ4r   c                 ó(  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }|j                  j                  |«       | j                  |«      }||_        |j                  |f|«      }| j                  |d«       y ©Nr   rk  rm  rn  r   )
ro  rl  r&  ra  r"  rU   r€   r�   rn  r—   r¡  s           r   Ú#test__uncached_lookupAll_order_missz:AdapterLookupBaseTests.test__uncached_lookupAll_order_missÖ  sˆ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆØ�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×(Ñ(¨$¨°$Ó7ˆØ×Ñ˜ Õ$r   c                 ó6  — ddl m}  |d«      } |d|f«      }| j                  «       }| j                  «       }i i g|_        |j
                  j                  |«       | j                  |«      }||_        |j                  |f|«      }| j                  |d«       y ræ  )ro  rl  r&  ra  r¨   r"  rU   r€   r�   rn  r—   r¡  s           r   Ú'test__uncached_lookupAll_extendors_missz>AdapterLookupBaseTests.test__uncached_lookupAll_extendors_missâ  s�   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ×$Ñ$Ó&ˆØ˜b˜ˆŒØ�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×(Ñ(¨$¨°$Ó7ˆØ×Ñ˜ Õ$r   c                 ój  — ddl m}  |d«      } |d|f«      } |d«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }	| j                  |	d«       y )Nr   rk  rm  rn  r¨  r³   r   )ro  rl  r&  ra  r|   r¨   r"  rU   r€   r�   rn  r—   rª  s
             r   Ú(test__uncached_lookupAll_components_missz?AdapterLookupBaseTests.test__uncached_lookupAll_components_missï  s¹   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ˜fÓ%ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Xˆ
àØ�D˜2˜zÐ*Ð+Ð,ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×(Ñ(¨$¨°$Ó7ˆØ×Ñ˜ Õ$r   c                 óŽ  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }t	        «       }t	        «       }i ||||dœiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }	| j                  t        |	«      d|fd|fg«       y ©Nr   rk  rm  rn  )r³   Únamedr³   rî  )ro  rl  r&  ra  r|   r¨   r"  rU   r€   r�   rn  r—   rÍ   ©
r3   rl  rm  rn  r’   r¢  rµ  Ú_namedrg  r�  s
             r   Ú#test__uncached_lookupAll_simple_hitz:AdapterLookupBaseTests.test__uncached_lookupAll_simple_hit  sÈ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	Ü“ˆàØ�D˜y°6Ñ:Ð;Ð<ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×(Ñ(¨$¨°$Ó7ˆØ×Ñœ ›¨2¨y¨/¸GÀVÐ;LÐ)MÕNr   c                 ó¨  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }t	        «       }t	        «       }i ||||dœiig|_        |j                  j                  |«       | j                  |«      }|j                  |_
        ||_        |j                  |f|«      }	| j                  t        |	«      ddg«       y rí  )ro  rl  r&  ra  r|   r¨   r"  rU   r€   rn  rô  r�   Únamesr—   rÍ   rï  s
             r   Ú
test_namesz!AdapterLookupBaseTests.test_names  sÉ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	Ü“ˆàØ�D˜y°6Ñ:Ð;Ð<ð
ˆŒð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×/Ñ/ˆŒØˆŒØ—‘˜D˜7 DÓ)ˆØ×Ñœ ›¨"¨g¨Õ7r   c                 ó^  — ddl m}  |d«      } |d|f«      }| j                  «       }| j                  |«      }|j	                  |f|«      }| j                  |g «       | j                  t        |j                  «      d«       | j                  |j                  «       |j                  «       y rš  )
ro  rl  r&  r€   ro  r—   r<   r�  rü   r›  rœ  s          r   Ú%test__uncached_subscriptions_empty_roz<AdapterLookupBaseTests.test__uncached_subscriptions_empty_ro&  sŽ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ�m‰m˜HÓ%ˆØ×,Ñ,¨d¨W°dÓ;ˆØ×Ñ˜ Ô$Ø×Ñœ˜SŸ]™]Ó+¨QÔ/Ø�‰�d—l‘l“n c§m¡mÕ4r   c                 ó(  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }|j                  j                  |«       | j                  |«      }||_        |j                  |f|«      }| j                  |g «       y r   )
ro  rl  r&  ra  r"  rU   r€   r�   ro  r—   r¡  s           r   Ú'test__uncached_subscriptions_order_missz>AdapterLookupBaseTests.test__uncached_subscriptions_order_miss1  sˆ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆØ�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×,Ñ,¨d¨W°dÓ;ˆØ×Ñ˜ Õ$r   c                 ó6  — ddl m}  |d«      } |d|f«      }| j                  «       }| j                  «       }i i g|_        |j
                  j                  |«       | j                  |«      }||_        |j                  |f|«      }| j                  |g «       y r   )ro  rl  r&  ra  r°   r"  rU   r€   r�   ro  r—   r¡  s           r   Ú+test__uncached_subscriptions_extendors_misszBAdapterLookupBaseTests.test__uncached_subscriptions_extendors_miss=  s�   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ%Ó'ˆØ×$Ñ$Ó&ˆØ ˜HˆÔØ�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×,Ñ,¨d¨W°dÓ;ˆØ×Ñ˜ Õ$r   c                 ój  — ddl m}  |d«      } |d|f«      } |d«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }	| j                  |	g «       y r§  ©ro  rl  r&  ra  r|   r°   r"  rU   r€   r�   ro  r—   rª  s
             r   Ú8test__uncached_subscriptions_components_miss_wrong_ifacezOAdapterLookupBaseTests.test__uncached_subscriptions_components_miss_wrong_ifaceJ  sº   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ˜fÓ%ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Xˆ
àØ�D˜2˜zÐ*Ð+Ð,ð
ˆÔð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×,Ñ,¨d¨W°dÓ;ˆØ×Ñ˜ Õ$r   c                 óZ  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       }t	        «       }i ||d|iiig|_        |j                  j                  |«       | j                  |«      }||_	        |j                  |f|«      }| j                  |g «       y r®  rü  r°  s	            r   Ú7test__uncached_subscriptions_components_miss_wrong_namezNAdapterLookupBaseTests.test__uncached_subscriptions_components_miss_wrong_name\  s°   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆÜ“Hˆ	àØ�D˜;¨	Ð2Ð3Ð4ð
ˆÔð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×,Ñ,¨d¨W°dÓ;ˆØ×Ñ˜ Õ$r   c                 ó¢  — ddl m}  |d«      } |d|f«      }| j                  ||«      }| j                  «       } G d„ d«      } |«        |«       }}i ||d||fiiig|_        |j
                  j                  |«       | j                  |«      }	|	|_        |	j                  |f|«      }
| j                  t        |
«      t        ||g«      «       y )Nr   rk  rm  rn  c                   ó   — e Zd Zd„ Zy)úKAdapterLookupBaseTests.test__uncached_subscriptions_simple_hit.<locals>.Fooc                  ó   — y)NTr   rC   s     r   Ú__lt__zRAdapterLookupBaseTests.test__uncached_subscriptions_simple_hit.<locals>.Foo.__lt__t  s   € Ør   N)r
   r   r   r  r   r   r   r¿  r  s  s   „ ór   r¿  r³   )ro  rl  r&  ra  r°   r"  rU   r€   r�   ro  r—   rÍ   )r3   rl  rm  rn  r’   r¢  r¿  Ú_exp1Ú_exp2rg  r�  s              r   Ú'test__uncached_subscriptions_simple_hitz>AdapterLookupBaseTests.test__uncached_subscriptions_simple_hitm  sÓ   € Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆ÷	ñ 	ñ “u™c›eˆuˆàØ�D˜2  u˜~Ð.Ð/Ð0ð
ˆÔð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØˆŒØ×,Ñ,¨d¨W°dÓ;ˆØ×Ñœ ›¬°¸°Ó)?Õ@r   c                 ó  ‡— ddl m} ddlm}  |d«      } |d|f«      } ||«       G d„ d«      «       } |«       }| j	                  ||«      }| j	                  ||«      }| j                  «       }i Šˆfd„}	ˆfd	„}
i |d d
|	|
fiiig|_        |j                  j                  |«       | j                  |«      }|j                  |_        ||_        |j                  |fd «      }| j                  |d«       | j                  ‰|g|gdœ«       y )Nr   r»  rk  rm  rn  c                   ó   — e Zd Zy)ú@AdapterLookupBaseTests.test_subscribers_wo_provided.<locals>.FooNr	   r   r   r   r¿  r
  †  rÀ  r   r¿  c                 óH   •— ‰j                  dg «      j                  | «       y ©Nr1  ©Ú
setdefaultrU   ©rÎ  Ú_calleds    €r   r1  zFAdapterLookupBaseTests.test_subscribers_wo_provided.<locals>._factory1Ž  ó   ø€ Ø×Ñ˜{¨BÓ/×6Ñ6°wÕ?r   c                 óH   •— ‰j                  dg «      j                  | «       y ©Nr5  r  r  s    €r   r5  zFAdapterLookupBaseTests.test_subscribers_wo_provided.<locals>._factory2�  r  r   r³   r   )r1  r5  )rÃ  r¼  ro  rl  r&  ra  r°   r"  rU   r€   ro  rÿ  r�   Úsubscribersr—   )r3   r¼  rl  rm  rn  r¿  rÅ  r’   r¢  r1  r5  rg  r�  r  s                @r   Útest_subscribers_wo_providedz3AdapterLookupBaseTests.test_subscribers_wo_provided�  s  ø€ Ý;Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×%Ñ% d¨DÓ1ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆØˆô	@ô	@ð Ø�D˜2 	¨9Ð5Ð6Ð7Ð8ð
ˆÔð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×7Ñ7ˆÔØˆŒØ—‘ # ¨Ó.ˆØ×Ñ˜ Ô$Ø×Ñ˜°°ÀSÀEÑ"JÕKr   c                 ób  ‡‡‡— ddl m} ddlm}  |d«      } |d|f«      } ||«       G d„ d«      «       } |«       }| j	                  ||«      }| j	                  ||«      }| j                  «       }i Št        «       t        «       cŠŠˆˆfd„}	ˆˆfd	„}
ˆfd
„}i ||d|	|
|fiiig|_        |j                  j                  |«       | j                  |«      }|j                  |_        ||_        |j                  |f|«      }| j                  |‰‰g«       | j                  ‰|g|g|gdœ«       y )Nr   r»  rk  rm  rn  c                   ó   — e Zd Zy)ú?AdapterLookupBaseTests.test_subscribers_w_provided.<locals>.FooNr	   r   r   r   r¿  r  £  rÀ  r   r¿  c                 óJ   •— ‰j                  dg «      j                  | «       ‰S r  r  )rÎ  r  r  s    €€r   r1  zEAdapterLookupBaseTests.test_subscribers_w_provided.<locals>._factory1¬  ó#   ø€ Ø×Ñ˜{¨BÓ/×6Ñ6°wÔ?ØˆLr   c                 óJ   •— ‰j                  dg «      j                  | «       ‰S r  r  )rÎ  r  r  s    €€r   r5  zEAdapterLookupBaseTests.test_subscribers_w_provided.<locals>._factory2¯  r  r   c                 óH   •— ‰j                  dg «      j                  | «       y )NÚ_side_effect_onlyr  r  s    €r   r  zMAdapterLookupBaseTests.test_subscribers_w_provided.<locals>._side_effect_only²  s   ø€ Ø×ÑÐ2°BÓ7×>Ñ>¸wÕGr   r³   )r1  r5  r  )rÃ  r¼  ro  rl  r&  ra  r|   r°   r"  rU   r€   ro  rÿ  r�   r  r—   )r3   r¼  rl  rm  rn  r¿  rÅ  r’   r¢  r1  r5  r  rg  r�  r  r  r  s                 @@@r   Útest_subscribers_w_providedz2AdapterLookupBaseTests.test_subscribers_w_providedž  sD  ú€ Ý;Ý;Ù˜fÓ%ˆÙ˜f t gÓ.ˆÙ	�TÓ	÷	ð 	ó 
ð	á‹eˆØ×%Ñ% d¨DÓ1ˆØ×%Ñ% d¨DÓ1ˆØ×$Ñ$Ó&ˆØˆÜ“x¤£ˆˆˆuõ	õ	ô	Hð Ø�D˜2 	¨9Ð6GÐHÐIÐJÐKð
ˆÔð 	�‰×Ñ˜4Ô Ø�m‰m˜HÓ%ˆØ×7Ñ7ˆÔØˆŒØ—‘ # ¨Ó.ˆØ×Ñ˜ %¨ Ô0Ø×Ñ˜Ø(+ uØ(+ uØ03¨uñõ	r   ))r
   r   r   r}   r€   ra  r&  rh  rr  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  s   @r   rX  rX  a  sÀ   ø„ ò!ò0òò"ò-ò
/ò	ò+ò4/ò /ò )ò"	5ò	'ò'ò'ò&'ò&)ò"*ò&(ò.Oò*.ò:.ô:ò.	5ò
%ò%ò%ò$Oò$8ò&	5ò
%ò%ò%ò$%ò"Aò(Lö:%r   rX  c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚVerifyingAdapterRegistryTestsc                 ó   — ddl m} |S )Nr   )ÚVerifyingAdapterRegistry)ra   r"  )r3   r"  s     r   r}   z-VerifyingAdapterRegistryTests._getTargetClassÍ  s   € ÝCØ'Ð'r   c                 ó.   —  | j                  «       |i |¤ŽS r/   r   )r3   rÕ   Úkws      r   r€   z&VerifyingAdapterRegistryTests._makeOneÑ  s   € Ø%ˆt×#Ñ#Ó% tÐ2¨rÑ2Ð2r   c                 óN   — ddl m} ddlm} | j	                  «       } |||«       y )Nr   )ÚverifyObject)ÚIAdapterRegistry)Úzope.interface.verifyr&  Úzope.interface.interfacesr'  r€   )r3   r&  r'  r’   s       r   Ú,test_verify_object_provides_IAdapterRegistryzJVerifyingAdapterRegistryTests.test_verify_object_provides_IAdapterRegistryÔ  s   € Ý6Ý>Ø—=‘=“?ˆÙÐ% xÕ0r   N)r
   r   r   r}   r€   r*  r   r   r   r   r   Æ  s   „ ò(ò3ó1r   r   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚAdapterRegistryTestsc                 ó   — ddl m} |S )Nr   )ÚAdapterRegistry)ra   r.  )r3   r.  s     r   r}   z$AdapterRegistryTests._getTargetClassÝ  s   € Ý:ØÐr   c                 ón   — | j                  «       }| j                  t        |j                  «      d«       y r6  )r€   r—   r<   Ú_v_subregistries)r3   Úars     r   Útest_ctor_no_basesz'AdapterRegistryTests.test_ctor_no_basesá  s(   € Ø�]‰]‹_ˆØ×Ñœ˜R×0Ñ0Ó1°1Õ5r   c                 ó  — | j                  «       }| j                  |g«      }| j                  t        |j                  «      d«       | j                  t        |j                  «      d«       | j	                  ||j                  «       y r§   )r€   r—   r<   r0  rü   )r3   ÚbaseÚsubs      r   Útest_ctor_w_basesz&AdapterRegistryTests.test_ctor_w_baseså  sg   € Ø�}‰}‹ˆØ�m‰m˜T˜FÓ#ˆØ×Ñœ˜S×1Ñ1Ó2°AÔ6Ø×Ñœ˜T×2Ñ2Ó3°QÔ7Ø�‰�c˜4×0Ñ0Õ1r   c                 óD  — | j                  «       }| j                  «       }| j                  |g«      }|g|_        | j                  t        |j                  «      d«       | j                  t        |j                  «      d«       | j                  ||j                  «       y r§   ©r€   r¤   r—   r<   r0  rü   ©r3   ÚbeforeÚafterr5  s       r   Ú,test__setBases_removing_existing_subregistryzAAdapterRegistryTests.test__setBases_removing_existing_subregistryî  s{   € Ø—‘“ˆØ—‘“ˆØ�m‰m˜V˜HÓ%ˆØ˜ˆŒØ×Ñœ˜V×4Ñ4Ó5°qÔ9Ø×Ñœ˜U×3Ñ3Ó4°aÔ8Ø�‰�c˜5×1Ñ1Õ2r   c                 ó   — | j                  «       }| j                  «       }| j                  «       }| j                  |g«      }|j                  d   j                  |«       |g|_        | j	                  t        |j                  «      d«       | j	                  t        |j                  «      d«       | j                  ||j                  «       y )Nr¤   r   r–   )r€   Ú__dict__rU   r¤   r—   r<   r0  rü   )r3   r:  Ústrayr;  r5  s        r   Útest__setBases_wo_stray_entryz2AdapterRegistryTests.test__setBases_wo_stray_entry÷  s�   € Ø—‘“ˆØ—‘“ˆØ—‘“ˆØ�m‰m˜V˜HÓ%ˆØ�‰�[Ñ!×(Ñ(¨Ô/Ø˜ˆŒØ×Ñœ˜V×4Ñ4Ó5°qÔ9Ø×Ñœ˜U×3Ñ3Ó4°aÔ8Ø�‰�c˜5×1Ñ1Õ2r   c                 ó~  — | j                  «       }| j                  «       }| j                  |g«      }||g|_        | j                  t        |j                  «      d«       | j                  t        |j                  «      d«       | j                  ||j                  «       | j                  ||j                  «       y r•   r8  r9  s       r   Ú*test__setBases_w_existing_entry_continuingz?AdapterRegistryTests.test__setBases_w_existing_entry_continuing  s‘   € Ø—‘“ˆØ—‘“ˆØ�m‰m˜V˜HÓ%ˆØ ˜ˆŒØ×Ñœ˜V×4Ñ4Ó5°qÔ9Ø×Ñœ˜U×3Ñ3Ó4°aÔ8Ø�‰�c˜6×2Ñ2Ô3Ø�‰�c˜5×1Ñ1Õ2r   c                 ó>  — | j                  «       } G d„ d«      } |«        |«       }}|j                  |«       |j                  |«       t        «       }|j                  |«       | j	                  |j
                  |«       | j	                  |j
                  |«       y )Nc                   ó   — e Zd ZdZd„ Zy)úBAdapterRegistryTests.test_changed_w_subregistries.<locals>.DerivedNc                 ó   — || _         y r/   rk   )r3   Úoriginally_changeds     r   rn   zJAdapterRegistryTests.test_changed_w_subregistries.<locals>.Derived.changed  s	   € Ø 2�•r   )r
   r   r   rl   rn   r   r   r   rp  rE    s   „ ØˆHó3r   rp  )r€   Ú_addSubregistryr|   rn   rŽ   rl   )r3   r4  rp  Úderived1Úderived2rm   s         r   Útest_changed_w_subregistriesz1AdapterRegistryTests.test_changed_w_subregistries  s}   € Ø�}‰}‹ˆ÷	3ñ 	3ñ %›Y©«	�(ˆØ×Ñ˜XÔ&Ø×Ñ˜XÔ&Ü‹xˆØ�‰�TÔØ�‰�h×'Ñ'¨Ô.Ø�‰�h×'Ñ'¨Õ.r   N)
r
   r   r   r}   r2  r6  r<  r@  rB  rK  r   r   r   r,  r,  Û  s%   „ òò6ò2ò3ò	3ò3ó/r   r,  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú
Test_utilsc                 óL   — ddl m} ddlm} | j	                   |d «      |«       y )Nr   ©Ú_convert_None_to_Interfacer   )ra   rP  ro  r   rŽ   )r3   rP  r   s      r   Ú&test__convert_None_to_Interface_w_Nonez1Test_utils.test__convert_None_to_Interface_w_None  s   € ÝEÝ6Ø�‰Ñ0°Ó6¸	ÕBr   c                 óT   — ddl m} t        «       }| j                   ||«      |«       y )Nr   rO  )ra   rP  r|   rŽ   )r3   rP  rD   s      r   Ú'test__convert_None_to_Interface_w_otherz2Test_utils.test__convert_None_to_Interface_w_other"  s    € ÝEÜ“ˆØ�‰Ñ0°Ó7¸Õ?r   c                 ó‚   — ddl m} d}d} ||«      }| j                  ||«       | j                  |t	        |«      «       y )Nr   ©Ú_normalize_names   strÚstr)ra   rV  r—   r©   rB   )r3   rV  ÚSTRÚUNICODEÚnorms        r   Útest__normalize_name_strz#Test_utils.test__normalize_name_str'  s=   € Ý:ØˆØˆÙ˜sÓ#ˆØ×Ñ˜˜wÔ'Ø×Ñ˜d¤D¨£MÕ2r   c                 óD   — ddl m} d}| j                   ||«      |«       y )Nr   rU  Úustr)ra   rV  r—   )r3   rV  ÚUSTRs      r   Útest__normalize_name_unicodez'Test_utils.test__normalize_name_unicode/  s   € Ý:àˆØ×Ñ™¨Ó.°Õ5r   c                 óh   — ddl m} dddg i t        «       fD ]  }| j                  t        ||«       Œ y )Nr   rU  r–   g      ð?r   )ra   rV  r|   rÙ   Ú	TypeError)r3   rV  rD   s      r   Útest__normalize_name_otherz%Test_utils.test__normalize_name_other5  s7   € Ý:Ø˜˜R  R¬«Ð1ò 	AˆEØ×Ñœi¨¸%Õ@ñ	Ar   N)r
   r   r   rQ  rS  r[  r_  rb  r   r   r   rM  rM    s   „ òCò
@ò
3ò6óAr   rM  )rW  ÚunittestrÍ  r   r+   r-   rJ   rR   rW   rZ   ÚTestCaser\   rE  rY  r	  r  rT  rX  r   r,  rM  r   r   r   ú<module>re     s  ðñã å 6ò
7÷< ñ  ô8&Ð&ô &ô(Ð'ô (ô	˜ô 	ô	�]ô 	ôM˜x×0Ñ0ô Mô`/$Ð*Bô /$ôdF8˜h×/Ñ/ô F8ôR
Ð-Ø+ôô[3 ×!2Ñ!2ô [3ô|Ð3Ø.ôôb	˜X×.Ñ.ô b	ôJ1 H×$5Ñ$5ô 1ô*=/Ð8ô =/ô@A�×"Ñ"õ Ar   