§
    Ètºfµ  ã                  ó²  — d Z ddlmZ ddlmZ 	 ddlmZ dZddlm	Z	 ddl
mZmZ ddlmZ dd„Zd                     d„  e	j        dd¦  «                             d¦  «        D ¦   «         ¦  «        Z ed¦  «        Ze�eneZn# e$ r dZdZY nw xY wddlmZ ddlmZ ddlmZmZ esdZedu pedvZd e e¦  «        › �Z!esddlm"Z"  G d„ dee¦  «        Z#dS )z\
GObject Introspection reactor tests; i.e. `gireactor` module for gio/glib/gtk
integration.
é    )Úannotations)ÚskipIf)ÚGioT)Úenviron)Úget_required_versionÚrequire_version)Ú	gireactorÚsomeVersionÚstrÚreturnc                ót   — 	 t          d| ¦  «         dS # t          $ r}t          |¦  «        cY d }~S d }~ww xY w)NÚGtkÚ )r   Ú
ValueErrorr   )r
   Úves     úc/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/test/test_gireactor.pyÚrequireEachr      sT   € ð	Ý˜E ;Ñ/Ô/Ð/ð �2øõ ð 	ð 	ð 	Ý�r‘7”7ˆNˆNˆNˆNˆNˆNøøøøð	øøøs   ‚ ”
7ž2¬7²7z, c              #  ó4   K  — | ]}t          |¦  «        V — Œd S )N)r   )Ú.0Úversions     r   ú	<genexpr>r   "   s>   è è € ð ð àõ 	�GÑÔðð ð ð ð ð ó    ÚTWISTED_TEST_GTK_VERSIONz4.0,3.0ú,r   NF)ÚReactorAlreadyRunning)ÚReactorBuilder)ÚSkipTestÚTestCasez0GObject Introspection `gi` module not importable)z3.0z4.0zUnknown GTK version: )r   c                  óš   — e Zd ZdZdd„Zdd	„Z eee¦  «        dd
„¦   «         Z	 eee¦  «        dd„¦   «         Z
dd„Zdd„Zdd„Zdd„ZdS )ÚGApplicationRegistrationTestsa  
    GtkApplication and GApplication are supported by
    L{twisted.internet.gtk3reactor} and L{twisted.internet.gireactor}.

    We inherit from L{ReactorBuilder} in order to use some of its
    reactor-running infrastructure, but don't need its test-creation
    functionality.
    ÚappúGio.ApplicationÚreactorúgireactor.GIReactorr   ÚNonec                óD  ‡‡‡— t          |d¦  «        st          d¦  «        ‚g Šdˆˆfd„Šdˆˆˆfd„}|                     d	|¦  «         |                     ¦   «          ‰                     |¦  «         t          j        | ‰¦  «         |                      ‰d
dg¦  «         dS )z˜
        Register the app, run the reactor, make sure app was activated, and
        that reactor was running, and that reactor can be stopped.
        Úquitz Version of PyGObject is too old.r   r%   c                 óZ   •— ‰                      d¦  «         ‰                      ¦   «          d S )NÚstopped)ÚappendÚstop)r#   Úresults   €€r   r+   z6GApplicationRegistrationTests.runReactor.<locals>.stopR   s&   ø€ Ø�MŠM˜)Ñ$Ô$Ð$Ø�LŠL‰NŒNˆNˆNˆNr   ÚwidgetÚobjectc                ó^   •— ‰                      d¦  «         ‰                     d‰¦  «         d S )NÚ	activatedr   )r*   Ú	callLater)r-   r#   r,   r+   s    €€€r   Úactivatez:GApplicationRegistrationTests.runReactor.<locals>.activateV   s1   ø€ Ø�MŠM˜+Ñ&Ô&Ð&Ø×Ò˜a Ñ&Ô&Ð&Ð&Ð&r   r2   r0   r)   N©r   r%   )r-   r.   r   r%   )Úhasattrr   ÚconnectÚholdÚregisterGApplicationr   Ú
runReactorÚassertEqual)Úselfr!   r#   r2   r,   r+   s     ` @@r   r8   z(GApplicationRegistrationTests.runReactorD   så   øøø€ õ �s˜FÑ#Ô#ð 	?ÝÐ=Ñ>Ô>Ð>àˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	�Š�J Ñ)Ô)Ð)ð 	�Š‰
Œ
ˆ
à×$Ò$ SÑ)Ô)Ð)ÝÔ! $¨Ñ0Ô0Ð0Ø×Ò˜ +¨yÐ!9Ñ:Ô:Ð:Ð:Ð:r   c                ó´   — d„ | _         |                      ¦   «         }t          j        dt          j        j        ¬¦  «        }|                      ||¦  «         dS )zR
        L{Gio.Application} instances can be registered with a gireactor.
        c                 ó,   — t          j        d¬¦  «        S ©NF)ÚuseGtk©r	   Ú	GIReactor© r   r   ú<lambda>zIGApplicationRegistrationTests.test_gApplicationActivate.<locals>.<lambda>j   ó   € ¥iÔ&9ÀÐ&GÑ&GÔ&G€ r   ú!com.twistedmatrix.trial.gireactor©Úapplication_idÚflagsN)ÚreactorFactoryÚbuildReactorr   ÚApplicationÚApplicationFlagsÚ
FLAGS_NONEr8   ©r:   r#   r!   s      r   Útest_gApplicationActivatez7GApplicationRegistrationTests.test_gApplicationActivatef   s_   € ð HÐGˆÔØ×#Ò#Ñ%Ô%ˆÝŒoØ>ÝÔ&Ô1ð
ñ 
ô 
ˆð
 	�Š˜˜WÑ%Ô%Ð%Ð%Ð%r   c                óŒ  — ddl m}m}m} |                      |t
          j        ¦  «         |                      |t
          j        ¦  «         |                      |t
          j        ¦  «         |                      ¦   «         }|  	                    t          |¦  «        d¦  «         |                      d|d         d         ¦  «         dS )z‡
        L{twisted.internet.gtk3reactor} is now just a set of compatibility
        aliases for L{twisted.internet.GIReactor}.
        r   )ÚGtk3ReactorÚPortableGtk3ReactorÚinstallé   z+twisted.internet.gtk3reactor was deprecatedÚmessageN)Útwisted.internet.gtk3reactorrP   rQ   rR   ÚassertIsr	   r@   ÚPortableGIReactorÚflushWarningsr9   ÚlenÚassertIn)r:   rP   rQ   rR   Úwarningss        r   Útest_gtkAliasesz-GApplicationRegistrationTests.test_gtkAliasess   s×   € ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	�Š�k¥9Ô#6Ñ7Ô7Ð7Ø�ŠÐ)­9Ô+FÑGÔGÐGØ�Š�g�yÔ0Ñ1Ô1Ð1Ø×%Ò%Ñ'Ô'ˆØ×Ò�˜X™œ¨Ñ*Ô*Ð*Ø�ŠØ9¸8ÀA¼;ÀyÔ;Qñ	
ô 	
ð 	
ð 	
ð 	
r   c                óÆ   — t           j        | _        |                      ¦   «         }t	          j        dt          j        j        ¬¦  «        }|  	                    ||¦  «         dS )zT
        L{Gtk.Application} instances can be registered with a gtk3reactor.
        z#com.twistedmatrix.trial.gtk3reactorrE   N)
r	   r@   rH   rI   r   rJ   r   rK   rL   r8   rM   s      r   Útest_gtkApplicationActivatez9GApplicationRegistrationTests.test_gtkApplicationActivateˆ   s^   € õ
 (Ô1ˆÔØ×#Ò#Ñ%Ô%ˆÝŒoØ@ÝÔ&Ô1ð
ñ 
ô 
ˆð 	�Š˜˜WÑ%Ô%Ð%Ð%Ð%r   c                óÜ   — t           j        | _        |                      ¦   «         }t	          j        dt          j        j        ¬¦  «        }|                      t          |j
        |¦  «         dS )zo
        L{gireactor.PortableGIReactor} doesn't support application
        registration at this time.
        rD   rE   N)r	   rW   rH   rI   r   rJ   rK   rL   ÚassertRaisesÚNotImplementedErrorr7   rM   s      r   Útest_portablez+GApplicationRegistrationTests.test_portable•   sf   € õ
 (Ô9ˆÔØ×#Ò#Ñ%Ô%ˆÝŒoØ>ÝÔ&Ô1ð
ñ 
ô 
ˆð 	×ÒÕ-¨wÔ/KÈSÑQÔQÐQÐQÐQr   c                ó  — d„ | _         |                      ¦   «         }t          ¦   «         }|                      t          |j        |¦  «        }|                      |j        d                              d¦  «        ¦  «         dS )zp
        Older versions of PyGObject lack C{Application.quit}, and so won't
        allow registration.
        c                 ó,   — t          j        d¬¦  «        S r=   r?   rA   r   r   rB   z;GApplicationRegistrationTests.test_noQuit.<locals>.<lambda>§   rC   r   r   zApplication registration is notN)	rH   rI   r.   r`   ÚRuntimeErrorr7   Ú
assertTrueÚargsÚ
startswith)r:   r#   r!   Úexcs       r   Útest_noQuitz)GApplicationRegistrationTests.test_noQuit¢   sq   € ð
 HÐGˆÔØ×#Ò#Ñ%Ô%ˆå‰hŒhˆØ×Ò¥¨gÔ.JÈCÑPÔPˆØ�Š˜œ œ×.Ò.Ð/PÑQÔQÑRÔRÐRÐRÐRr   c                óô   ‡ ‡‡— d„ ‰ _         ‰                      ¦   «         Št          j        dt          j        j        ¬¦  «        Šd	ˆˆˆ fd„}‰                     d|¦  «         t          j        ‰ ‰¦  «         dS )
zp
        It is not possible to register a C{Application} after the reactor has
        already started.
        c                 ó,   — t          j        d¬¦  «        S r=   r?   rA   r   r   rB   zIGApplicationRegistrationTests.test_cantRegisterAfterRun.<locals>.<lambda>³   rC   r   rD   rE   r   r%   c                 ó´   •— ‰                      t          ‰j        ‰¦  «        } ‰                     | j        d         d¦  «         ‰                     ¦   «          d S )Nr   z5Can't register application after reactor was started.)r`   r   r7   r9   rg   r+   )ri   r!   r#   r:   s    €€€r   ÚtryRegisterzLGApplicationRegistrationTests.test_cantRegisterAfterRun.<locals>.tryRegisterº   s[   ø€ Ø×#Ò#Ý% wÔ'CÀSñô ˆCð ×ÒØ”˜”ÐTñô ð ð �LŠL‰NŒNˆNˆNˆNr   r   Nr3   )	rH   rI   r   rJ   rK   rL   r1   r   r8   )r:   rn   r!   r#   s   ` @@r   Útest_cantRegisterAfterRunz7GApplicationRegistrationTests.test_cantRegisterAfterRun®   sŸ   øøø€ ð
 HÐGˆÔØ×#Ò#Ñ%Ô%ˆÝŒoØ>ÝÔ&Ô1ð
ñ 
ô 
ˆð
	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	×Ò˜!˜[Ñ)Ô)Ð)ÝÔ! $¨Ñ0Ô0Ð0Ð0Ð0r   c                ó€  — d„ | _         |                      ¦   «         }t          j        dt          j        j        ¬¦  «        }|                     |¦  «         t          j        dt          j        j        ¬¦  «        }|                      t          |j        |¦  «        }|  	                    |j
        d         d¦  «         dS )zN
        It is not possible to register more than one C{Application}.
        c                 ó,   — t          j        d¬¦  «        S r=   r?   rA   r   r   rB   zFGApplicationRegistrationTests.test_cantRegisterTwice.<locals>.<lambda>Ê   rC   r   rD   rE   z"com.twistedmatrix.trial.gireactor2r   z2Can't register more than one application instance.N)rH   rI   r   rJ   rK   rL   r7   r`   re   r9   rg   )r:   r#   r!   Úapp2ri   s        r   Útest_cantRegisterTwicez4GApplicationRegistrationTests.test_cantRegisterTwiceÆ   sÅ   € ð HÐGˆÔØ×#Ò#Ñ%Ô%ˆÝŒoØ>ÝÔ&Ô1ð
ñ 
ô 
ˆð 	×$Ò$ SÑ)Ô)Ð)ÝŒØ?ÝÔ&Ô1ð
ñ 
ô 
ˆð ×Ò¥¨gÔ.JÈDÑQÔQˆØ×ÒØŒH�QŒKÐMñ	
ô 	
ð 	
ð 	
ð 	
r   N)r!   r"   r#   r$   r   r%   r3   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   rN   r   Ú	noGtkSkipÚnoGtkMessager\   r^   rb   rj   ro   rs   rA   r   r   r    r    :   sù   € € € € € ðð ð ;ð  ;ð  ;ð  ;ðD&ð &ð &ð &ð €VˆI�|Ñ$Ô$ð
ð 
ð 
ñ %Ô$ð
ð( €VˆI�|Ñ$Ô$ð
&ð 
&ð 
&ñ %Ô$ð
&ðRð Rð Rð Rð
Sð 
Sð 
Sð 
Sð1ð 1ð 1ð 1ð0
ð 
ð 
ð 
ð 
ð 
r   r    )r
   r   r   r   )$rw   Ú
__future__r   Úunittestr   Úgi.repositoryr   Ú
giImportedÚosr   Úgir   r   Útwisted.internetr	   r   ÚjoinÚgetÚsplitÚerrorMessageÚactualVersionÚ
gtkVersionÚImportErrorÚtwisted.internet.errorr   Ú#twisted.internet.test.reactormixinsr   Útwisted.trial.unittestr   r   Úskiprx   Úreprry   r   r    rA   r   r   ú<module>r�      s  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ðNØ!Ð!Ð!Ð!Ð!Ð!ð
 €JàÐÐÐÐÐà8Ð8Ð8Ð8Ð8Ð8Ð8Ð8à*Ð*Ð*Ð*Ð*Ð*ðð ð ð ð —9’9ð ð à"�w”{Ð#=¸yÑIÔI×OÒOÐPSÑTÔTðñ ô ñ ô €Lð
 )Ð(¨Ñ/Ô/€MØ"/Ð";��À€J€Jøð5 ð ð ð Ø€JØ€J€J€Jðøøøð: 9Ð 8Ð 8Ð 8Ð 8Ð 8Ø >Ð >Ð >Ð >Ð >Ð >Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð ð >Ø=€Dà˜4ÐÐF Z°~Ð%E€	Ø9 t t¨JÑ'7Ô'7Ð9Ð9€àð "Ø!Ð!Ð!Ð!Ð!Ð!ð^
ð ^
ð ^
ð ^
ð ^
 N°Hñ ^
ô ^
ð ^
ð ^
ð ^
s   �B Â	BÂB