§
    Ètºf¥  ã                  ó6  — d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 ddlmZ ej        Z G d„ d	¦  «        a G d
„ dt          ¦  «        Z G d„ d¦  «        Z G d„ dee¦  «        a G d„ d¦  «        Zda G d„ de
¦  «        Z G d„ de
¦  «        ZdS )é    )ÚannotationsN)ÚNoReturn©Úrebuild)ÚTestCaseé   )Úcrash_test_dummyc                  ó   — e Zd ZdS )ÚFooN©Ú__name__Ú
__module__Ú__qualname__© ó    úX/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/test/test_rebuild.pyr   r      ó   € € € € € Ø€Dr   r   c                  ó   — e Zd ZdS )ÚBarNr   r   r   r   r   r      r   r   r   c                  ó   — e Zd ZdS )ÚBazNr   r   r   r   r   r      r   r   r   c                  ó   — e Zd ZdS )ÚBuzNr   r   r   r   r   r      r   r   r   c                  ó"   — e Zd ZdZdd„Zd	d„ZdS )
Ú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.
    ÚreturnÚNonec                ó   — d| _         d S )NF)Ú
hashCalled©Úselfs    r   Ú__init__zHashRaisesRuntimeError.__init__+   s   € ØˆŒˆˆr   r   c                ó.   — d| _         t          d¦  «        ‚)NTznot a TypeError!)r   ÚRuntimeErrorr    s    r   Ú__hash__zHashRaisesRuntimeError.__hash__.   s   € ØˆŒÝÐ-Ñ.Ô.Ð.r   N©r   r   )r   r   )r   r   r   Ú__doc__r"   r%   r   r   r   r   r   #   sF   € € € € € ðð ð ð  ð  ð  ð/ð /ð /ð /ð /ð /r   r   c                  óZ   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd	„Z	dd
„Z
dd„Zdd„ZdS )ÚRebuildTestszH
    Simple testcase for rebuilding, to at least exercise the code.
    r   r   c                óÄ  — |                       ¦   «         | _        t          j        | j        ¦  «         t          j                             | j        d¦  «        | _        t          j        | j        ¦  «         t          t          j                             | j        d¦  «        d¦  «                             ¦   «          t          j         
                    d| j        ¦  «         d S )NÚtwisted_rebuild_fakelibz__init__.pyÚwr   )ÚmktempÚlibPathÚosÚmkdirÚpathÚjoinÚfakelibPathÚopenÚcloseÚsysÚinsertr    s    r   ÚsetUpzRebuildTests.setUp<   sž   € Ø—{’{‘}”}ˆŒÝ
Œ�”ÑÔÐÝœ7Ÿ<š<¨¬Ð6OÑPÔPˆÔÝ
Œ�Ô!Ñ"Ô"Ð"Ý�RŒW�\Š\˜$Ô*¨MÑ:Ô:¸CÑ@Ô@×FÒFÑHÔHÐHÝŒ�Š˜˜4œ<Ñ(Ô(Ð(Ð(Ð(r   c                óN   — t           j                             | j        ¦  «         d S ©N)r6   r1   Úremover.   r    s    r   ÚtearDownzRebuildTests.tearDownD   s   € ÝŒ�Š˜œÑ%Ô%Ð%Ð%Ð%r   c                óÐ  — dd l }dd l}ddlm} |                      |t
          d¦  «        t          j                             | j	        d¦  «        ¦  «         ddl
m} |                     ¦   «         }|                     ¦   «         }|                     ¦   «         }|                      |                     ¦   «         d¦  «         |                     d¦  «         |                      |t
          d¦  «        t          j                             | j	        d¦  «        ¦  «         t%          j        |¦  «         |                     ¦   «         }|                      |                     ¦   «         d	¦  «         |                      |                     ¦   «         d	¦  «         |                      |                     ¦   «         d
¦  «         |                      |                     ¦   «         d¦  «         d S )Nr   )Úsibpathzmyrebuilder1.pyzmyrebuilder.py)ÚmyrebuilderÚagš™™™™™ñ?zmyrebuilder2.pyÚcÚdÚb)ÚshutilÚtimeÚtwisted.python.utilr>   ÚcopyfileÚ__file__r/   r1   r2   r3   r+   r?   ÚAÚBÚInheritÚassertEqualr@   Úsleepr   rC   )	r!   rD   rE   r>   r?   r@   rC   ÚiÚb2s	            r   Útest_FileRebuildzRebuildTests.test_FileRebuildG   s·  € ØˆˆˆØˆˆˆà/Ð/Ð/Ð/Ð/Ð/à�ŠØˆG•HÐ/Ñ0Ô0ÝŒG�LŠL˜Ô)Ð+;Ñ<Ô<ñ	
ô 	
ð 	
ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð �MŠM‰OŒOˆØ�MŠM‰OŒOˆØ×ÒÑ!Ô!ˆØ×Ò˜Ÿš™œ Ñ$Ô$Ð$ð 	�
Š
�3‰ŒˆØ�ŠØˆG•HÐ/Ñ0Ô0ÝŒG�LŠL˜Ô)Ð+;Ñ<Ô<ñ	
ô 	
ð 	
õ 	Œ˜Ñ$Ô$Ð$Ø�]Š]‰_Œ_ˆØ×Ò˜Ÿš™œ Ñ%Ô%Ð%Ø×Ò˜Ÿš™œ Ñ$Ô$Ð$Ø×Ò˜Ÿš™œ Ñ$Ô$Ð$Ø×Ò˜Ÿš™œ Ñ$Ô$Ð$Ð$Ð$r   c                ó   — t          j        d¦  «        }t          j        t           d¬¦  «         |                     ¦   «          |                      |j        t           j        ¦  «         |                      t          t           j        ¦  «         dS )z1
        Rebuilding an unchanged module.
        r@   F)ÚdoLogN)r	   ÚXr   ÚdorL   Ú	__class__ÚfÚfoo)r!   Úxs     r   Útest_RebuildzRebuildTests.test_Rebuildh   ss   € õ Ô˜sÑ#Ô#ˆåŒÕ(°Ð6Ñ6Ô6Ð6à	�Š‰ŒˆØ×Ò˜œÕ&6Ô&8Ñ9Ô9Ð9à×Ò�Õ,Ô0Ñ1Ô1Ð1Ð1Ð1r   c                ó0  — t          j        ¦   «         }|                     t           j        t           j        ¦  «         |                     t           j        ¦  «         t          j        t           d¦  «         |                     t           j        ¦  «        }|                     ¦   «          |                      |j	        t           j        ¦  «         ddl
m} |                      t          |j        t           j        t           j        t           j        ¦  «         d S )Nr   )Ú
components)r	   Ú
XComponentÚ
setAdapterÚIXÚXAÚgetComponentr   ÚmethodrL   rU   Útwisted.pythonr[   ÚassertRaisesÚ
ValueErrorÚregisterAdapterrS   )r!   rX   ÚnewComponentr[   s       r   Útest_ComponentInteractionz&RebuildTests.test_ComponentInteractiony   sê   € ÝÔ'Ñ)Ô)ˆØ	�ŠÕ%Ô(Õ*:Ô*=Ñ>Ô>Ð>Ø	�ŠÕ'Ô*Ñ+Ô+Ð+ÝŒÕ(¨!Ñ,Ô,Ð,Ø—~’~Õ&6Ô&9Ñ:Ô:ˆà×ÒÑÔÐà×Ò˜Ô/Õ1AÔ1DÑEÔEÐEð 	.Ð-Ð-Ð-Ð-Ð-à×ÒÝØÔ&ÝÔÝÔÝÔñ	
ô 	
ð 	
ð 	
ð 	
r   c                óþ   — t          ¦   «         } G d„ d¦  «        a G d„ dt          t          ¦  «        a t	          j        |¦  «         t          |d¦  «        s
J d¦   «         ‚t          |d¦  «        s
J d¦   «         ‚d S )	Nc                  ó   — e Zd Zdd„ZdS )r   r   r   c                ó   — dS ©z.
                Dummy method
                Nr   r    s    r   rW   zFoo.foo•   ó   € € € r   Nr&   )r   r   r   rW   r   r   r   r   r   ”   ó(   € € € € € ðð ð ð ð ð r   r   c                  ó   — e Zd ZdZdS )r   é
   N)r   r   r   rX   r   r   r   r   r   š   s   € € € € € ØˆAˆAˆAr   r   rW   z"Missing method on rebuilt instancerX   z+Missing class attribute on rebuilt instance)r   r   r   r   r   ÚupdateInstanceÚhasattr)r!   rC   s     r   Útest_UpdateInstancez RebuildTests.test_UpdateInstance�   s¶   € õ ‰EŒEˆð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	•#•sñ 	ô 	ð 	õ 	Ô˜qÑ!Ô!Ð!Ý�q˜%Ñ Ô ÐFÐFÐ"FÑFÔFÐFÝ�q˜#‰ŒÐMÐMÐ MÑMÔMÐMÐMÐMr   c                óH   — ddl m} ddlm}  |j        |j        ¦  «         d S )Nr   r   )Úbanana)rb   r   Útwisted.spreadrt   ÚlatestClassÚBanana)r!   r   rt   s      r   Útest_BananaInteractionz#RebuildTests.test_BananaInteraction¡   sA   € Ø*Ð*Ð*Ð*Ð*Ð*Ø)Ð)Ð)Ð)Ð)Ð)àˆÔ˜FœMÑ*Ô*Ð*Ð*Ð*r   c                óÄ   — t          ¦   «         add„}|                      |¦  «         t          j        t          ¦  «         |                      t          j        ¦  «         dS )z~
        Rebuilding something that has a __hash__ that raises a non-TypeError
        shouldn't cause rebuild to die.
        r   r   c                 ó
   — d a d S r:   )ÚunhashableObjectr   r   r   Ú_cleanupz1RebuildTests.test_hashException.<locals>._cleanup¯   s   € à#ÐÐÐr   Nr&   )r   r{   Ú
addCleanupr   Ú
assertTruer   )r!   r|   s     r   Útest_hashExceptionzRebuildTests.test_hashException§   sd   € õ 2Ñ3Ô3Ðð	$ð 	$ð 	$ð 	$ð 	�Š˜Ñ!Ô!Ð!ÝŒ�Ñ Ô Ð Ø�ŠÕ(Ô3Ñ4Ô4Ð4Ð4Ð4r   c                ó"  — ddl m} ddlm}  G d„ d|¦  «        } |¦   «         }|                     ¦   «          |                      |                     ¦   «         ¦  «          |j        t          ¦  «        }|  	                    t          t          ¦  «        t          |¦  «        ¦  «         |  	                    ||                     |¦  «        ¦  «         |  	                    |j        |                     |j        ¦  «        ¦  «         |  	                    |j        |                     |j        ¦  «        ¦  «         |  	                    ||                     |¦  «        ¦  «         d
d„}|  	                    ||                     |¦  «        ¦  «         d	S )z5
        L{twisted.python.rebuild.Sensitive}
        r   r   )Ú	Sensitivec                  ó   — e Zd Zdd„ZdS )ú2RebuildTests.test_Sensitive.<locals>.TestSensitiver   r   c                ó   — dS rk   r   r    s    r   Útest_methodz>RebuildTests.test_Sensitive.<locals>.TestSensitive.test_method¿   rl   r   Nr&   )r   r   r   r…   r   r   r   ÚTestSensitiverƒ   ¾   rm   r   r†   r   r   c                 ó   — dS )z&
            Dummy method
            Nr   r   r   r   Ú
myFunctionz/RebuildTests.test_Sensitive.<locals>.myFunctionÚ   rl   r   Nr&   )rb   r   Útwisted.python.rebuildr�   ÚrebuildUpToDateÚassertFalseÚneedRebuildUpdaterv   Ú	ExceptionrL   ÚreprÚlatestVersionOfr…   )r!   r   r�   r†   ÚtestSensitiveÚnewExceptionrˆ   s          r   Útest_SensitivezRebuildTests.test_Sensitive·   s»  € ð 	+Ð*Ð*Ð*Ð*Ð*Ø4Ð4Ð4Ð4Ð4Ð4ð	ð 	ð 	ð 	ð 	˜Iñ 	ô 	ð 	ð &˜™œˆØ×%Ò%Ñ'Ô'Ð'Ø×Ò˜×8Ò8Ñ:Ô:Ñ;Ô;Ð;ð +�wÔ*­9Ñ5Ô5ˆØ×Ò��i™œ­$¨|Ñ*<Ô*<Ñ=Ô=Ð=Ø×Ò˜ }×'DÒ'DÀ\Ñ'RÔ'RÑSÔSÐSð 	×ÒØÔ%Ø×)Ò)¨-Ô*CÑDÔDñ	
ô 	
ð 	
ð
 	×ÒØÔ%Ø×)Ò)¨-Ô*CÑDÔDñ	
ô 	
ð 	
ð
 	×Ò˜¨×(EÒ(EÀmÑ(TÔ(TÑUÔUÐUð	ð 	ð 	ð 	ð 	×Ò˜ ]×%BÒ%BÀ:Ñ%NÔ%NÑOÔOÐOÐOÐOr   Nr&   )r   r   r   r'   r8   r<   rP   rY   rg   rr   rx   r   r’   r   r   r   r)   r)   7   sÝ   € € € € € ðð ð)ð )ð )ð )ð&ð &ð &ð &ð%ð %ð %ð %ðB2ð 2ð 2ð 2ð"
ð 
ð 
ð 
ð,Nð Nð Nð Nð$+ð +ð +ð +ð5ð 5ð 5ð 5ð )Pð )Pð )Pð )Pð )Pð )Pr   r)   c                  ó2   — e Zd ZdZd	d„Zd	d„Zd	d„Zd	d„ZdS )
ÚNewStyleTestszB
    Tests for rebuilding new-style classes of various sorts.
    r   r   c                ó`   — t          j        d¦  «        | _        | j        t          j        d<   d S ©NÚwhipping)ÚtypesÚ
ModuleTypeÚmr6   Úmodulesr    s    r   r8   zNewStyleTests.setUpè   s(   € ÝÔ! *Ñ-Ô-ˆŒØ"&¤&�Œ�JÑÐÐr   c                ó$   — t           j        d= | `d S r–   )r6   r›   rš   r    s    r   r<   zNewStyleTests.tearDownì   s   € ÝŒK˜
Ð#ØˆFˆFˆFr   c                ój  — d}t          || j        j        ¦  «         | j                             ¦   «         }d|_        t          || j        j        ¦  «         t          j        |¦  «         |                      |j        d¦  «         |                      t          |¦  «        | j        j        ¦  «         dS )zF
        Try to rebuild a new style class with slots defined.
        z*class SlottedClass:
    __slots__ = ['a']
é   N)
Úexecrš   Ú__dict__ÚSlottedClassr@   r   rp   rL   ÚassertIsÚtype©r!   ÚclassDefinitionÚinsts      r   Ú
test_slotszNewStyleTests.test_slotsð   sš   € ð Lˆåˆ_˜dœfœoÑ.Ô.Ð.ØŒv×"Ò"Ñ$Ô$ˆØˆŒÝˆ_˜dœfœoÑ.Ô.Ð.ÝÔ˜tÑ$Ô$Ð$Ø×Ò˜œ Ñ#Ô#Ð#Ø�Š•d˜4‘j”j $¤&Ô"5Ñ6Ô6Ð6Ð6Ð6r   c                óˆ  — d}t          || j        j        ¦  «         | j                             ¦   «         }|                     d¦  «         t          || j        j        ¦  «         t          j        |¦  «         |                      |d         d¦  «         |                      t          |¦  «        | j        j        ¦  «         dS )z6
        Try to rebuild a base type subclass.
        z#class ListSubclass(list):
    pass
é   r   N)
rŸ   rš   r    ÚListSubclassÚappendr   rp   rL   r¢   r£   r¤   s      r   Útest_typeSubclasszNewStyleTests.test_typeSubclassþ   s¤   € ð Eˆåˆ_˜dœfœoÑ.Ô.Ð.ØŒv×"Ò"Ñ$Ô$ˆØ�Š�A‰ŒˆÝˆ_˜dœfœoÑ.Ô.Ð.ÝÔ˜tÑ$Ô$Ð$Ø×Ò˜˜aœ !Ñ$Ô$Ð$Ø�Š•d˜4‘j”j $¤&Ô"5Ñ6Ô6Ð6Ð6Ð6r   Nr&   )r   r   r   r'   r8   r<   r§   r¬   r   r   r   r”   r”   ã   sn   € € € € € ðð ð)ð )ð )ð )ðð ð ð ð7ð 7ð 7ð 7ð7ð 7ð 7ð 7ð 7ð 7r   r”   )Ú
__future__r   r/   r6   r˜   Útyping_extensionsr   rb   r   Útwisted.trial.unittestr   Ú r	   rW   rV   r   r   r   r   r   r{   r)   r”   r   r   r   ú<module>r±      sÉ  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 
€
€
€
Ø €€€à &Ð &Ð &Ð &Ð &Ð &à "Ð "Ð "Ð "Ð "Ð "Ø +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð àÔ€ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�#ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	ˆ#ˆsñ 	ô 	ð 	ð/ð /ð /ð /ð /ñ /ô /ð /ð" Ð ðiPð iPð iPð iPð iP�8ñ iPô iPð iPðX'7ð '7ð '7ð '7ð '7�Hñ '7ô '7ð '7ð '7ð '7r   