
Gq]c           @   s  d  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 e r e j d  n d Z d   Z d   Z d   Z e j e d  d e j f d     Y Z e j e d  d e j f d     Y Z e j e d  d e j f d     Y Z e d k rd d l m Z e e  n  d S(   s   MACOS specific tests.iN(   t   MACOS(   t   create_zombie_proc(   t   get_test_subprocess(   t   HAS_BATTERY(   t   MEMORY_TOLERANCE(   t   reap_children(   t   retry_on_failure(   t   sh(   t   unittestt   SC_PAGE_SIZEc         C   sC   t  |   } | j   d } y t |  SWn t k
 r> | SXd S(   sm   Expects a sysctl command with an argument and parse the result
    returning only the value of interest.
    i   N(   R   t   splitt   intt
   ValueError(   t   cmdlinet   outt   result(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   sysctl   s    c         C   se   t  d  } x3 | j d  D] } |  | k r Pq q Wt d   t t j d |  j d   t S(   s)   Wrapper around 'vm_stat' cmdline utility.t   vm_stats   
s   line not founds   \d+i    (   R   R
   R   R   t   ret   searcht   groupt   PAGESIZE(   t   fieldR   t   line(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyR   (   s    c   	   
   C   s8  i d d
 6} |  } d } xH |  r5 |  d d !j    sH |  d d !d k rc | |  d 7} |  d }  q Wt |  } |  j   } x_ | j   D] \ } } | | k r Pq q W| d k r | d
 } | j   } n t d |   i d | d 6} x4 t | d  D]" \ } }  d | d d >| |  <q Wt | | |  S(   Nt   Bt   Kt   Mt   Gt   Tt   Pt   Et   Zt   Yt	   customaryt    i    i   t   .t   ks   can't interpret %ri
   (	   R   R   R   R   R   R   R   R   R    (   t   isdigitt   floatt   stript   itemst   upperR   t	   enumerateR   (	   t   st   SYMBOLSt   initt   numt   lettert   namet   ssett   prefixt   i(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   human2bytes4   s(    
/
s
   MACOS onlyt   TestProcessc           B   s/   e  Z e d     Z e d    Z d   Z RS(   c         C   s   t    j |  _ d  S(   N(   R   t   pid(   t   cls(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt
   setUpClassQ   s    c         C   s   t    d  S(   N(   R   (   R7   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   tearDownClassU   s    c         C   s   t  d |  j  } | j d d  j   } | j d  d } | j d  d } t j |  j  j   } |  j | t	 j
 d t	 j |    |  j | t	 j
 d t	 j |    d  S(	   Ns   ps -o lstart -p %st   STARTEDR"   t    iis   %H:%M:%Ss   %Y(   R   R6   t   replaceR'   R
   t   psutilt   Processt   create_timet   assertEqualt   timet   strftimet	   localtime(   t   selft   outputt   start_pst   hhmmsst   yeart   start_psutil(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_process_create_timeY   s    (   t   __name__t
   __module__t   classmethodR8   R9   RJ   (    (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyR5   N   s   t   TestZombieProcessAPIsc           B   s   e  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 RS(   c         C   s   t    } t j |  |  _ d  S(   N(   R   R=   R>   t   p(   R7   t   zpid(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyR8   j   s    	c         C   s   t  d t  d  S(   Nt	   recursive(   R   t   True(   R7   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyR9   o   s    c         C   sa   |  j  |  j j   t j  |  j j   |  j j   |  j j   |  j j   |  j j	   d  S(   N(
   R@   RO   t   statusR=   t   STATUS_ZOMBIEt   ppidt   uidst   gidst   terminalR?   (   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_pidtask_infos   s    c         C   s   |  j  t j |  j j  d  S(   N(   t   assertRaisesR=   t   ZombieProcessRO   t   exe(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_exe{   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   R   (   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_cmdline~   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   environ(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_environ   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   cwd(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_cwd   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   memory_full_info(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_memory_full_info   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t	   cpu_times(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_cpu_times   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   num_ctx_switches(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_num_ctx_switches   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   num_threads(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_num_threads   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t
   open_files(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_open_files   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   connections(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_connections   s    c         C   s   |  j  t j |  j j  d  S(   N(   RZ   R=   R[   RO   t   num_fds(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_num_fds   s    c         C   s&   |  j  t j t j f |  j j  d  S(   N(   RZ   R=   R[   t   AccessDeniedRO   t   threads(   RD   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_threads   s    (   RK   RL   RM   R8   R9   RY   R]   R^   R`   Rb   Rd   Rf   Rh   Rj   Rl   Rn   Rp   Rs   (    (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyRN   g   s   												t   TestSystemAPIsc           B   s   e  Z 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 e   d
    Z d   Z e j e d  d    Z RS(   c         C   s   d   } x t  j d t  D] } t  j | j  } | | j  \ } } } } |  j | j |  |  j | j |  t | j	 |  d k r |  j
 d | j	 |  n  t | j |  d	 k r |  j
 d | j |  q q Wd  S(
   Nc         S   s   t  d |   j   } | j d  } | j d  | j d  } | j   d  \ } } } } | d k rr d } n  t |  d } t |  d } t |  d } | | | | f S(   Ns
   df -k "%s"s   
i    i   t   noneR"   i   (   R   R'   R
   t   popR   (   t   pathR   t   linesR   t   devt   totalt   usedt   free(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   df   s    	t   alli
   i   s   psutil=%s, df=%si (  i   i (  i   (   R=   t   disk_partitionst   Falset
   disk_usaget
   mountpointR@   t   deviceRz   t   absR|   t   failR{   (   RD   R}   t   partt   usageRy   Rz   R{   R|   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt
   test_disks   s    	c         C   s,   t  d  } |  j | t j d t   d  S(   Ns   sysctl hw.logicalcput   logical(   R   R@   R=   t	   cpu_countRR   (   RD   R.   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_cpu_count_logical   s    c         C   s,   t  d  } |  j | t j d t   d  S(   Ns   sysctl hw.physicalcpuR   (   R   R@   R=   R   R   (   RD   R.   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_cpu_count_physical   s    c         C   ss   t  j   } |  j | j d d t d   |  j | j d d t d   |  j | j d d t d   d  S(   Ni  s   sysctl hw.cpufrequencys   sysctl hw.cpufrequency_mins   sysctl hw.cpufrequency_max(   R=   t   cpu_freqR@   t   currentR   t   mint   max(   RD   t   freq(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_cpu_freq   s    c         C   s)   t  d  } |  j | t j   j  d  S(   Ns   sysctl hw.memsize(   R   R@   R=   t   virtual_memoryRz   (   RD   t   sysctl_hwphymem(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_vmem_total   s    c         C   s5   t  d  } t j   j } |  j | | d t d  S(   NR|   t   delta(   R   R=   R   R|   t   assertAlmostEqualR   (   RD   t
   vmstat_valt
   psutil_val(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_vmem_free   s    c         C   s5   t  d  } t j   j } |  j | | d t d  S(   Nt   activeR   (   R   R=   R   R   R   R   (   RD   R   R   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_vmem_active   s    c         C   s5   t  d  } t j   j } |  j | | d t d  S(   Nt   inactiveR   (   R   R=   R   R   R   R   (   RD   R   R   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_vmem_inactive   s    c         C   s5   t  d  } t j   j } |  j | | d t d  S(   Nt   wiredR   (   R   R=   R   R   R   R   (   RD   R   R   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_vmem_wired   s    c         C   s/   t  d  } t j   j } |  j | |  d  S(   Nt   Pageins(   R   R=   t   swap_memoryt   sinR@   (   RD   R   R   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_swapmem_sin   s    c         C   s/   t  d  } t j   j } |  j | |  d  S(   Nt   Pageout(   R   R=   R   t   soutR@   (   RD   R   R   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_swapmem_sout   s    c         C   s   x t  j   j   D]| \ } } y t d |  } Wn t k
 rF q X|  j | j d | k d | |  j | j t t	 j
 d |  d   q Wd  S(   Ns   ifconfig %st   RUNNINGt   msgs	   mtu (\d+)i    (   R=   t   net_if_statsR(   R   t   RuntimeErrorR@   t   isupt   mtuR   R   t   findall(   RD   R0   t   statsR   (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_net_if_stats  s    s
   no batteryc         C   s   t  d  } t j d |  j d  } t j d |  j d  } | d k } t j   } |  j | j |  |  j | j t	 |   d  S(   Ns   pmset -g batts   (\d+)%i   s   Now drawing from '([^']+)'s   AC Power(
   R   R   R   R   R=   t   sensors_batteryR@   t   power_pluggedt   percentR   (   RD   R   R   t   drawing_fromR   t   psutil_result(    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   test_sensors_battery  s    (   RK   RL   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   skipIfR   R   (    (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyRt      s   						t   __main__(   t   run(   t   __doc__t   osR   RA   R=   R    t   psutil.testsR   R   R   R   R   R   R   R   t   sysconft   NoneR   R   R   R4   R   t   TestCaseR5   RN   Rt   RK   t   psutil.tests.runnerR   t   __file__(    (    (    s4   lib/python2.7/site-packages/psutil/tests/test_osx.pyt   <module>   s4   			9