ó
Gq]c           @   sń  d  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 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 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 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 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! 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& 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+ d d! l m, Z, d d" l m- Z- d d# l m. Z. d d$ l m/ Z/ d d% l m0 Z0 d d& l m1 Z1 d d' l m2 Z2 d d( l m3 Z3 d d) l m4 Z4 d d* l m5 Z5 d d+ l m6 Z6 d d, l m7 Z7 d d- l m8 Z8 d d. l m9 Z9 d d/ l m: Z: d d0 l m; Z; d d1 l m< Z< d d2 l m= Z= d d3 l m> Z> d d l
 Z
 d d l Z
 d4 e: j? f d5     YZ@ e jA d6 d7  ZB d8 e: j? f d9     YZC e: jD e8 d:  e: jD e9 o	e jE jF e4  d;  d< e: j? f d=     Y  ZG d> e: j? f d?     YZH d@ e: j? f dA     YZI dB e: j? f dC     YZJ dD e: j? f dE     YZK dF e: j? f dG     YZL dH e: j? f dI     YZM eN dJ k rķd dK lO mP ZP eP eQ  n  d S(L   s   
Miscellaneous tests.
i’’’’N(   t   LINUX(   t   POSIX(   t   WINDOWS(   t   memoize(   t   memoize_when_activated(   t   supports_ipv6(   t   wrap_numbers(   t	   open_text(   t   open_binary(   t   PY3(   t   APPVEYOR(   t   bind_socket(   t   bind_unix_socket(   t
   call_until(   t   chdir(   t   create_proc_children_pair(   t   create_sockets(   t   create_zombie_proc(   t   DEVNULL(   t   get_free_port(   t   get_test_subprocess(   t   HAS_BATTERY(   t   HAS_CONNECTIONS_UNIX(   t   HAS_MEMORY_MAPS(   t   HAS_NET_IO_COUNTERS(   t   HAS_SENSORS_BATTERY(   t   HAS_SENSORS_FANS(   t   HAS_SENSORS_TEMPERATURES(   t   import_module_by_path(   t   is_namedtuple(   t   mock(   t
   PYTHON_EXE(   t   reap_children(   t   reload_module(   t   retry(   t   ROOT_DIR(   t
   safe_mkdir(   t   safe_rmpath(   t   SCRIPTS_DIR(   t   sh(   t   tcp_socketpair(   t   TESTFN(   t   TOX(   t   TRAVIS(   t   unittest(   t   unix_socket_path(   t   unix_socketpair(   t   wait_for_file(   t   wait_for_pidt   TestMiscc           B   sĖ   e  Z e d   Z d   Z e d  Z e d  Z e d  Z e d  Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c      	   C   sā  t  j   } | |  } |  j d |  |  j d | j |  |  j d |  |  j | j   |  t j j t  j d d t  j t	 j
    T t  j   } | |  } |  j d | j |  |  j d |  |  j d |  Wd  QXt j j t  j d d t  j t	 j
    T t  j   } | |  } |  j d | j |  |  j d |  |  j d |  Wd  QXt j j t  j d d t  j t	 j
    D t  j   } | |  } |  j d | j |  |  j d |  Wd  QXd  S(   Ns   psutil.Processs   pid=%ss   name=t   namet   side_effectt   zombiet
   terminated(   t   psutilt   Processt   assertInt   pidR2   R   t   patcht   objectt   ZombieProcesst   ost   getpidt   assertNotInt   NoSuchProcesst   AccessDenied(   t   selft   funct   pt   r(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_process__repr__R   s4    c         C   s   |  j  d t  d  S(   NRC   (   RF   t   str(   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_process__str__n   s    c         C   sm   |  j  t t j d   d  |  j  t t j d d d  d  |  j  t t j d d d  d  d  S(   NiA  s7   psutil.NoSuchProcess process no longer exists (pid=321)R2   t   foosC   psutil.NoSuchProcess process no longer exists (pid=321, name='foo')t   msgs   psutil.NoSuchProcess foo(   t   assertEqualt   reprR6   R@   (   RB   RC   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_no_such_process__repr__q   s    c         C   s   |  j  t t j d   d  |  j  t t j d d d  d  |  j  t t j d d d d d  d  |  j  t t j d d	 d  d
  d  S(   NiA  sE   psutil.ZombieProcess process still exists but it's a zombie (pid=321)R2   RI   sQ   psutil.ZombieProcess process still exists but it's a zombie (pid=321, name='foo')t   ppidi   sY   psutil.ZombieProcess process still exists but it's a zombie (pid=321, name='foo', ppid=1)RJ   s   psutil.ZombieProcess foo(   RK   RL   R6   R<   (   RB   RC   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_zombie_process__repr__}   s    c         C   sm   |  j  t t j d   d  |  j  t t j d d d  d  |  j  t t j d d d  d  d  S(   NiA  s   psutil.AccessDenied (pid=321)R2   RI   s)   psutil.AccessDenied (pid=321, name='foo')RJ   s   psutil.AccessDenied foo(   RK   RL   R6   RA   (   RB   RC   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_access_denied__repr__   s    c         C   ss   |  j  t t j d   d  |  j  t t j d d d  d  |  j  t t j d d d d d  d  d  S(	   NiA  s/   psutil.TimeoutExpired timeout after 321 secondsR9   io   s9   psutil.TimeoutExpired timeout after 321 seconds (pid=111)R2   RI   sE   psutil.TimeoutExpired timeout after 321 seconds (pid=111, name='foo')(   RK   RL   R6   t   TimeoutExpired(   RB   RC   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_timeout_expired__repr__   s    c         C   sU   t  j   } t  j   } |  j | |  d | _ |  j | |  |  j | d  d  S(   Ni    RI   (   i    i    (   R6   R7   RK   t   _identt   assertNotEqual(   RB   t   p1t   p2(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_process__eq__„   s    	c         C   s8   t  t j   t j   g  } |  j t |  d  d  S(   Ni   (   t   setR6   R7   RK   t   len(   RB   t   s(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_process__hash__­   s    c         C   sö   t  t  } xæ | D]· } | d k r+ q n  | j d
  s y t |  WqŹ t k
 rĘ | t j k rĒ t t |  } | d  k r q n  | j d  k	 rĆ d | j j	   k rĆ |  j
 d |  qĆ qĒ qŹ Xq q Wx! t j D] } |  j | |  qŲ Wd  S(   Nt   callablet   errort
   namedtuplet   testst   longt   testt   NUM_CPUSt	   BOOT_TIMEt   TOTAL_PHYMEMt   _t
   deprecateds   %r not in psutil.__all__(	   R\   R]   R^   R_   R`   Ra   Rb   Rc   Rd   (   t   dirR6   t
   startswitht
   __import__t   ImportErrort   __all__t   getattrt   Nonet   __doc__t   lowert   failR8   (   RB   t
   dir_psutilR2   t   fun(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test__all__±   s&     	"c         C   s<   |  j  d j g  t j D] } t |  ^ q  t j  d  S(   Nt   .(   RK   t   joinR6   t   version_infoRG   t   __version__(   RB   t   x(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_versionĖ   s    .c         C   s/   t  j   } d | _ |  j d | j    d  S(   Nt   1RI   (   R6   R7   RI   R?   t   as_dict(   RB   RD   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt!   test_process_as_dict_no_new_namesĻ   s    	c            s  t    f d    } g    xO t d  D]A } |   } d i  f } |  j | |  |  j t    d  q( WxR t d  D]D } | d  } d	 i  f } |  j | |  |  j t    d  qz Wx_ t d  D]Q } | d d d } d
 i d d 6f } |  j | |  |  j t    d  qĻ W| j   |   } d i  f } |  j | |  |  j t    d  |  j | j d  d  S(   Nc             s     j  d  |  | f S(   s   foo docstringN(   t   appendRm   (   t   argst   kwargs(   t   calls(    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI   Ö   s    i   i   t   bari   i   s   foo docstring(    (   i   (   i   (    (   R   t   rangeRK   RY   t   cache_clearRn   (   RB   RI   Rx   t   rett   expected(    (   R   s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_memoizeÕ   s.    	
	c            sÖ   d d   f d     Y} |   } g    | j    | j    |  j t    d  g    | j  j |  | j    | j    |  j t    d  g    | j  j |  | j    | j    |  j t    d  d  S(   Nt   Fooc              s   e  Z e   f d     Z RS(   c            s     j  d   d  S(   N(   R}   Rm   (   RB   (   R   (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI   ū   s    (   t   __name__t
   __module__R   RI   (    (   R   (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyR   ł   s   i   i   (    (   RI   RK   RY   t   cache_activatet   cache_deactivate(   RB   R   t   f(    (   R   s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_memoize_when_activatedų   s     	





c         C   s9  d d l  m } d   } |  j | d  i d | d  6 |  j | d  i d | d  6d | d	  6 |  j | d
  i d | d  6d | d	  6 |  j | d  i d | d  6d | d	  6 |  j | d  i d | d  6 |  j | d  i d | d  6 |  j | d  i d | d  6 d  S(   Ni’’’’(   t   parse_environ_blockc         S   s   t  r |  j   S|  S(   N(   R   t   upper(   RZ   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   k  s    s   a=1 Rz   t   as	   a=1 b=2  t   2t   bs   a=1 b=  t    s   a=1 b=2  c=3 s   xxx a=1 s	   a=1 =b=2 s   a=1 b=2(   t   psutil._commonR   RK   (   RB   R   R   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_parse_environ_block  s    	!!!##c         C   s  |  j  t j  t   rIt j d  * } t | _ t j   t   sN t  Wd  QXt j   t j d d t j	 & } t   s t  | j
 s t  Wd  QXt j   t j d d t j 0 } t   sÓ t  t j   | j
 sģ t  Wd  QXt j   t j d d t j 0 } t   s't  t j   | j
 s@t  Wd  QXn; |  j t  * t j t j t j  } | j d  Wd  QXd  S(   Ns   psutil._common.sockets   psutil._common.socket.socketR3   s!   psutil._common.socket.socket.binds   ::1i    (   s   ::1i    (   t
   addCleanupR   R   R   R:   t   Falset   has_ipv6t   AssertionErrort   socketR]   t   calledt   gaierrort   assertRaisest	   Exceptiont   AF_INET6t   SOCK_STREAMt   bind(   RB   RZ   t   sock(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_supports_ipv6(  s4    		





c      	   C   s7  d d l  m } t j j t  } | |  s4 t  | t j j |   sS t  t j	 d d t
 t j d   |  j t
 | |  Wd  QXt j	 d d t
 t j d   |  j t
 | |  Wd  QXt j	 d d t
 t j d   | |  sž t  Wd  QXt j	 d d t  | |  s-t  Wd  QXd  S(   Ni’’’’(   t   isfile_stricts   psutil._common.os.statR3   RI   s   psutil._common.stat.S_ISREGt   return_value(   R   R„   R=   t   patht   abspatht   __file__R   t   dirnameR   R:   t   OSErrort   errnot   EPERMR   t   EACCESt   EINVALR   (   RB   R„   t	   this_file(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_isfile_strictH  s    c            sķ     f d   } | t  j   j    | t  j    | t  j    | t  j    | t  j d d   | t  j    t r t	 j
 j d  r n t s° | t  j    n  | t  j    | t  j t	 j     | t  j    d  S(   Nc            sW   t  d  k	 r% t  j t  j |    n  t j |   } t j |  }   j |  |  d  S(   N(   t   jsonRm   t   loadst   dumpst   pickleRK   (   R   R   R   (   RB   (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   checkZ  s
    t   intervali    s   /proc/diskstats(   R6   R7   R{   t   virtual_memoryt   swap_memoryt	   cpu_timest   cpu_times_percentt   net_io_countersR    R=   R§   t   existsR
   t   disk_io_counterst   disk_partitionst
   disk_usaget   getcwdt   users(   RB   R¶   (    (   RB   s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_serializationY  s    c         C   sw   t  j j t d  } t r; t  j j |  r; |  j d  St |  } |  j t	 | j
  |  j | j   t j  d  S(   Ns   setup.pys   can't find setup.py(   R=   R§   Ru   R#   R+   R½   t   skipTestR   R   t
   SystemExitt   setupRK   t   get_versionR6   Rw   (   RB   t   setup_pyt   module(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_setup_scriptp  s    c         C   sę   t  j j t j d d t j   } t j   | j s= t  Wd  QXt  j j t j d d t j d    } t j   | j s t  Wd  QXt  j j t j d d t	 6 } |  j
 t	   t j   Wd  QX| j sÜ t  Wd  QXd  S(   Nt   create_timeR3   i   (   R   R:   R;   R6   R7   RA   R   R   R<   t
   ValueErrorR   (   RB   t   meth(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_ad_on_process_creationx  s    

c      
   C   sa   t  j d d d F |  j t   } t t  Wd  QX|  j d t | j  j	    Wd  QXd  S(   Ns   psutil._psplatform.cext.versionR¦   s   0.0.0s   version conflict(
   R   R:   R   Rj   R!   R6   R8   RG   t	   exceptionRo   (   RB   t   cm(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_sanity_version_check  s
    (   R   R   RL   RF   RH   RM   RO   RP   RR   RW   R[   Rs   Ry   R|   R   R   R   R¤   R±   RĆ   RŹ   RĪ   RŃ   (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyR1   P   s(   							#			 				RI   s   a b ct   TestWrapNumbersc           B   s   e  Z d    Z e Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z e j e d  d    Z RS(   c         C   s   t  j   d  S(   N(   R   R   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   setUp  s    c         C   s6   i t  d d d  d 6} |  j t | d  |  d  S(   Ni   t   disk1t   disk_io(   t   ntRK   R   (   RB   t   input(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_first_call”  s    c         C   sO   i t  d d d  d 6} |  j t | d  |  |  j t | d  |  d  S(   Ni   RŌ   RÕ   (   RÖ   RK   R   (   RB   R×   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_input_hasnt_changed„  s    c         C   sĢ   i t  d d d  d 6} |  j t | d  |  i t  d d d  d 6} |  j t | d  |  i t  d d d  d 6} |  j t | d  |  i t  d d d  d 6} |  j t | d  |  d  S(	   Ni   RŌ   RÕ   i
   i   i   i   i   (   RÖ   RK   R   (   RB   R×   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_increase_but_no_wrapŖ  s    c         C   s^  i t  d d d  d 6} |  j t | d  |  i t  d d d  d 6} |  j t | d  i t  d d d  d 6 i t  d d d  d 6} |  j t | d  i t  d d d  d 6 i t  d d d  d 6} |  j t | d  i t  d d d  d 6 i t  d d d  d 6} |  j t | d  i t  d d d	  d 6 i t  d d d  d 6} |  j t | d  i t  d d d	  d 6 i t  d
 d d  d 6} |  j t | d  i t  d d d	  d 6 i t  d d d  d 6} |  j t | d  i t  d d d	  d 6 i t  d d d  d 6} |  j t | d  i t  d d d	  d 6 d  S(   Nid   RŌ   RÕ   i
   in   iZ   i¾   i   iŅ   i2   i   i(   (   RÖ   RK   R   (   RB   R×   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt	   test_wrap“  s4    c         C   s­   i t  d d d  d 6} |  j t | d  |  i t  d d d  d 6t  d d d  d 6} |  j t | d  |  i t  d d d  d 6} |  j t | d  |  d  S(   Ni   RŌ   RÕ   i   t   disk2i   (   RÖ   RK   R   (   RB   R×   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_changing_keysŁ  s    c         C   sŪ  i t  d d d  d 6t  d d d  d 6} |  j t | d  |  i t  d d d  d 6t  d d d  d 6} |  j t | d  i t  d d d  d 6t  d d d  d 6 i t  d d d  d 6} |  j t | d  |  i t  d d d  d 6t  d d d  d 6} |  j t | d  |  i t  d d d  d 6t  d d d  d 6} |  j t | d  |  i t  d d d  d 6t  d d d  d 6} |  j t | d  i t  d d d  d 6t  d d d  d 6 d  S(   Ni2   RŌ   id   RÜ   RÕ   i
   in   (   RÖ   RK   R   (   RB   R×   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_changing_keys_w_wrapå  s*    c      
   C   s”   i d) d
 6d* d 6d+ d 6d, d% 6} |  j  t | d&  |  |  j  t | d&  |  i d- d
 6d. d 6d/ d 6d0 d% 6} t | d&  } |  j  | d
 d d(  d  S(1   Ni,  iü  i  i#  iR  iĆ  i  i§ä iČ·  t   nvme0n1i  i   i tU i   i  i    i   t	   nvme0n1p1i6   i $ i ŠN i   i   i   i·  i   t	   nvme0n1p2iU	  i»  i"  i   iÜ  i4  ić  i  i\  t	   nvme0n1p3RÕ   id   i  (	   i,  iü  i  i#  iR  iĆ  i  i§ä iČ·  (	   i  i   i tU i   i  i    i    i    i   (	   i6   i6   i $ i ŠN i   i   i   i·  i   (	   iU	  i»  i"  i   iÜ  i4  ić  i  i\  (	   id   iü  i  i#  iR  iĆ  i  i§ä iČ·  (	   i  i   i tU i   i  i    i    i    i   (	   i6   i6   i $ i ŠN i   i   i   i·  i   (	   iU	  i»  i"  i   iÜ  i4  ić  i  i\  (   RK   R   (   RB   t   dt   out(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_real_data  s    



c         C   s   i t  d d d  d 6} t | d  t j   } |  j | d i | d 6 |  j | d i i  d 6 |  j | d i i  d 6 d  S(   Ni   RŌ   RÕ   i    i   i   (   RÖ   R   t
   cache_infoRK   (   RB   R×   t   cache(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cache_first_call  s    c         C   sĀ   i t  d d d  d 6} t | d  i t  d d d  d 6} t | d  t j   } |  j | d i | d 6 |  j | d i i d d 6d d	 6d d
 6d 6 |  j | d i i  d 6 d  S(   Ni   RŌ   RÕ   i
   i    i   i   (   RŌ   i    (   RŌ   i   (   RŌ   i   (   RÖ   R   Rę   RK   (   RB   R×   Rē   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cache_call_twice  s    #c            s1  i t  d d d  d 6} t | d  i t  d d d  d 6} t | d  t j   }   j | d i | d 6   j | d i i d d 6d d 6d d 6d 6   j | d i i t d g  d 6d 6   f d   } i t  d d d  d 6} t | d  t j   }   j | d i | d 6 |   i t  d d d	  d 6} t | d  t j   }   j | d i | d 6 |   i t  d d d
  d 6} t | d  t j   }   j | d i | d 6   j | d i i d d 6d d 6d d 6d 6   j | d i i t d g  d 6d 6 d  S(   Nid   RŌ   RÕ   i
   i    i   i   c             sk   t  j   }    j |  d i i d d 6d d 6d d	 6d 6   j |  d i i t d
 g  d 6d 6 d  S(   Ni   i    RŌ   id   i   RÕ   (   RŌ   i    (   RŌ   i   (   RŌ   i   (   RŌ   i   (   R   Rę   RK   RX   (   Rē   (   RB   (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   assert_7  s    iZ   i   i¾   (   RŌ   i    (   RŌ   i   (   RŌ   i   (   RŌ   i   (   RŌ   i    (   RŌ   i   (   RŌ   i   (   RŌ   i   (   RÖ   R   Rę   RK   RX   (   RB   R×   Rē   Rź   (    (   RB   s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cache_wrap(  s:    #+
#c         C   sÕ   i t  d d d  d 6} t | d  i t  d d d  d 6t  d d d  d 6} t | d  t j   } |  j | d i | d 6 |  j | d i i d d	 6d d
 6d d 6d 6 |  j | d i i  d 6 d  S(   Ni   RŌ   RÕ   i   RÜ   i    i   i   (   RŌ   i    (   RŌ   i   (   RŌ   i   (   RÖ   R   Rę   RK   (   RB   R×   Rē   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cache_changing_keysX  s    #c         C   s}   i t  d d d  d 6} t | d  t | d  t j d  |  j t j   i  i  i  f  t j d  t j d  d  S(   Ni   RŌ   RÕ   s   ?!?(   RÖ   R   R   RK   Rę   (   RB   R×   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cache_cleare  s    s   not supportedc         C   sų   t  j   s t  j   r' |  j d  St  j   t  j   t j   } x. | D]& } |  j d |  |  j d |  qN Wt  j j   t j   } x. | D]& } |  j d |  |  j d |  q Wt  j j   t j   } |  j	 | i  i  i  f  d  S(   Ns   no disks or NICs availables   psutil.disk_io_counterss   psutil.net_io_counters(
   R6   R¾   R¼   RÄ   R   Rę   R8   R   R?   RK   (   RB   t   cachesRē   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cache_clear_public_apisn  s     

(   R   R   RÓ   t   tearDownRŲ   RŁ   RŚ   RŪ   RŻ   RŽ   Rå   Rč   Ré   Rė   Rģ   Rķ   R,   t   skipIfR   Rļ   (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRŅ     s   				
	%						0			s   can't test on TOXs   can't locate scripts directoryt   TestScriptsc           B   sē  e  Z d  Z e d    Z e d! d   Z d   Z e j	 e
 d  d    Z d   Z d   Z d   Z d	   Z e j	 e p e o e j   d
  d    Z d   Z d   Z d   Z e j	 e d  d    Z e j	 e d  d    Z d   Z d   Z d   Z d   Z d   Z d   Z  e j	 e! d  d    Z" d   Z# e j	 e$ d  e j	 e d  d     Z% e j	 e& d  e j	 e d  d     Z' e j	 e( d  e j	 e) d  d     Z* d    Z+ RS("   s-   Tests for scripts in the "scripts" directory.c         O   s§   d t  j j t |   }  t |  g } x | D] } | j |  q, Wy t | |  j   } Wn2 t k
 r } d t	 |  k r t	 |  S  n X| s£ t
 |   | S(   Ns   %sRA   (   R=   R§   Ru   R&   R   R}   R'   t   stript   RuntimeErrorRG   R   (   t   exeR~   R   t   cmdt   argRä   t   err(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   assert_stdout  s    
c         C   sl   t  j j t |   }  t r3 t |  d d d } n t |  d  } |  | j   } Wd  QXt j |  d  S(   Nt   rtt   encodingt   utf8(	   R=   R§   Ru   R&   R	   t   opent   readt   astt   parse(   Rõ   R~   R   t   src(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   assert_syntax   s    c         C   s   t  |   } xl t j t  D][ } | j d  r d t j j |  d | k rw |  j d t j j t |   qw q q Wd  S(   Ns   .pyt   test_i    s   no test defined for %r script(	   Rg   R=   t   listdirR&   t   endswithR§   t   splitextRp   Ru   (   RB   t   methsR2   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_coverage«  s     	s
   POSIX onlyc         C   sv   xo t  j t  D]^ } | j d  r t  j j t |  } t j t  j |  t j @sn |  j	 d |  qn q q Wd  S(   Ns   .pys   %r is not executable(
   R=   R  R&   R  R§   Ru   t   statt   S_IXUSRt   ST_MODERp   (   RB   R2   R§   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_executableµ  s
    c         C   s   |  j  d  d  S(   Ns   disk_usage.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_disk_usage½  s    c         C   s   |  j  d  d  S(   Ns   free.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt	   test_freeĄ  s    c         C   s   |  j  d  d  S(   Ns
   meminfo.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_meminfoĆ  s    c         C   s    |  j  d t t j     d  S(   Ns   procinfo.py(   Rł   RG   R=   R>   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_procinfoĘ  s    s    unreliable on APPVEYOR or TRAVISc         C   s   |  j  d  d  S(   Ns   who.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_whoŹ  s    c         C   s   |  j  d  d  S(   Ns   ps.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_psĻ  s    c         C   s   |  j  d  d  S(   Ns	   pstree.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_pstreeŅ  s    c         C   s   |  j  d  d  S(   Ns
   netstat.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_netstatÕ  s    s   unreliable on TRAVISc         C   s   |  j  d  d  S(   Ns   ifconfig.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_ifconfigŁ  s    s   not supportedc         C   s    |  j  d t t j     d  S(   Ns   pmap.py(   Rł   RG   R=   R>   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt	   test_pmapŻ  s    c         C   sD   d t  j   j   j k r- |  j d   n  |  j d d t d  S(   Nt   usss   not supporteds   procsmem.pyt   stderr(   R6   R7   t   memory_full_infot   _fieldsRÄ   Rł   R   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_procsmemį  s    c         C   s   |  j  d  d  S(   Ns
   killall.py(   R  (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_killallę  s    c         C   s   |  j  d  d  S(   Ns	   nettop.py(   R  (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_nettopé  s    c         C   s   |  j  d  d  S(   Ns   top.py(   R  (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_topģ  s    c         C   s   |  j  d  d  S(   Ns   iotop.py(   R  (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt
   test_iotopļ  s    c         C   s>   |  j  d t j   j    } |  j t t j    |  d  S(   Ns   pidof.py(   Rł   R6   R7   R2   R8   RG   R=   R>   (   RB   t   output(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt
   test_pidofņ  s    s   WINDOWS onlyc         C   s   |  j  d  d  S(   Ns   winservices.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_winservicesö  s    c         C   s   |  j  d  d  S(   Ns   cpu_distribution.py(   R  (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_cpu_distributionś  s    c         C   s   |  j  d  d  S(   Ns   temperatures.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_temperaturesż  s    c         C   s   |  j  d  d  S(   Ns   fans.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt	   test_fans  s    s
   no batteryc         C   s   |  j  d  d  S(   Ns
   battery.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_battery  s    c         C   s   |  j  d  d  S(   Ns
   sensors.py(   Rł   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_sensors  s    N(,   R   R   Rn   t   staticmethodRł   Rm   R  R  R,   Rń   R   R  R  R  R  R  R
   R+   R6   RĀ   R  R  R  R  R  R   R  R  R  R  R  R  R!  R   R"  R#  R   R$  R   R%  R   R   R&  R'  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRņ     s@   
	
														t   TestRetryDecoratorc           B   s   e  Z e j d   d    Z e j d   d    Z e j d   d    Z e j d   d    Z e j d   d    Z e j d   d    Z	 RS(   s
   time.sleepc            sf   t  d d d d d d     f d    } t t d     |  j |   d  |  j | j d  d  S(   Nt   retriesi   R·   i   t   logfunc              s#   x   r   j    d d q Wd S(   Ni   i    (   t   pop(    (   t   queue(    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI     s    	
i   (   R"   Rm   t   listR   RK   t
   call_count(   RB   t   sleepRI   (    (   R-  s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_retry_success  s    *c            sc   t  d d d d d d     f d    } t t d     |  j t |  |  j | j d  d  S(   NR*  i   R·   i   R+  c              s#   x   r   j    d d q Wd S(   Ni   i    (   R,  (    (   R-  (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI   *  s    	
i   (   R"   Rm   R.  R   R   t   ZeroDivisionErrorRK   R/  (   RB   R0  RI   (    (   R-  s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_retry_failure&  s    *c         C   sE   t  d t d d  d    } |  j t |  |  j | j d  d  S(   NRĻ   R·   i   c           S   s
   t   d  S(   N(   t	   TypeError(    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI   7  s    i    (   R"   RĢ   R   R4  RK   R/  (   RB   R0  RI   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_exception_arg5  s    c         C   sK   t  d d d d  d d   d    } |  j t |  |  j | j d  d  S(   NR*  i   R·   R+  c           S   s   d d d  S(   Ni   i    (    (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI   B  s    i    (   R"   Rm   R   R2  RK   R/  (   RB   R0  RI   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_no_interval_arg>  s    $c         C   sK   t  d d d d d d   d    } |  j t |  |  j | j d  d  S(   NR*  i   R·   i   R+  c           S   s   d d d  S(   Ni   i    (    (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRI   L  s    (   R"   Rm   R   R2  RK   R/  (   RB   R0  RI   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_retries_argI  s    $c         C   s    |  j  t t d d d d d  S(   NR*  i   t   timeouti   (   R   RĢ   R"   (   RB   R0  (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_retries_and_timeout_argsS  s    (
   R   R   R   R:   R1  R3  R5  R6  R7  R9  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyR)    s   	
t   TestSyncTestUtilsc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  t  d  S(   N(   R%   R)   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRš   Z  s    c         C   se   t  t j    t t j    d } t j d d t d g   |  j	 t j
 t  |  Wd  QXd  S(   Ni s   psutil.tests.retry.__iter__R¦   i    (   R0   R=   R>   t   maxR6   t   pidsR   R:   t   iterR   R@   (   RB   t   nopid(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_wait_for_pid]  s    c         C   sL   t  t d   } | j d  Wd  QXt t  t j j t  sH t  d  S(   Nt   wRI   (   Rż   R)   t   writeR/   R=   R§   R½   R   (   RB   R   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_wait_for_filec  s    
c         C   sC   t  t d   Wd  QXt t d t t j j t  s? t  d  S(   NR@  t   empty(   Rż   R)   R/   t   TrueR=   R§   R½   R   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_wait_for_file_emptyi  s    c         C   s<   t  j d d t d g   |  j t t t  Wd  QXd  S(   Ns   psutil.tests.retry.__iter__R¦   i    (   R   R:   R=  R   t   IOErrorR/   R)   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_wait_for_file_no_fileo  s    c         C   sQ   t  t d   } | j d  Wd  QXt t d t t j j t  sM t  d  S(   NR@  RI   t   delete(	   Rż   R)   RA  R/   R   R=   R§   R½   R   (   RB   R   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_wait_for_file_no_deletes  s    c         C   s&   t  d   d  } |  j | d  d  S(   Nc           S   s   d S(   Ni   (    (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   <lambda>z  R   s   ret == 1i   (   R   RK   (   RB   R   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_call_untily  s    (	   R   R   Rš   R?  RB  RE  RG  RI  RK  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyR:  X  s   						t   TestFSTestUtilsc           B   sD   e  Z d    Z e Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  t  d  S(   N(   R%   R)   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRÓ     s    c         C   s,   t  t   } |  j | j d  Wd  QXd  S(   NRś   (   R   R©   RK   t   mode(   RB   R   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_open_text  s    c         C   s,   t  t   } |  j | j d  Wd  QXd  S(   Nt   rb(   R   R©   RK   RM  (   RB   R   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_open_binary  s    c         C   sH   t  t  t j j t  s" t  t  t  t j j t  sD t  d  S(   N(   R$   R)   R=   R§   t   isdirR   (   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_safe_mkdir  s    

c      
   C   sĶ   t  t d  j   t t  t j j t  s6 t  t t  t j t  t t  t j j t  sp t  t	 j
 d d t t j d  6 } |  j t   t t  Wd  QX| j sĆ t  Wd  QXd  S(   NR@  s   psutil.tests.os.statR3   R   (   Rż   R)   t   closeR%   R=   R§   R½   R   t   mkdirR   R:   R«   R¬   RÆ   R   R   (   RB   t   m(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_safe_rmpath  s    


c      	   C   sk   t  j   } t  j t  t t  * |  j t  j   t  j j | t   Wd  QX|  j t  j   |  d  S(   N(   R=   RĮ   RT  R)   R   RK   R§   Ru   (   RB   t   base(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt
   test_chdir„  s
    +(	   R   R   RÓ   Rš   RN  RP  RR  RV  RX  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRL  ~  s   					t   TestProcessUtilsc           B   s6   e  Z d    Z d   Z e j e d  d    Z RS(   c         C   sq   t    } t j | j  } | j   s- t  t   | j   sG t  t j j sZ t  t j j	 sm t  d  S(   N(
   R   R6   R7   R9   t
   is_runningR   R    R_   t   _pids_startedt   _subprocesses_started(   RB   t   subpRD   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_reap_childrenÆ  s    	c         C   s#  t    \ } } |  j | j | j  | j   s7 t  | j   sI t  t j   j d t  } |  j	 t
 |  d  |  j | |  |  j | |  |  j	 | j   t j    |  j	 | j   | j  t   | j   sę t  | j   sł t  t j j st  t j j st  d  S(   Nt	   recursivei   (   R   RT   R9   RZ  R   R6   R7   t   childrenRD  RK   RY   R8   RN   R=   R>   R    R_   R[  R\  (   RB   RU   RV   R`  (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_create_proc_children_pairø  s    s
   POSIX onlyc         C   sH   t    } |  j t d t t j |  } |  j | j   t j  d  S(   NR_  (	   R   R   R    RD  R6   R7   RK   t   statust   STATUS_ZOMBIE(   RB   t   zpidRD   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_create_zombie_procĖ  s    	(   R   R   R^  Ra  R,   Rń   R   Re  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRY  ­  s   			t   TestNetUtilsc           B   s[   e  Z d    Z e j e d  d    Z d   Z e j e d  d    Z d   Z	 RS(   c         C   sN   t    } t j t d d | f   ! } |  j | j   d |  Wd  QXd  S(   Nt   addrR   i   (   R   t
   contextlibt   closingR   RK   t   getsockname(   RB   t   portRZ   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyR   Õ  s    	!s
   POSIX onlyc         C   s  t    ¤ } t |  } t j |   |  j | j t j  |  j | j t j	  |  j | j
   |  t j j |  s t  t j t j |  j  s£ t  Wd  QXWd  QXt    H } t | d t j } t j |   |  j | j t j  Wd  QXWd  QXd  S(   Nt   type(   R-   R   Rh  Ri  RK   t   familyR   t   AF_UNIXRl  R”   Rj  R=   R§   R½   R   R	  t   S_ISSOCKt   st_modet
   SOCK_DGRAM(   RB   R2   R£   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_bind_unix_socketŚ  s    -c         C   s   d t    f } t t j d | \ } } t j |  ] t j |  G |  j | j   |  |  j | j   |  |  j	 | j   |  Wd  QXWd  QXd  S(   Ns	   127.0.0.1Rg  (
   R   R(   R   t   AF_INETRh  Ri  RK   Rj  t   getpeernameRT   (   RB   Rg  t   servert   client(    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   tcp_tcp_socketpairź  s    c      	   C   s  t  j   } | j   } | j d d  s1 t  t   Ö } t |  \ } } z„ t j j	 |  sj t  t
 j t j
 |  j  s t  |  j | j   | d  |  j t | j d d   d  |  j | j   |  |  j | j   |  Wd  | j   | j   XWd  QXd  S(   Nt   kindt   unixi   (   R6   R7   t   num_fdst   connectionsR   R-   R.   R=   R§   R½   R	  Ro  Rp  RK   RY   Rj  Rt  RS  (   RB   RD   Rz  R2   Ru  Rv  (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_unix_socketpairõ  s    !"
c      	   C   s  t    ł } t j t  } t j t  } xC | D]; } | | j c d 7<| | j t j t j  c d 7<q1 W|  j	 | t j
 d  t   rŖ |  j	 | t j d  n  t rŠ t rŠ |  j	 | t j d  n  |  j	 | t j d  |  j	 | t j d  Wd  QXd  S(   Ni   i   (   R   t   collectionst   defaultdictt   intRm  t
   getsockoptR   t
   SOL_SOCKETt   SO_TYPEt   assertGreaterEqualRs  R   R    R   R   Rn  R”   Rq  (   RB   t   sockst   famst   typesRZ   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_create_sockets  s    &	(
   R   R   R   R,   Rń   R   Rr  Rw  R|  R  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyRf  Ó  s
   		t   TestOtherUtilsc           B   s   e  Z d    Z RS(   c         C   sD   t  t j d d  d d d   s* t  t  t    s@ t  d  S(   NRI   s   a b ci   i   i   (   R   R}  R^   R   t   tuple(   RB   (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   test_is_namedtuple  s    *(   R   R   R  (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyR    s   t   __main__(   t   run(R   Rn   R’   R}  Rh  R¬   R²   R=   Rµ   R   R	  R6   R    R   R   R   R   R   R   R   R   R   t   psutil._compatR	   t   psutil.testsR
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   t   TestCaseR1   R^   RÖ   RŅ   Rń   R§   R½   Rņ   R)  R:  RL  RY  Rf  R  R   t   psutil.tests.runnerR  R©   (    (    (    s5   lib/python2.7/site-packages/psutil/tests/test_misc.pyt   <module>
   s   ’ Hļ	C&/&E