ó
úR‹_c           @   s‹   d  d l  m Z d  d l m Z e j ƒ  d  d l Z d  d l Z d  d l m Z d e e j	 f d „  ƒ  YZ
 e d k r‡ e j ƒ  n  d S(   iÿÿÿÿ(   t   Popen(   t   monkeyN(   t   SubscriberCleanupMixint
   TestMonkeyc           B   sV   e  Z d Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z RS(	   c         C   s6   d d  l  } d d l m  } |  j | j | j ƒ d  S(   Niÿÿÿÿ(   t   time(   R   t   geventt   assertIst   sleep(   t   selfR   t   gtime(    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt	   test_time   s    c         C   s  y d d  l  } Wn t k
 r/ d d  l } n Xd d  l } d d l m  } |  j | j | j ƒ |  j | j | j ƒ |  j t	 j
 d d ƒ ƒ t j d d k r	d d l m } d d l m } |  j | j | j ƒ |  j t	 j
 d d	 ƒ ƒ |  j | j | ƒ n  d  S(
   Niÿÿÿÿ(   t   threadt	   threadingt   Eventi    i   (   R   (   R   t   _Event(   R   t   ImportErrort   _threadR   R   R   t   start_new_threadt   _start_new_threadt
   assertTrueR   t   is_object_patchedt   syst   version_infot   gevent.eventR   t   _sleepR   (   R   R   R   t   gthreadt
   gthreadingt   GEvent(    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   test_thread   s    c         C   s6   d d  l  } d d l m  } |  j | j | j ƒ d  S(   Niÿÿÿÿ(   t   socket(   R   R   R   t   create_connection(   R   R   t   gevent_socket(    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   test_socket(   s    c         C   s³   d d  l  } d d  l } d d l m  } x„ d D]| } t | | ƒ r/ t | | ƒ } |  j d t | ƒ ƒ |  j | | j ƒ |  j	 | | j
 ƒ |  j | t | | ƒ ƒ q/ q/ Wd  S(   Niÿÿÿÿ(   t   ost   forkt   forkptys   built-in(   R"   R#   (   R!   t   typesR   t   hasattrt   getattrt   assertNotInt   reprt   assertNotIsInstancet   BuiltinFunctionTypet   assertIsInstancet   FunctionTypeR   (   R   R!   R$   t   gost   namet   attr(    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   test_os-   s    c         C   so   |  j  t j ƒ xX t j D]M } |  j  t j | ƒ ƒ x. t j | D] } |  j  t j | | ƒ ƒ qD Wq Wd  S(   N(   R   R   t   savedt   is_module_patchedR   (   R   t   modnamet   objname(    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt
   test_saved9   s
    c         C   s\   |  j  d t t ƒ ƒ |  j t t j d d ƒ ƒ t j ƒ  |  j t t j d d ƒ ƒ d  S(   NR   t
   subprocessR    (   R'   R(   R    R   R   t   get_originalt   patch_subprocess(   R   (    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   test_patch_subprocess_twiceA   s    
c   
   	      s
  d d  l  } d d l m } i  } x- t j j ƒ  D] \ } } | j ƒ  | | <q2 Wd d l m ‰  g  } ˆ  j	 j
 | j
 ƒ ‡  f d †  } ˆ  j	 j
 | ƒ | j d t ƒ Ÿ } t j d t d d ƒ |  j t | ƒ d	 ƒ |  j d
 t | d j ƒ ƒ |  j d t | d j ƒ ƒ | 2t j d t ƒ t j d | d <|  j | ƒ Wd  QXd t j k r|d | k r|t j d | d <n  |  j | t j ƒ x7 t j d j ƒ  D]" \ } } |  j d t | ƒ ƒ q£W|  j | d ˆ  j ƒ |  j i d d 6| d j ƒ | j ˆ  j | d ƒ |  j | d ˆ  j ƒ | j ˆ  j | d ƒ |  j | d	 ˆ  j ƒ | j ˆ  j | d ƒ |  j | d ˆ  j ƒ | j ˆ  j  | d ƒ |  j | d ˆ  j! ƒ | j ˆ  j" | d ƒ x6 | D]. }	 |  j t# |	 ˆ  j ƒ oþ|	 j$ d k ƒ qÔWd  S(   Niÿÿÿÿ(   t   verify(   t   eventsc            s1   t  |  ˆ  j ƒ r- |  j d k r- ˆ  j ‚ n  d  S(   Nt   ssl(   t
   isinstancet   GeventWillPatchModuleEventt   module_namet
   DoNotPatch(   t   event(   R;   (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   vetoS   s    !t   recordR!   t   extra_kwargi*   i   t   SIGCHLDs   more than oncei    t   _gevent_saved_patch_allt   loggingR   R   i   iþÿÿÿR<   (%   t   warningst   zope.interfaceR:   R   R1   t   itemst   copyR   R;   t   subscriberst   appendt   catch_warningst   Truet	   patch_allt   Falset   assertGreaterEqualt   lent   assertInt   strt   messaget   assertFalset   assertEqualR'   R+   t   GeventWillPatchAllEventt   patch_all_kwargst   verifyObjectt   IGeventWillPatchAllEventR>   t   IGeventWillPatchModuleEventt   GeventDidPatchModuleEventt!   GeventDidPatchBuiltinModulesEventt"   IGeventDidPatchBuiltinModulesEventt   GeventDidPatchAllEventt   IGeventDidPatchAllEventR=   R?   (
   R   RH   R:   t
   orig_savedt   kt   vt
   all_eventsRB   t   issued_warningst   e(    (   R;   sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt    test_patch_twice_warnings_eventsG   sL     c         C   se   y d d  l  } Wn t k
 r) d  } n Xt | d ƒ sK t j d ƒ ‚ n  |  j | j | j ƒ d  S(   Niÿÿÿÿt   SimpleQueues   Needs SimpleQueue(	   t   queueR   t   NoneR%   t   unittestt   SkipTestR   Rj   t   _PySimpleQueue(   R   Rk   (    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   test_patch_queue‰   s    
N(   t   __name__t
   __module__Rl   t   maxDiffR
   R   R    R0   R5   R9   Ri   Rp   (    (    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyR   
   s   							Bt   __main__(   R6   R    R   R   RP   R   Rm   t   gevent.testing.testcaseR   t   TestCaseR   Rq   t   main(    (    (    sR   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__monkey.pyt   <module>   s   
Œ