
    lg$              	       p   S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJr	  SSK
Jr  SSK
J
r
  SSKrSSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  \R*                  SS S:  r\R*                  SS S:  r\R0                  R3                  S5      r\R6                  R9                  S5      r\R6                  R9                  S5      =(       d    \r\R6                  R9                  S5      r\=(       d    \r \R6                  R9                  S5      r! " S S\"5      r# " S S\#" S\RH                  40 5      5      r$g)z
Tests for greenlet.

    N)collect)get_objects)active_count)sleep)time)greenlet)
getcurrent)get_pending_cleanup_count)get_total_main_greenlets   )	leakcheck   )      )r      winGITHUB_ACTIONSTRAVISAPPVEYORGREENLET_MANYLINUXc                       \ rS rSrS rSrg)TestCaseMetaClass$   c                 .   Sn[        UR                  5       5       Ha  u  pVUR                  S5      (       d  M  [        U5      (       d  M/  UR	                  U5        U(       a  [
        R                  " U5      nXcU'   Mc     [        R                  XX#5      $ )NTtest)	listitems
startswithcallablepopr   wrap_refcounttype__new__)cls	classnamebases	classDictcheck_totalrefcountkeyvalues          _/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/greenlet/tests/__init__.pyr#   TestCaseMetaClass.__new__'   st    
 #
 y01JC~~f%%(5//c"&%33E:E!&# 2 ||CE==     N)__name__
__module____qualname____firstlineno__r#   __static_attributes__r.   r-   r+   r   r   $   s    >r-   r   c                      ^  \ rS rSrSrSr  SS jr\S4S jrSr	Sr
SrSrS	 rU 4S
 jrU 4S jrS rS rSS jrSS jrSrU =r$ )TestCase:   gMbP?r   c                 f   U=(       d    U R                   nU=(       d    U R                  nU R                  n[        U5        [	        5       U R
                  -   n[        5       (       d-  [        5       U:  d  U R                  (       d  [        5       U:  a  [        U5        [	        5       U:  a8  [        S5        [        SUS[        5       5        [        SUS[        5       5        OB[        5       (       a  Mb  [        5       U:  a  Mr  U R                  (       d  [        5       U:  a  M  [        5         g )NzTime limit exceeded.zThreads: Waiting for onlyz-->zMGlets : Waiting for only)threads_before_testmain_greenlets_before_testcleanup_attempt_sleep_durationr   r   cleanup_max_sleep_secondsr
   active_thread_countexpect_greenlet_leakr   printr   )selfinitial_active_threadsinitial_main_greenlets
sleep_time
quit_afters        r+   wait_for_pending_cleanups"TestCase.wait_for_pending_cleanupsB   s     "8!S4;S;S!7!Z4;Z;Z88
 	jVd<<<
 *++&(+AA11025KK*v
",-13I02413I579 *++&(+AA11025KK 		r-   Tc                    ^ [        S5       H  n[        5         M     U(       a  [        U4S j[        5        5       5      $ [        U4S j[        5        5       5      $ )Nr   c              3   H   >#    U  H  n[        U5      TL d  M  S v   M     g7fr   N)r"   .0xkinds     r+   	<genexpr>)TestCase.count_objects.<locals>.<genexpr>j   s%      &A7d? &s   "	"c              3   N   >#    U  H  n[        UT5      (       d  M  S v   M     g7frH   )
isinstancerI   s     r+   rM   rN   p   s$      
"!T" A"s   %	%)ranger   sumr   )r?   rL   
exact_kind_s    `  r+   count_objectsTestCase.count_objectsd   sU     qAI  $    
 ]
 
 	
r-   r   Fc                 .    U R                  [        S5      $ )z:
Find all the greenlets and subclasses tracked by the GC.
F)rU   RawGreenlet)r?   s    r+   count_greenletsTestCase.count_greenlets{   s     !!+u55r-   c                    > [         TU ]  5         [        5         [        5       U l        [        5       U l        U R                  U R                  U R                  5        U R                  5       U l	        g N)
supersetUpr	   r<   r8   r   r9   rD   rY   greenlets_before_testr?   	__class__s    r+   r^   TestCase.setUp   sV     	#6#8 *B*D'&&t'?'?A`A`a%)%9%9%;"r-   c                    > [        U SS5      (       a  g U R                  U R                  U R                  5        [        TU ]  5         g )NskipTearDownF)getattrrD   r8   r9   r]   tearDownr`   s    r+   rf   TestCase.tearDown   s<    4//&&t'?'?A`A`ar-   c                 `    SS K n[        (       d  UR                  * UR                  * 4nU$ SnU$ )Nr   )r   l   	   l       )signalWINSIGABRTSIGSEGV)r?   ri   expected_exits      r+   ,get_expected_returncodes_for_aborted_process5TestCase.get_expected_returncodes_for_aborted_process   sD    J  ^^O
 ^^O
 
 	 r-   c                      [         R                  " 5       R                  5       R                  $ ! [         a  n[
        R                  " S5      UeSnAff = f)aH  
Return the current process's USS in bytes.

uss is available on Linux, macOS, Windows. Also known as
"Unique Set Size", this is the memory which is unique to a
process and which would be freed if the process was terminated
right now.

If this is not supported by ``psutil``, this raises the
:exc:`unittest.SkipTest` exception.
zuss not supportedN)psutilProcessmemory_full_infoussAttributeErrorunittestSkipTest)r?   es     r+   get_process_ussTestCase.get_process_uss   sJ    	@>>#446::: 	@##$78a?	@s   ,/ 
AAAc                    SS K n[        R                  R                  [        R                  R	                  [
        5      U5      n UR                  [        R                  U/SUR                  S9$ ! UR                   aO  nU(       aB  [        S5        [        SU5        [        S5        [        UR                  5        [        S5        e S nAff = f)Nr   zutf-8)encodingstderrz-----zFailed to run scriptz~~~~~z------)
subprocessospathjoindirname__file__check_outputsys
executableSTDOUTCalledProcessErrorr>   output)r?   script_nameshow_outputr~   scriptexs         r+   
run_scriptTestCase.run_script   s    GGOOH%

	**CNNF+C4;2<2C2C + E E ,, 	g,f5gbii h	s   *A2 2CA
CCc                 "   SS K nU R                  UR                  5       nU R                  USS9nUnS S S 5        Uc  U R	                  5       nU R                  WR                  R                  U5        UR                  $ ! , (       d  f       NS= f)Nr   F)r   )r~   assertRaisesr   r   rn   assertIn	exception
returncode)r?   r   	exitcodesr~   excr   __traceback_info__s          r+   assertScriptRaisesTestCase.assertScriptRaises   sy    z<<=__[e_DF!' > IIKIcmm..	:}} >=s   B  
B)r_   r9   r8   )NN)Tr\   )r/   r0   r1   r2   r:   r;   rD   r   rU   r_   r8   r9   r=   rY   r^   rf   rn   ry   r   r   r3   __classcell__)ra   s   @r+   r5   r5   :   so    
 &+" ! :>9= D "&$ 
$ !" 6<+Z@"* r-   r5   NewBase)%__doc__r   r   rv   gcr   r   	threadingr   r<   r   r   rq   r   rX   r	   greenlet._greenletr
   r    r   version_infoPY312PY313platformr   rj   environgetRUNNING_ON_GITHUB_ACTIONSRUNNING_ON_TRAVISRUNNING_ON_APPVEYORRUNNING_ON_CIRUNNING_ON_MANYLINUXr"   r   r5   r.   r-   r+   <module>r      s	   
 
    9    ,  8 7 !'!'	lle$JJNN+;< JJNN8,I0I jjnnZ0 !8%8zz~~&:; > >,v 			
 vr-   