ó
úR‹_c           @  sµ   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 j Z	 d  d l
 Z d Z e	 j Z e	 j Z d e	 j f d „  ƒ  YZ e d k r± e	 j ƒ  n  d S(   iÿÿÿÿ(   t   print_functionNg      à?t   TestCoreStatc           B  sY   e  Z e j Z d  „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z RS(   c         C  su   t  t |  ƒ j ƒ  t j d d ƒ \ } } t j | ƒ | |  _ t j	 ƒ  |  _
 |  j
 j j |  j d d ƒ|  _ d  S(   Nt   suffixs   .gevent_test_core_statt   intervaliÿÿÿÿ(   t   superR   t   setUpt   tempfilet   mkstempt   ost   closet	   temp_patht   geventt   get_hubt   hubt   loopt   statt   watcher(   t   selft   fdt   path(    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyR      s    	c         C  sL   |  j  j ƒ  t j j |  j ƒ r5 t j |  j ƒ n  t t |  ƒ j	 ƒ  d  S(   N(
   R   R	   R   R   t   existsR
   t   unlinkR   R   t   tearDown(   R   (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyR   &   s    c         C  s2   t  |  j d d d ƒ } | j d ƒ Wd  QXd  S(   Nt   wbt	   bufferingi    t   x(   t   openR
   t   write(   R   t   f(    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt   _write,   s    c         C  sƒ   y t  |  j | ƒ } Wn t k
 r5 t r/ q ‚  nJ Xt rV t rV |  j | d ƒ n  | ro |  j | | ƒ n |  j | | ƒ d  S(   Ns!   Only None is supported on Windows(   t   getattrR   t   ImportErrort   WINt   LIBUVt   assertIsNonet   assertIsNotNone(   R   t   namet   noneR   (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt   _check_attr0   s    c         G  sñ   t  j  ƒ  } |  j j j ƒ  t j t | | Œ } t j d t d ƒ  |  j j |  j	 ƒ Wd  QXt  j  ƒ  } |  j
 | | d ƒ | | } | t } | d k rÃ t j j j d | | f ƒ ‚ n  |  j
 | d d |  j	 | f ƒ | j ƒ  d  S(   Ni   g      à?s   Time must move forwardg        sE   Bad timer resolution (on Windows?), test is useless. Start %s, now %ss#   Watcher %s reacted too early: %.3fs(   t   timeR   R   t
   update_nowR   t   spawn_latert   DELAYt   Timeoutt   waitR   t   assertGreaterEqualt   testingt   flakyt   FlakyTestRaceConditiont   join(   R   t   funct   greenlet_argst   startt   greenlett   nowt   wait_durationt   reaction(    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt   _wait_on_greenletF   s     

c         C  ss   |  j  } |  j } |  j | j | ƒ t | t ƒ r: | n | j d ƒ } |  j | j | ƒ |  j | j d ƒ d  S(   Nt   asciiiÿÿÿÿ(	   R   R
   t   assertEqualR   t
   isinstancet   bytest   encodet   _pathsR   (   R   R   t   filenamet	   filenames(    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt   test_watcher_basics_   s    		$c         C  sJ   |  j  |  j ƒ |  j d t ƒ |  j d t ƒ |  j |  j j d ƒ d  S(   Nt   attrt   previÿÿÿÿ(   R9   R   R&   t   Falset   assertNotEqualR   R   (   R   (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt
   test_writeg   s    c         C  s:   |  j  t j |  j ƒ |  j d t ƒ |  j d t ƒ d  S(   NRC   RD   (   R9   R   R   R
   R&   t   TrueRE   (   R   (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt   test_unlinko   s    (   t   __name__t
   __module__t	   greentestt   LARGE_TIMEOUTt   __timeout__R   R   R   R&   R9   RB   RG   RI   (    (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyR      s   								t   __main__(   t
   __future__R    R   R   R'   R   t   gevent.coret   gevent.testingR.   RL   t   gevent.testing.flakyR*   R    R!   t   TestCaseR   RJ   t   main(    (    (    sU   /var/www/syncserver/local/lib/python2.7/site-packages/gevent/tests/test__core_stat.pyt   <module>   s   		_