§
    Ètºf#  ã                   óÎ   — 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	 d dl
mZ  G d„ de	j        ¦  «        Zd	d
dd	d
gd	d
igZ G d„ d¦  «        Z G d„ dej        ¦  «        ZdS )é    N)Údedent)Úsob)Ú	Ephemeral)Ú
components)Úunittestc                   ó   — e Zd ZdS )ÚDummyN©Ú__name__Ú
__module__Ú__qualname__© ó    úT/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/test/test_sob.pyr	   r	      ó   € € € € € Ø€Dr   r	   é   Úhello)r   r   c                   ó   — e Zd ZdS )Ú
FakeModuleNr
   r   r   r   r   r      r   r   r   c                   óP   — 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S )ÚPersistTestsc                 ó*  — t           D ]Š}t          j        |d¦  «        }d                     ¦   «         D ]^}|                     |¦  «         |                     d|z   ¬¦  «         t          j        d|z   |¦  «        }|                      ||¦  «         Œ_Œ‹d S )NÚ úsource picklezpersisttest.©Úfilename)Úobjectsr   Ú
PersistentÚsplitÚsetStyleÚsaveÚloadÚassertEqual)ÚselfÚoÚpÚstyleÚo1s        r   Ú
testStyleszPersistTests.testStyles!   s¦   € Ýð 	(ð 	(ˆAÝ”˜q "Ñ%Ô%ˆAØ(×.Ò.Ñ0Ô0ð (ð (�Ø—
’
˜5Ñ!Ô!Ð!Ø—’ °Ñ 6�Ñ7Ô7Ð7Ý”X˜n¨uÑ4°eÑ<Ô<�Ø× Ò   BÑ'Ô'Ð'Ð'ð	(ð	(ð 	(r   c                 ó2  — t          ¦   «         }d|_        |                     t          j        t          j        |d¦  «        ¦  «         d                     ¦   «         D ]¹}t          j        |¦  «                             |¦  «         t          j        |¦  «                             d|z   ¬¦  «         t          j	        d|z   |¦  «        }|  
                    |j        |j        ¦  «         |  
                    t          j        |¦  «        j        |¦  «         Œºd S )Né   Úlalar   zlala.r   )r	   ÚfooÚsetComponentr   ÚIPersistabler   r   r    r!   r"   r#   r'   )r$   r%   r'   r(   s       r   ÚtestStylesBeingSetzPersistTests.testStylesBeingSet*   sù   € Ý‰GŒGˆØˆŒØ	�Š•sÔ'­¬¸¸6Ñ)BÔ)BÑCÔCÐCØ$×*Ò*Ñ,Ô,ð 	@ð 	@ˆEÝÔ˜QÑÔ×(Ò(¨Ñ/Ô/Ð/ÝÔ˜QÑÔ×$Ò$¨g¸©oÐ$Ñ>Ô>Ð>Ý”˜' E™/¨5Ñ1Ô1ˆBØ×Ò˜QœU B¤FÑ+Ô+Ð+Ø×Ò�SÔ-¨bÑ1Ô1Ô7¸Ñ?Ô?Ð?Ð?ð	@ð 	@r   c                 óv   — t          j        dd¦  «        }|                      t          |j        dd¬¦  «         dS )z?
        Calling save() with a passphrase is an error.
        NÚobjectzfilename.pickleÚabc)Ú
passphrase)r   Ú
PersistantÚassertRaisesÚ	TypeErrorr!   )r$   r&   s     r   ÚtestPassphraseErrorz PersistTests.testPassphraseError5   s;   € õ ŒN˜4 Ñ*Ô*ˆØ×Ò�) Q¤VÐ->È5ÐÑQÔQÐQÐQÐQr   c                 óì  — g d¢}t          j        |d¦  «        }d                     ¦   «         D ]Å}|                     |¦  «         |                     ¦   «          t          j        d|d         z   |¦  «        }|                      ||¦  «         d                     ¦   «         D ]Q}|                     |¦  «         t          j        d|z   dz   |d         z   |¦  «        }|                      ||¦  «         ŒRŒÆd S )	N©r   é   é   r2   r   z	object.tar   z	lala lolozobject-z.ta)r   r   r   r    r!   r"   r#   )r$   r%   r&   r'   r(   Útags         r   Ú	testNameszPersistTests.testNames<   sû   € ØˆIˆIˆÝŒN˜1˜hÑ'Ô'ˆØ$×*Ò*Ñ,Ô,ð 	(ð 	(ˆEØ�JŠJ�uÑÔÐØ�FŠF‰HŒHˆHÝ”˜+¨¨a¬Ñ0°%Ñ8Ô8ˆBØ×Ò˜Q Ñ#Ô#Ð#Ø"×(Ò(Ñ*Ô*ð (ð (�Ø—’�s‘”�Ý”X˜i¨#™o°Ñ5¸¸a¼Ñ@À%ÑHÔH�Ø× Ò   BÑ'Ô'Ð'Ð'ð(ð	(ð 	(r   c                 óÚ   — t          dd¦  «        5 }|                     d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dd¦  «        }|                      |g d¢¦  «         d S )Nzpersisttest.pythonÚwzfoo=[1,2,3] r-   r:   )ÚopenÚwriter   ÚloadValueFromFiler#   )r$   Úfr%   s      r   Ú
testPythonzPersistTests.testPythonI   sª   € ÝÐ&¨Ñ,Ô,ð 	$°Ø�GŠG�NÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$åÔ!Ð"6¸Ñ>Ô>ˆØ×Ò˜˜I˜I˜IÑ&Ô&Ð&Ð&Ð&s   ‘3³7º7c                 ó‚  — |                       t          t          j        d¦  «         |                      dt          j        d¦  «        ¦  «         |                      dt          j        d¦  «        ¦  «         |                      dt          j        d¦  «        ¦  «         |                      dt          j        d¦  «        ¦  «         |                      dt          j        d¦  «        ¦  «         |                      d	t          j        d
¦  «        ¦  «         |                      d	t          j        d¦  «        ¦  «         d S )Nz	file.blahÚpythonzfile.pyzfile.tacz	file.etacÚpicklezfile.tapz	file.etapÚsourcezfile.tasz	file.etas)r6   ÚKeyErrorr   Ú	guessTyper#   ©r$   s    r   ÚtestTypeGuesserzPersistTests.testTypeGuesserO   s  € Ø×Ò�(¥C¤M°;Ñ?Ô?Ð?Ø×Ò˜¥3¤=°Ñ#;Ô#;Ñ<Ô<Ð<Ø×Ò˜¥3¤=°Ñ#<Ô#<Ñ=Ô=Ð=Ø×Ò˜¥3¤=°Ñ#=Ô#=Ñ>Ô>Ð>Ø×Ò˜¥3¤=°Ñ#<Ô#<Ñ=Ô=Ð=Ø×Ò˜¥3¤=°Ñ#=Ô#=Ñ>Ô>Ð>Ø×Ò˜¥3¤=°Ñ#<Ô#<Ñ=Ô=Ð=Ø×Ò˜¥3¤=°Ñ#=Ô#=Ñ>Ô>Ð>Ð>Ð>r   c                 ó¢  — d| j         _        |                      ¦   «         }t          j        |¦  «         t          j                             |d¦  «        }dat          |d¦  «        5 }| 	                    t          d¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   t          j        |d¦  «        }|                      |t          ¦  «         |                      |d         d¦  «         |                      |d         d	¦  «         |                      t          t           ¦  «         |                      t          j        t           ¦  «         bdS )
zñ
        L{_EverythingEphermal.__getattr__} will proxy the __main__ module as an
        L{Ephemeral} object, and during load will be transparent, but after
        load will return L{Ephemeral} objects from any accessed attributes.
        r   zpersisttest.ee_getattrNr@   a†  
            app = []
            import __main__
            app.append(__main__.testMainModGetattr == 1)
            try:
                __main__.somethingElse
            except AttributeError:
                app.append(True)
            else:
                app.append(False)
            from twisted.test import test_sob
            test_sob.mainWhileLoading = __main__
            rI   r   zExpected attribute not set.zUnexpected attribute set.)ÚfakeMainÚtestMainModGetattrÚmktempÚosÚmkdirÚpathÚjoinÚmainWhileLoadingrA   rB   r   r   r"   ÚassertIsInstanceÚlistÚ
assertTruer   ÚsomethingElse)r$   Údirnamer   rD   Úloadeds        r   ÚtestEverythingEphemeralGetattrz+PersistTests.testEverythingEphemeralGetattrY   sh  € ð ,-ˆŒÔ(à—+’+‘-”-ˆÝ
Œ�ÑÔÐå”7—<’< Ð)AÑBÔBˆð  ÐÝ�(˜CÑ Ô ð 	 AØ�GŠGÝðñô ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ& ”˜( HÑ-Ô-ˆØ×Ò˜f¥dÑ+Ô+Ð+Ø�Š˜˜qœ	Ð#@ÑAÔAÐAØ�Š˜˜qœ	Ð#>Ñ?Ô?Ð?Ø×ÒÕ.µ	Ñ:Ô:Ð:Ø×ÒÕ.Ô<½iÑHÔHÐHØÐÐs   Á'#BÂBÂBc                 óæ  — d| j         _        |                      ¦   «         }t          j        |¦  «         t          j                             |d¦  «        }t          |d¦  «        5 }|                     d¦  «         |                     d¦  «         |                     d¦  «         ddd¦  «         n# 1 swxY w Y   t          j
        |d¦  «         |                      | j         j        d¦  «         dS )	zU
        Verify that _EverythingEphemeral.__setattr__ won't affect __main__.
        r   zpersisttest.ee_setattrr@   zimport __main__
z __main__.testMainModSetattr = 2
zapp = None
NrI   )rO   ÚtestMainModSetattrrQ   rR   rS   rT   rU   rA   rB   r   r"   r#   ©r$   r[   r   rD   s       r   ÚtestEverythingEphemeralSetattrz+PersistTests.testEverythingEphemeralSetattrƒ   s  € ð ,-ˆŒÔ(à—+’+‘-”-ˆÝ
Œ�ÑÔÐå”7—<’< Ð)AÑBÔBˆÝ�(˜CÑ Ô ð 	$ AØ�GŠGÐ'Ñ(Ô(Ð(Ø�GŠGÐ7Ñ8Ô8Ð8Ø�GŠG�NÑ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$õ
 	Œ�˜8Ñ$Ô$Ð$à×Ò˜œÔ9¸1Ñ=Ô=Ð=Ð=Ð=s   Á%A B1Â1B5Â8B5c                 óÎ  — |                       ¦   «         }t          j        |¦  «         t          j                             |d¦  «        }t          |d¦  «        5 }|                     d¦  «         ddd¦  «         n# 1 swxY w Y   |                      t          t          j
        |d¦  «         |                      t          t          j        d         ¦  «        t          ¦  «         dS )zW
        Test that an exception during load() won't cause _EE to mask __main__
        zpersisttest.ee_exceptionr@   zraise ValueError
NrI   Ú__main__)rQ   rR   rS   rT   rU   rA   rB   r6   Ú
ValueErrorr   r"   r#   ÚtypeÚsysÚmodulesr   r`   s       r   Ú testEverythingEphemeralExceptionz-PersistTests.testEverythingEphemeralException–   sõ   € ð —+’+‘-”-ˆÝ
Œ�ÑÔÐÝ”7—<’< Ð)CÑDÔDˆå�(˜CÑ Ô ð 	* AØ�GŠGÐ(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	×Ò�*¥c¤h°¸(ÑCÔCÐCØ×Ò��cœk¨*Ô5Ñ6Ô6½
ÑCÔCÐCÐCÐCs   ÁA;Á;A?ÂA?c                 óx   — t           j        d         | _        t          ¦   «         x| _        t           j        d<   dS )zi
        Replace the __main__ module with a fake one, so that it can be mutated
        in tests
        rc   N)rf   rg   ÚrealMainr   rO   rL   s    r   ÚsetUpzPersistTests.setUp¤   s/   € õ
 œ JÔ/ˆŒÝ2<±,´,Ð>ˆŒ�œ JÑ/Ð/Ð/r   c                 ó.   — | j         t          j        d<   dS )z8
        Restore __main__ to its original value
        rc   N)rj   rf   rg   rL   s    r   ÚtearDownzPersistTests.tearDown¬   s   € ð #'¤-�Œ�JÑÐÐr   N)r   r   r   r)   r0   r8   r>   rE   rM   r]   ra   rh   rk   rm   r   r   r   r   r       sÃ   € € € € € ð(ð (ð (ð	@ð 	@ð 	@ðRð Rð Rð(ð (ð (ð'ð 'ð 'ð?ð ?ð ?ð(ð (ð (ðT>ð >ð >ð&Dð Dð Dð?ð ?ð ?ð0ð 0ð 0ð 0ð 0r   r   )rR   rf   Útextwrapr   Útwisted.persistedr   Útwisted.persisted.stylesr   Útwisted.pythonr   Útwisted.trialr   ÚComponentizedr	   r   r   ÚTestCaser   r   r   r   ú<module>ru      s)  ðð
 
€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø .Ð .Ð .Ð .Ð .Ð .Ø %Ð %Ð %Ð %Ð %Ð %Ø "Ð "Ð "Ð "Ð "Ð "ð	ð 	ð 	ð 	ð 	ˆJÔ$ñ 	ô 	ð 	ð
 ØØØˆ€LØˆ€Lð€ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ðP0ð P0ð P0ð P0ð P0�8Ô$ñ P0ô P0ð P0ð P0ð P0r   