+
    üÐjš  ã                  ó  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^RIHt ]P                  t ! R R4      s ! R	 R
\        4      t ! R R4      t ! R R]]4      s ! R R4      tRs ! R R]
4      t ! R R]
4      tR# )é    )ÚannotationsN)ÚNoReturn©Úrebuild)ÚTestCase)Úcrash_test_dummyc                  ó   € ] tR t^tRtR# )ÚFoo© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú;/usr/lib/python3/dist-packages/twisted/test/test_rebuild.pyr
   r
      ó   † Ûr   r
   c                  ó   € ] tR t^tRtR# )ÚBarr   Nr   r   r   r   r   r      r   r   r   c                  ó   € ] tR t^tRtR# )ÚBazr   Nr   r   r   r   r   r      r   r   r   c                  ó   € ] tR t^tRtR# ©ÚBuzr   Nr   r   r   r   r   r      r   r   r   c                  ó2   € ] tR t^#tRtR R ltR R ltRtR# )ÚHashRaisesRuntimeErrorz‘
Things that don't hash (raise an Exception) should be ignored by the
rebuilder.

@ivar hashCalled: C{bool} set to True when __hash__ is called.
c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚNoner   )Úformats   "r   Ú__annotate__Ú#HashRaisesRuntimeError.__annotate__+   s   € ÷  ñ  ˜$ñ  r   c                	ó   € R V n         R# )FN©Ú
hashCalled©Úselfs   &r   Ú__init__ÚHashRaisesRuntimeError.__init__+   s	   € ØˆŽr   c               ó   € V ^8„  d   QhRR/# )r    r!   r   r   )r#   s   "r   r$   r%   .   s   € ÷ /ñ /˜(ñ /r   c                	ó&   € R V n         \        R4      h)Tznot a TypeError!)r(   ÚRuntimeErrorr)   s   &r   Ú__hash__ÚHashRaisesRuntimeError.__hash__.   s   € ØˆŒÜÐ-Ó.Ð.r   r'   N)r   r   r   r   Ú__doc__r+   r0   r   r   r   r   r   r   #   s   † ñõ ÷/ñ /r   r   c                  ó†   € ] tR t^7tRtR R ltR R ltR R ltR R	 ltR
 R lt	R R lt
R R ltR R ltR R ltRtR# )ÚRebuildTestsz@
Simple testcase for rebuilding, to at least exercise the code.
c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   ÚRebuildTests.__annotate__<   s   € ÷ )ñ )�tñ )r   c                	óæ  € V P                  4       V n        \        P                  ! V P                  4       \        P                  P                  V P                  R 4      V n        \        P                  ! V P                  4       \        \        P                  P                  V P                  R4      R4      P                  4        \        P                  P                  ^ V P                  4       R# )Útwisted_rebuild_fakelibz__init__.pyÚwN)ÚmktempÚlibPathÚosÚmkdirÚpathÚjoinÚfakelibPathÚopenÚcloseÚsysÚinsertr)   s   &r   ÚsetUpÚRebuildTests.setUp<   s‹   € Ø—{‘{“}ˆŒÜ
�Š�—‘ÔÜŸ7™7Ÿ<™<¨¯©Ð6OÓPˆÔÜ
�Š�×!Ñ!Ô"ÜŒR�W‰W�\‰\˜$×*Ñ*¨MÓ:¸CÓ@×FÑFÔHÜ�‰�‰˜˜4Ÿ<™<Ö(r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   D   s   € ÷ &ñ &˜$ñ &r   c                	óX   € \         P                  P                  V P                  4       R # ©N)rC   r>   Úremover;   r)   s   &r   ÚtearDownÚRebuildTests.tearDownD   s   € Ü�‰�‰˜Ÿ™Ö%r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   G   s   € ÷ %ñ % $ñ %r   c                	óP  € ^ RI p^ RIp^ RIHp VP	                  V! \
        R4      \        P                  P                  V P                  R4      4       ^ RI
Hp VP                  4       pVP                  4       pVP                  4       pV P                  VP!                  4       R4       VP#                  R4       VP	                  V! \
        R4      \        P                  P                  V P                  R4      4       \$        P$                  ! V4       VP                  4       pV P                  VP'                  4       R	4       V P                  VP'                  4       R	4       V P                  VP!                  4       R
4       V P                  VP!                  4       R4       R# )r   N)Úsibpathzmyrebuilder1.pyzmyrebuilder.py)ÚmyrebuilderÚagš™™™™™ñ?zmyrebuilder2.pyÚcÚdÚb)ÚshutilÚtimeÚtwisted.python.utilrO   ÚcopyfileÚ__file__r<   r>   r?   r@   r8   rP   ÚAÚBÚInheritÚassertEqualrQ   Úsleepr   rT   )	r*   rU   rV   rO   rP   rQ   rT   ÚiÚb2s	   &        r   Útest_FileRebuildÚRebuildTests.test_FileRebuildG   s*  € ÛÛå/à�‰Ù”HÐ/Ó0Ü�G‰G�L‰L˜×)Ñ)Ð+;Ó<ô	
õ	
ð �M‰M‹OˆØ�M‰M‹OˆØ×ÑÓ!ˆØ×Ñ˜Ÿ™› Ô$ð 	�
‰
�3ŒØ�‰Ù”HÐ/Ó0Ü�G‰G�L‰L˜×)Ñ)Ð+;Ó<ô	
ô 	�Š˜Ô$Ø�]‰]‹_ˆØ×Ñ˜Ÿ™› Ô%Ø×Ñ˜Ÿ™› Ô$Ø×Ñ˜Ÿ™› Ô$Ø×Ñ˜Ÿ™› Ö$r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   h   s   € ÷ 2ñ 2˜dñ 2r   c                ó&  € \         P                  ! R4      p\        P                  ! \         RR7       VP                  4        V P	                  VP
                  \         P                  4       V P	                  \        \         P                  4       R# )z!
Rebuilding an unchanged module.
rQ   F)ÚdoLogN)r   ÚXr   Údor]   Ú	__class__ÚfÚfoo)r*   Úxs   & r   Útest_RebuildÚRebuildTests.test_Rebuildh   s^   € ô ×Ò˜sÓ#ˆä�ŠÔ(°Õ6à	�‰ŒØ×Ñ˜Ÿ™Ô&6×&8Ñ&8Ô9à×ÑœÔ,×0Ñ0Ö1r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   y   s   € ÷ 
ñ 
¨4ñ 
r   c                	óX  € \         P                  ! 4       pVP                  \         P                  \         P                  4       VP                  \         P                  4       \        P                  ! \         ^ 4       VP                  \         P                  4      pVP                  4        V P                  VP                  \         P                  4       ^ RI
Hp V P                  \        VP                  \         P                  \         P                  \         P                  4       R# )r   )Ú
componentsN)r   Ú
XComponentÚ
setAdapterÚIXÚXAÚgetComponentr   Úmethodr]   rh   Útwisted.pythonrp   ÚassertRaisesÚ
ValueErrorÚregisterAdapterrf   )r*   rk   ÚnewComponentrp   s   &   r   Útest_ComponentInteractionÚ&RebuildTests.test_ComponentInteractiony   sÆ   € Ü×'Ò'Ó)ˆØ	�‰Ô%×(Ñ(Ô*:×*=Ñ*=Ô>Ø	�‰Ô'×*Ñ*Ô+Ü�ŠÔ(¨!Ô,Ø—~‘~Ô&6×&9Ñ&9Ó:ˆà×ÑÔà×Ñ˜×/Ñ/Ô1A×1DÑ1DÔEõ 	.à×ÑÜØ×&Ñ&Ü×ÑÜ×ÑÜ×Ñö	
r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   �   s   € ÷ Nñ N Tñ Nr   c                	óæ   € \        4       p ! R  R4      s ! R R\        \        4      s \        P
                  ! V4       \        VR4      '       g   Q R4       h\        VR4      '       g   Q R4       hR# )	c                  ó"   € ] tR t^”tR R ltRtR# )r
   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   ÚFoo.__annotate__•   s   € ÷ ñ ˜Tñ r   c                ó   € R# ©z
Dummy method
Nr   r)   s   &r   rj   ÚFoo.foo•   ó   ‚ r   r   N)r   r   r   r   rj   r   r   r   r   r
   r
   ”   ó   † ÷ñ r   r
   c                  ó   € ] tR t^št^
tRtR# r   )r   r   r   r   rk   r   r   r   r   r   r   š   s   † ØŒAr   r   rj   z"Missing method on rebuilt instancerk   z+Missing class attribute on rebuilt instanceN)r   r
   r   r   r   ÚupdateInstanceÚhasattr)r*   rT   s   & r   Útest_UpdateInstanceÚ RebuildTests.test_UpdateInstance�   sb   € ô ‹Eˆ÷	ñ 	ô	”#”sô 	ô 	×Ò˜qÔ!Ü�q˜%× Ò ÐFÐ"FÓFÐ Ü�q˜#�ŠÐMÐ MÓMŠr   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   ¡   s   € ÷ +ñ +¨ñ +r   c                	óV   € ^ RI Hp ^ RIHp VP                  ! VP
                  4       R# )r   r   )ÚbananaN)rw   r   Útwisted.spreadr�   ÚlatestClassÚBanana)r*   r   r�   s   &  r   Útest_BananaInteractionÚ#RebuildTests.test_BananaInteraction¡   s   € Ý*Ý)à×Ò˜FŸM™MÖ*r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   §   s   € ÷ 5ñ 5 Dñ 5r   c                óº   € \        4       sR R lpV P                  V4       \        P                  ! \        4       V P	                  \        P
                  4       R# )zf
Rebuilding something that has a __hash__ that raises a non-TypeError
shouldn't cause rebuild to die.
c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   Ú5RebuildTests.test_hashException.<locals>.__annotate__¯   s   € ÷ 	$ñ 	$˜$ñ 	$r   c                 ó
   € R s R # rI   )ÚunhashableObjectr   r   r   Ú_cleanupÚ1RebuildTests.test_hashException.<locals>._cleanup¯   s   € à#Òr   N)r   rš   Ú
addCleanupr   Ú
assertTruer(   )r*   r›   s   & r   Útest_hashExceptionÚRebuildTests.test_hashException§   s?   € ô 2Ó3Ðõ	$ð 	�‰˜Ô!Ü�ŠœÔ Ø�‰Ô(×3Ñ3Ö4r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r6   ·   s   € ÷ )Pñ )P ñ )Pr   c                ó¼  € ^ RI Hp ^ RIHp  ! R RV4      pV! 4       pVP	                  4        V P                  VP                  4       4       VP                  ! \        4      pV P                  \        \        4      \        V4      4       V P                  WTP                  V4      4       V P                  VP                  VP                  VP                  4      4       V P                  VP                  VP                  VP                  4      4       V P                  W4P                  V4      4       R R lpV P                  WdP                  V4      4       R# )z%
L{twisted.python.rebuild.Sensitive}
r   )Ú	Sensitivec                  ó"   € ] tR t^¾tR R ltRtR# )Ú2RebuildTests.test_Sensitive.<locals>.TestSensitivec               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   Ú?RebuildTests.test_Sensitive.<locals>.TestSensitive.__annotate__¿   s   € ÷ ñ  Tñ r   c                ó   € R# r„   r   r)   s   &r   Útest_methodÚ>RebuildTests.test_Sensitive.<locals>.TestSensitive.test_method¿   r†   r   r   N)r   r   r   r   r©   r   r   r   r   ÚTestSensitiver¥   ¾   r‡   r   r«   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   Ú1RebuildTests.test_Sensitive.<locals>.__annotate__Ú   s   € ÷ 	ñ 	˜Dñ 	r   c                 ó   € R# r„   r   r   r   r   Ú
myFunctionÚ/RebuildTests.test_Sensitive.<locals>.myFunctionÚ   r†   r   N)rw   r   Útwisted.python.rebuildr£   ÚrebuildUpToDateÚassertFalseÚneedRebuildUpdater‘   Ú	Exceptionr]   ÚreprÚlatestVersionOfr©   )r*   r   r£   r«   ÚtestSensitiveÚnewExceptionr¯   s   &      r   Útest_SensitiveÚRebuildTests.test_Sensitive·   s  € õ 	+Ý4ô	˜Iô 	ñ &›ˆØ×%Ñ%Ô'Ø×Ñ˜×8Ñ8Ó:Ô;ð ×*Ò*¬9Ó5ˆØ×Ñœœi›¬$¨|Ó*<Ô=Ø×Ñ˜×'DÑ'DÀ\Ó'RÔSð 	×ÑØ×%Ñ%Ø×)Ñ)¨-×*CÑ*CÓDô	
ð
 	×ÑØ×%Ñ%Ø×)Ñ)¨-×*CÑ*CÓDô	
ð
 	×Ñ˜×(EÑ(EÀmÓ(TÔUõ	ð 	×Ñ˜×%BÑ%BÀ:Ó%NÖOr   )r@   r;   N)r   r   r   r   r2   rE   rK   ra   rl   r|   r‹   r“   rŸ   rº   r   r   r   r   r4   r4   7   s=   † ñõ)õ&õ%õB2õ"
õ,Nõ$+õ5÷ )Pñ )Pr   r4   c                  óJ   € ] tR t^ãtRtR R ltR R ltR R ltR R	 ltR
t	R# )ÚNewStyleTestsz:
Tests for rebuilding new-style classes of various sorts.
c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   ÚNewStyleTests.__annotate__è   s   € ÷ )ñ )�tñ )r   c                	óv   € \         P                  ! R 4      V n        V P                  \        P                  R &   R# ©ÚwhippingN)ÚtypesÚ
ModuleTypeÚmrC   Úmodulesr)   s   &r   rE   ÚNewStyleTests.setUpè   s&   € Ü×!Ò! *Ó-ˆŒØ"&§&¡&Œ�‰�JÓr   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r¿   ì   s   € ÷ ñ ˜$ñ r   c                	ó,   € \         P                  R  V =R# rÁ   )rC   rÆ   rÅ   r)   s   &r   rK   ÚNewStyleTests.tearDownì   s   € Ü�K‰K˜
Ð#ØŠFr   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r¿   ð   s   € ÷ 7ñ 7˜Dñ 7r   c                óŠ  € Rp\        WP                  P                  4       V P                  P                  4       p^Vn        \        WP                  P                  4       \
        P                  ! V4       V P                  VP                  ^4       V P                  \        V4      V P                  P                  4       R# )z6
Try to rebuild a new style class with slots defined.
z*class SlottedClass:
    __slots__ = ['a']
N)
ÚexecrÅ   Ú__dict__ÚSlottedClassrQ   r   r‰   r]   ÚassertIsÚtype©r*   ÚclassDefinitionÚinsts   &  r   Ú
test_slotsÚNewStyleTests.test_slotsð   s�   € ð Lˆäˆ_Ÿf™fŸo™oÔ.Ø�v‰v×"Ñ"Ó$ˆØˆŒÜˆ_Ÿf™fŸo™oÔ.Ü×Ò˜tÔ$Ø×Ñ˜Ÿ™ Ô#Ø�‰”d˜4“j $§&¡&×"5Ñ"5Ö6r   c               ó   € V ^8„  d   QhRR/# r   r   )r#   s   "r   r$   r¿   þ   s   € ÷ 7ñ 7 4ñ 7r   c                ó˜  € Rp\        WP                  P                  4       V P                  P                  4       pVP	                  ^4       \        WP                  P                  4       \
        P                  ! V4       V P                  V^ ,          ^4       V P                  \        V4      V P                  P                  4       R# )z&
Try to rebuild a base type subclass.
z#class ListSubclass(list):
    pass
N)
rÍ   rÅ   rÎ   ÚListSubclassÚappendr   r‰   r]   rÐ   rÑ   rÒ   s   &  r   Útest_typeSubclassÚNewStyleTests.test_typeSubclassþ   s…   € ð Eˆäˆ_Ÿf™fŸo™oÔ.Ø�v‰v×"Ñ"Ó$ˆØ�‰�AŒÜˆ_Ÿf™fŸo™oÔ.Ü×Ò˜tÔ$Ø×Ñ˜˜a� !Ô$Ø�‰”d˜4“j $§&¡&×"5Ñ"5Ö6r   )rÅ   N)
r   r   r   r   r2   rE   rK   rÕ   rÛ   r   r   r   r   r½   r½   ã   s    † ñõ)õõ7÷7ñ 7r   r½   )Ú
__future__r   r<   rC   rÃ   Útypingr   rw   r   Útwisted.trial.unittestr   Ú r   rj   ri   r
   r   r   r   r   rš   r4   r½   r   r   r   Ú<module>rá      s‡   ðõ #ã 	Û 
Û å å "Ý +Ý à×Ñ€÷	ñ 	ô	Œ#ô 	÷	ñ 	ô	ˆ#ˆsô 	÷/ñ /ð" Ð ôiP�8ô iPôX'7�Hö '7r   