
    <|h-                        d dl mZ d dl mZ d dlZd dlZd dl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 d dlmZ  G d	 d
e      Z e       Zddgdg ddededee
j(                  rdndedeiZg ddgdZh dZdgZg Zej4                  j7                  d      rej9                  d       dZd Z G d de      Zd  Z  e         e!d!k(  r ejD                          yy)"    )print_function)absolute_importN)six)modules)PLATFORM_SPECIFIC_SUFFIXES)debug)MAPPINGc                       e Zd Zd Zy)ANYc                      y)NT )selfitems     W/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/tests/test__all__.py__contains__zANY.__contains__   s        N)__name__
__module____qualname__r   r   r   r   r   r      s    r   r   socketCAPIthread)allocateexit_threadinterrupt_main	start_newselectos	threading__builtin__builtinssignal)create_connectionRAND_addRAND_egdRAND_status_posixsubprocess)r   
subprocess>   gevent._ffigevent._utilgevent._tblibgevent._compatgevent._patchergevent._corecffigevent.threadinggevent._socketcommongevent._fileobjectposixgevent._fileobjectcommongevent.resolver._addressesgevent.resolver._hostsfilezgevent._queuewinzgevent.signalz<marker object>c                 B     t        j                          fd       }|S )Nc                 j    | j                   s| j                  d| j                  z          |        y )NzNeed stdlib counterpart to %s)stdlib_moduleskipTestmodname)r   fs    r   mz(skip_if_no_stdlib_counterpart.<locals>.mU   s)    !!MM9DLLHI	$r   )	functoolswraps)r;   r<   s   ` r   skip_if_no_stdlib_counterpartr?   T   s%    __Q 
 Hr   c                       e Zd ZdZdZdZdZdZed        Z	d Z
d Zd Zd Zed        Zed	        Zed
        Zed        Zed        Zy)AbstractTestMixinNFc           	      :   | j                   }|j                  t              rt        j                  d|z        t        j                         5  t        j                  dt               	 t        j                  |      | _        	 d d d        t        | j                  dd       | _        t        | j                  dg       | _        t        | j                  dg       | _        t'        j(                  |      | _        | j*                  	 t-        | j*                        | _        d| _        t        | j.                  dd       | _        | j2                  od	| _        t5        | j.                        D cg c]C  }|j7                  d
      s0t9        t        | j.                  |      t:        j<                        s|E c}| _        y y y # t        $ r. |t        j                  v rd|z  }t        j                  |       w xY w# 1 sw Y   yxY wc c}w # t        $ r Y y w xY w)NzModule %s is platform specificignorezUnable to import %s__implements____imports____extensions__T__all__F_)r:   endswithr   unittestSkipTestwarningscatch_warningssimplefilterDeprecationWarning	importlibimport_modulemoduleImportErrorr   OPTIONAL_MODULESgetattrrD   rE   rF   r	   getstdlib_name
__import__r8   stdlib_has_all
stdlib_alldir
startswith
isinstancetypes
ModuleType)clsr:   msgnames       r   
setUpClasszAbstractTestMixin.setUpClassd   s   ++67##$Dw$NOO $$& 	!!(,>?&44W=
	 %SZZ1A4H!#**mR@$SZZ1A2F!++g.??&$.s$?! &*"!():):It!L>>)).C& %((9(9$:& #s3 *733D3Dd+KUM]M] ^ &CN * '  g666/'9C"++C00			 	4&  s7   G<*GH /AH	7G99G<<H	HHc                     t        | j                  d      s^| j                  | j                  t        v xs | j                  j                  d      d       | j                  d| j                  z         y y )NrG   zgevent.monkey.zModule has no allz%s Needs __all__)hasattrrR   
assertTruer:   NO_ALLr\   r9   r   s    r   skipIfNoAllzAbstractTestMixin.skipIfNoAll   s]    t{{I.OO&S$,,*A*ABR*S#
 MM,t||;< /r   c                    | j                          i }t        j                  d| j                  z  |       |j	                  dd        d | _        | j                  t        |      t        | j                  j                               | j                  t        |      t        | j                  j                               y )Nzfrom %s import *__builtins__)ri   r   exec_r:   popmaxDiffassertEqualsetrR   rG   sorted)r   namess     r   test_allzAbstractTestMixin.test_all   s     			$t||3U;		.$' 	US)<)<%=>t{{/B/B(CDr   c           	         | j                          t        | j                  xs d      t        | j                  xs d      z   t        | j                  xs d      z   }	 | j                  t        |      t        | j                  j                               y # t        $ r! | j                  d| j                  z         Y y t        $ r3 t        d|d| j                  j                  d| j                        w xY w)Nr   z'Module %s fails the all formula; fix itzUnable to sort z
 from all z in )ri   tuplerD   rE   rF   ro   rq   rR   rG   AssertionErrorr9   r:   	TypeError)r   all_calculateds     r   test_all_formulaz"AbstractTestMixin.test_all_formula   s     $%%+,D$$+,-D''-2./ 	
	VN3#DKK$7$78: 	TMMCdllRS 	 "DKK$7$7 	s   8B 'C<;C<c           
          | j                   t        v ry | j                  L| j                  ?t	        | j                   d| j
                  d| j                  d| j                  d      y y )Nz (z) has __implements__ (z+) but no stdlib counterpart module exists ())r:   ALLOW_IMPLEMENTSrD   r8   rv   rR   rW   rh   s    r   "test_implements_presence_justifiedz4AbstractTestMixin.test_implements_presence_justified   sf     <<++*t/A/A/I <<d.A.A4CSCSUV V 0J*r   c           	      N   t        | j                  xs d      t        | j                        z   D ]s  }|| j                  v r|t        j                  | j                  d      v r5|t        | j                        v rMt        |d| j                  d| j                  d       y )Nr   z is not found in z.__all__ nor in dir(r{   )
ru   rD   rE   rZ   COULD_BE_MISSINGrV   rW   r[   r8   rv   )r   rb   s     r   $test_implements_subset_of_stdlib_allz6AbstractTestMixin.test_implements_subset_of_stdlib_all   s     $--34uT=M=M7NN 	BDt&'++D,<,<bAAs4--.. SWY]YkYkmqmm  "A  B  B	Br   c                    | j                   xs dD ]A  }t        | j                  |      }	 t        | j                  |      }| j	                  ||       C y # t
        $ r& |t        j                  | j                  g       vr Y sw xY w)Nr   )	rD   rU   rR   r8   assertIsNotAttributeErrorr   rV   rW   r   rb   r   stdlib_items       r   #test_implements_actually_implementsz5AbstractTestMixin.test_implements_actually_implements   s    
 ''-2 	D4;;-D%d&8&8$?  {3		
 " /33D4D4DbII Js   (A,BBc                     | j                   D ]@  }t        | j                  |      }t        | j                  |      }| j	                  ||       B y )N)rE   rU   rR   r8   assertIsr   s       r   test_imports_actually_importsz/AbstractTestMixin.test_imports_actually_imports   sI     $$ 	-D4;;-D!$"4"4d;KMM$,	-r   c                 B   | j                   t        v ry | j                  D ]4  }	 t        | j                  |      rt        d|d| j                        6 y # t        $ r=}t        d|d|d| j                  d| j                  d| j                   
      d }~ww xY w)N'z&' is not an extension, it is found in zGot TypeError (z
) getting z (of z) from /)r:   EXTRA_EXTENSIONSrF   re   r8   rv   rw   )r   rb   exs      r   test_extensions_actually_extendz1AbstractTestMixin.test_extensions_actually_extend   s    
 <<++'' 	D4--t4(d00*   5	  $D$"5"5t7I7I4<< s   1A	B!8BBc                    g }| j                   D ]-  }|t        | j                  dg       vs|j                  |       / | j                  s2|d d  D ]*  }t        | j                  |      s|j                  |       , t        j                  | j                        }|^g }|D ]U  }||v r>t        | j                  |t              t        u s)t        d| j                  d|       E|j                  |       W |}|r`| j                  r*d| j                  d| j                  d|}t        |      d| j                  d| j                  d|}t        |      y )	NrG   zIncompleteImplWarning: .z%The following items
              in z.__all__
are missing from z:
                 z%The following items
          in dir(z)
are missing from )rZ   rU   rR   appendrY   re   removeNOT_IMPLEMENTEDrV   rW   _MISSINGr   r:   r8   rv   )r   missedrb   not_implementedresultra   s         r   test_completenessz#AbstractTestMixin.test_completeness   sP   
 OO 	$D74;;	2>>d#	$
 ""q	 (4;;-MM$'(
 *--d.>.>?&F (?* t{{D(;xGdSTMM$'( F"" ,,dkk6C !%% # ,,dkk6C !%% r   )r   r   r   r:   rY   rZ   rW   r8   classmethodrc   ri   rs   ry   r}   r?   r   r   r   r   r   r   r   r   rA   rA   ]   s    GNJKM% %N=E0	V #
B #
B # # #- #- # #( #)& #)&r   rA   c                  @   t        j                  ddd      D ]  \  } }|j                  t              r|j                  d      r.|}|j	                  dd      }t        d|z   t        t        j                  ft        |d      }|t               |j                  <    y )	NFT)
include_so	recursivecheck_optional__main__r   rH   Test_)r   r:   )r   walk_modulesrI   r   replacetyperA   rJ   TestCaser   globals)rH   r:   orig_modnamemodname_no_periodr`   s        r   _create_testsr   -  s    **et:?A &
767J' (00c:'' 1 12&'
 #&	#,,)&r   r   )#
__future__r   r   r=   sysrJ   r^   rP   rL   gevent.testingr   r   gevent.testing.sysinfor   gevent.testing.utilr   gevent._patcherr	   objectr   PY2r   r   rg   r|   r   platformr\   r   r   r?   rA   r   r   mainr   r   r   <module>r      s   & &  
      " = % #&  
e vhHc#WWM*cc K%& 
"     <<5!O, M& M&`&. zHMMO r   