??????????????????????
???  ?????????????????
 JFIF      ?? C      


!"$"$?? C    
?? p 
" ??     
         ??             ?   
   ????

(%	aA*?XYD?(J??E  RE,P XYae?)(E  2 B  R  	BQ    X?)X     ?  @  

adadasdasdasasdasdas


.....................................................................................................................................??????????????????????
???  
 JFIF      ?? C      


!"$"$?? C    
?? p 
" ??     
         ??             ?   
   ????

(%	aA*?XYD?(J??E  RE,P XYae?)(E  2 B  R  	BQ    X?)X     ?  @  

adadasdasdasasdasdas


.....................................................................................................................................
S]c           @   s  d  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	 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, e j- j. e j- j/ e0   Z1 d Z2 d Z3 d Z4 e rd  Z5 n  e j d!  Z6 d"   Z7 d#   Z8 d$   Z9 d%   Z: d&   Z; d'   Z< e j= d(    Z> e j= d)    Z? e+ j@ e d*  d+ e+ jA f d,     Y ZB e+ j@ e d*  d- e+ jA f d.     Y ZC e+ j@ e d*  d/ e+ jA f d0     Y ZD e+ j@ e d*  d1 e+ jA f d2     Y ZE e+ j@ e d*  d3 e+ jA f d4     Y ZF e+ j@ e d*  d5 e+ jA f d6     Y ZG e+ j@ e d*  d7 e+ jA f d8     Y ZH e+ j@ e d*  d9 e+ jA f d:     Y ZI e+ j@ e d*  d; e+ jA f d<     Y ZJ e+ j@ e d*  d= e+ jA f d>     Y ZK e+ j@ e d*  d? e+ jA f d@     Y ZL e+ j@ e d*  dA e+ jA f dB     Y ZM e+ j@ e d*  dC e+ jA f dD     Y ZN e+ j@ e d*  dE e+ jA f dF     Y ZO e+ j@ e d*  dG e+ jA f dH     Y ZP e+ j@ e d*  e+ j@ e dI  dJ e+ jA f dK     Y  ZQ e+ j@ e d*  dL e+ jA f dM     Y ZR e+ j@ e d*  dN e+ jA f dO     Y ZS e+ j@ e d*  dP e+ jA f dQ     Y ZT e+ j@ e d*  dR e+ jA f dS     Y ZU e+ j@ e d*  dT e+ jA f dU     Y ZV eW dV k rd dW lX mY ZY eY e0  n  d S(X   s   Linux specific tests.i(   t   divisionN(   t   LINUX(   t
   basestring(   t   FileNotFoundError(   t   PY3(   t   u(   t
   call_until(   t   HAS_BATTERY(   t   HAS_CPU_FREQ(   t   HAS_GETLOADAVG(   t
   HAS_RLIMIT(   t   MEMORY_TOLERANCE(   t   mock(   t   PYPY(   t   pyrun(   t   reap_children(   t   reload_module(   t   retry_on_failure(   t   safe_rmpath(   t   sh(   t   skip_on_not_implemented(   t   TESTFN(   t
   ThreadTask(   t   TRAVIS(   t   unittest(   t   whichi  i  i'  i   s   /sys/class/hwmon/hwmon*c         C   s   d d  l  } |  d  }  t r. t |  d  }  n  t j t j t j  } t j |  : t j | j	 | j
   t t j d |    d d ! SWd  QXd  S(   Nii   t   asciit   256si   i   (   t   fcntlR   t   bytest   sockett   AF_INETt
   SOCK_DGRAMt
   contextlibt   closingt	   inet_ntoat   ioctlt   filenot   SIOCGIFADDRt   structt   pack(   t   ifnameR   t   s(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   get_ipv4_addressB   s    
c      
   C   s   d d  l  } |  d  }  t r. t |  d  }  n  t j t j t j  } t j |   | j | j	   t
 t j d |    } t r d   } n d d  l } | j } d j g  | d d !D] } d	 | |  ^ q  d  SWd  QXd  S(
   Nii   R   R   c         S   s   |  S(   N(    (   t   x(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   ordY   s    t    i   i   s   %02x:(   R   R   R   R   R   R    R!   R"   R$   R%   t   SIOCGIFHWADDRR'   R(   t   __builtin__R-   t   join(   R)   R   R*   t   infoR-   R0   t   char(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   get_mac_addressO   s    
!	c          C   s   t  d d i d d 6}  |  j d  } xi | D]a } | j d  r/ | j   \ } } } } t j d d  } | t |  t |  t |   Sq/ Wt d	 d j |    d
 S(   sQ   Parse 'free' cmd and return swap memory's s total, used and free
    values.
    s   free -bt   envs   C.UTF-8t   LANGs   
t   Swapt   frees   total used frees&   can't find 'Swap' in 'free' output:
%sN(   R   t   splitt
   startswitht   collectionst
   namedtuplet   intt
   ValueErrorR1   (   t   outt   linest   linet   _t   totalt   usedR8   t   nt(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   free_swapa   s    &c    	      C   s   t  d d i d d 6}  |  j d  } x} | D]u } | j d  r/ g  | j   d d !D] } t |  ^ qX \ } } } } t j d	 d
  } | | | | | |   Sq/ Wt d d j |    d S(   sS   Parse 'free' cmd and return physical memory's total, used
    and free values.
    s   free -bR5   s   C.UTF-8R6   s   
t   Memi   i   R8   s   total used free shared outputs%   can't find 'Mem' in 'free' output:
%sN(   R   R9   R:   R=   R;   R<   R>   R1   (	   R?   R@   RA   R,   RC   RD   R8   t   sharedRE   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   free_physmemp   s    8c         C   sv   t  d d i d d 6} xF | j d  D]5 } | j   } |  | k r) t | j d  d  Sq) Wt d |    d  S(	   Ns	   vmstat -sR5   s   C.UTF-8R6   s   
t    i    s    can't find %r in 'vmstat' output(   R   R9   t   stripR=   R>   (   t   statR?   RA   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   vmstat   s    c          C   s8   t  d  j   }  t t t |  j   d j d    S(   Ns   free -Vit   .(   R   RK   t   tuplet   mapR=   R9   (   R?   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   get_free_version_info   s    c         #   sZ       f d   } t   t r' d n d } t j | d t d |  } | VWd QXd S(   s   Mock open() builtin and forces it to return a certain `content`
    on read() if the path being opened matches `for_path`.
    c            sb   |   k rN t  r> t   t  r. t j    St j    Sq^ t j    Sn  |  | |  Sd  S(   N(   R   t
   isinstanceR   t   iot   StringIOt   BytesIO(   t   namet   argst   kwargs(   t   contentt   for_patht	   orig_open(    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   open_mock   s    s   builtins.opens   __builtin__.opent   createt   side_effectN(   t   openR   R   t   patcht   True(   RZ   RY   R\   t   patch_pointt   m(    (   RY   RZ   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   mock_open_content   s
    c         #   sZ       f d   } t   t r' d n d } t j | d t d |  } | VWd QXd S(   sZ   Mock open() builtin and raises `exc` if the path being opened
    matches `for_path`.
    c            s)   |   k r    n  |  | |  Sd  S(   N(    (   RV   RW   RX   (   t   excRZ   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\      s    	s   builtins.opens   __builtin__.openR]   R^   N(   R_   R   R   R`   Ra   (   RZ   Re   R\   Rb   Rc   (    (   Re   RZ   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   mock_open_exception   s
    s
   LINUX onlyt   TestSystemVirtualMemoryc           B   s  e  Z d    Z e j e o' e   d k  d  e   d     Z e j e	 d  e   d     Z
 e   d    Z e j e	 d  e   d     Z e j e	 d  e   d	     Z e   d
    Z e   d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s3   t  d  d } t j   j } |  j | |  d  S(   Ns   total memoryi   (   RM   t   psutilt   virtual_memoryRC   t   assertAlmostEqual(   t   selft   vmstat_valuet   psutil_value(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt
   test_total   s    i   i   s   old free versionc      
   C   sQ   t    } | j } t j   j } |  j | | d t d d | | | j f d  S(   Nt   deltat   msgs	   %s %s 
%s(   RI   RD   Rh   Ri   Rj   R   t   output(   Rk   R8   t
   free_valueRm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_used   s    		s   unreliable on TRAVISc         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   free memoryi   Ro   (   RM   Rh   Ri   R8   Rj   R   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_free   s    c         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   buffer memoryi   Ro   (   RM   Rh   Ri   t   buffersRj   R   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_buffers   s    c         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   active memoryi   Ro   (   RM   Rh   Ri   t   activeRj   R   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_active   s    c         C   s9   t  d  d } t j   j } |  j | | d t d  S(   Ns   inactive memoryi   Ro   (   RM   Rh   Ri   t   inactiveRj   R   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_inactive   s    c      
   C   so   t    } | j } | d k r0 t j d   n  t j   j } |  j | | d t d d | | | j f d  S(   Ni    s%   free does not support 'shared' columnRo   Rp   s	   %s %s 
%s(	   RI   RH   R   t   SkipTestRh   Ri   Rj   R   Rq   (   Rk   R8   Rr   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_shared   s    		c      
   C   s   t  d  } | j d  } d | d k r= t j d   nR t | d j   d  } t j   j } |  j | | d t	 d	 d
 | | | f d  S(   Ns   free -bs   
t	   availablei    s(   free does not support 'available' columni   iRo   Rp   s	   %s %s 
%s(
   R   R9   R   R{   R=   Rh   Ri   R}   Rj   R   (   Rk   R?   R@   Rr   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_available  s    c         C   s  t  d t j d  j    } t j d t  t} t j d  t j	   } |  j
 t |  d  | d } |  j d t | j   |  j d t | j   |  j d	 t | j   |  j d
 t | j   |  j d t | j   |  j d t | j   |  j d t | j   |  j
 | j d  |  j
 | j d  |  j
 | j d  |  j
 | j d  |  j
 | j d  |  j
 | j d  |  j
 | j d  Wd  QXWd  QXd  S(   Ns   /proc/meminfosp                  Active(anon):    6145416 kB
                Active(file):    2950064 kB
                Inactive(anon):   574764 kB
                Inactive(file):  1567648 kB
                MemAvailable:         -1 kB
                MemFree:         2057400 kB
                MemTotal:       16325648 kB
                SReclaimable:     346648 kB
                t   recordt   alwaysi   i    s#   memory stats couldn't be determinedt   cachedRH   Rw   Ry   Ru   R}   (   Rd   t   textwrapt   dedentt   encodet   warningst   catch_warningsRa   t   simplefilterRh   Ri   t   assertEqualt   lent   assertInt   strt   messageR   Rw   Ry   RH   Ru   R}   t   slab(   Rk   Rc   t   wst   rett   w(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_warnings_on_misses  s0    	
c   
   	   C   s   d d l  m } d d l  m } i  } | d  @ } x6 | D]. } | j   } t | d  d | | d <q< WWd  QX| |  } d | k r | d } t | |  | d	 }	 |  j |	 d
  n  d  S(   Ni(   t   calculate_avail_vmem(   t   open_binarys   /proc/meminfoi   i   i    s   MemAvailable:id   i
   (   t   psutil._pslinuxR   R   R9   R=   t   abst
   assertLess(
   Rk   R   R   t   memst   fRA   t   fieldst   at   bt   diff_percent(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_avail_old_percent<  s    &
c      	   C   s   t  d t j d  j    d } t j d t   } t j   } Wd  QX|  j	 | j
 d  | d } |  j d t | j   Wd  QXd  S(	   Ns   /proc/meminfosL                  Active:          9444728 kB
                Active(anon):    6145416 kB
                Active(file):    2950064 kB
                Buffers:          287952 kB
                Cached:          4818144 kB
                Inactive(file):  1578132 kB
                Inactive(anon):   574764 kB
                Inactive(file):  1567648 kB
                MemAvailable:    6574984 kB
                MemFree:         2057400 kB
                MemTotal:       16325648 kB
                Shmem:            577588 kB
                SReclaimable:     346648 kB
                R   iSd i   i    s,   inactive memory stats couldn't be determinedI  N   (   Rd   R   R   R   R   R   Ra   Rh   Ri   R   R}   R   R   R   (   Rk   Rc   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt    test_avail_old_comes_from_kernelN  s    
c      
   C   s   t  d t j d  j    h } t j d t   } t j   } Wd  QX|  j	 | j
 d	 d
  | d } |  j d t | j   Wd  QXd  S(   Ns   /proc/meminfos                      Active:          9444728 kB
                    Active(anon):    6145416 kB
                    Buffers:          287952 kB
                    Cached:          4818144 kB
                    Inactive(file):  1578132 kB
                    Inactive(anon):   574764 kB
                    MemFree:         2057400 kB
                    MemTotal:       16325648 kB
                    Shmem:            577588 kB
                    R   id i   iI i    s,   inactive memory stats couldn't be determinedi }I &   (   Rd   R   R   R   R   R   Ra   Rh   Ri   R   R}   R   R   R   (   Rk   Rc   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_avail_old_missing_fieldsj  s    

c         C   s   t  d t j d  j     t d t t j d   f t j	 d t
  M } t j   } |  j | j d d  | d	 } |  j d
 t | j   Wd  QXWd  QXWd  QXd  S(   Ns   /proc/meminfosT                      Active:          9444728 kB
                    Active(anon):    6145416 kB
                    Active(file):    2950064 kB
                    Buffers:          287952 kB
                    Cached:          4818144 kB
                    Inactive(file):  1578132 kB
                    Inactive(anon):   574764 kB
                    Inactive(file):  1567648 kB
                    MemFree:         2057400 kB
                    MemTotal:       16325648 kB
                    Shmem:            577588 kB
                    SReclaimable:     346648 kB
                    s   /proc/zoneinfos   no such file or directoryR   id i   iI i    s,   inactive memory stats couldn't be determinedi }I &   (   Rd   R   R   R   Rf   t   IOErrort   errnot   ENOENTR   R   Ra   Rh   Ri   R   R}   R   R   R   (   Rk   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_avail_old_missing_zoneinfo  s    
c            s    f d   } t    t r! d n d } t j | d t d |  } t j   } |  j | j d  |  j | j	 d  |  j | j
 d  |  j | j d  |  j | j d  |  j | j d  |  j | j d  |  j | j d  |  j | j d  Wd  QXd  S(   Nc            s<   |  d k r( t  j t j d  j    S  |  | |  Sd  S(   Ns   /proc/meminfos=	                      MemTotal:              100 kB
                    MemFree:               2 kB
                    MemAvailable:          3 kB
                    Buffers:               4 kB
                    Cached:                5 kB
                    SwapCached:            6 kB
                    Active:                7 kB
                    Inactive:              8 kB
                    Active(anon):          9 kB
                    Inactive(anon):        10 kB
                    Active(file):          11 kB
                    Inactive(file):        12 kB
                    Unevictable:           13 kB
                    Mlocked:               14 kB
                    SwapTotal:             15 kB
                    SwapFree:              16 kB
                    Dirty:                 17 kB
                    Writeback:             18 kB
                    AnonPages:             19 kB
                    Mapped:                20 kB
                    Shmem:                 21 kB
                    Slab:                  22 kB
                    SReclaimable:          23 kB
                    SUnreclaim:            24 kB
                    KernelStack:           25 kB
                    PageTables:            26 kB
                    NFS_Unstable:          27 kB
                    Bounce:                28 kB
                    WritebackTmp:          29 kB
                    CommitLimit:           30 kB
                    Committed_AS:          31 kB
                    VmallocTotal:          32 kB
                    VmallocUsed:           33 kB
                    VmallocChunk:          34 kB
                    HardwareCorrupted:     35 kB
                    AnonHugePages:         36 kB
                    ShmemHugePages:        37 kB
                    ShmemPmdMapped:        38 kB
                    CmaTotal:              39 kB
                    CmaFree:               40 kB
                    HugePages_Total:       41 kB
                    HugePages_Free:        42 kB
                    HugePages_Rsvd:        43 kB
                    HugePages_Surp:        44 kB
                    Hugepagesize:          45 kB
                    DirectMap46k:          46 kB
                    DirectMap47M:          47 kB
                    DirectMap48G:          48 kB
                    (   RS   RU   R   R   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s    1s   builtins.opens   __builtin__.openR]   R^   id   i   i   i   i   i   i   i   i   i   i   i  i   i   i   i p  i T  i   i    i X  i   (   R_   R   R   R`   Ra   Rh   Ri   R   RC   R8   Ru   R   RH   Rw   Ry   R   R}   (   Rk   R\   Rb   Rc   t   mem(    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_virtual_memory_mocked  s    7(   i   i   i   (   t   __name__t
   __module__Rn   R   t   skipIfR   RQ   R   Rs   R   Rt   Rv   Rx   Rz   R|   R~   R   R   R   R   R   R   (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRg      s&   			'				t   TestSystemSwapMemoryc           B   sh   e  Z e d     Z d   Z e   d    Z e   d    Z d   Z d   Z	 d   Z
 d   Z RS(   c          C   s7   t  d   }  |  j   } Wd QXd | k o6 d | k S(   s3   Return True if /proc/meminfo provides swap metrics.s   /proc/meminfoNs
   SwapTotal:s	   SwapFree:(   R_   t   read(   R   t   data(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   meminfo_has_swap_info  s    c         C   s1   t    j } t j   j } |  j | | d t S(   NRo   (   RF   RC   Rh   t   swap_memoryRj   R   (   Rk   Rr   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRn     s    c         C   s1   t    j } t j   j } |  j | | d t S(   NRo   (   RF   RD   Rh   R   Rj   R   (   Rk   Rr   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRs     s    c         C   s1   t    j } t j   j } |  j | | d t S(   NRo   (   RF   R8   Rh   R   Rj   R   (   Rk   Rr   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRt     s    c         C   s   t  j d d t  } t j d t   } t j d  t j   } |  j t	 |  d  | d } |  j
 d t | j   |  j | j d  |  j | j d  Wd  QXWd  QXd  S(   Ns   psutil._common.openR]   R   R   i   i    s9   'sin' and 'sout' swap memory stats couldn't be determined(   R   R`   Ra   R   R   R   Rh   R   R   R   R   R   R   t   sint   sout(   Rk   Rc   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_missing_sin_sout  s    
c         C   s   t  d t t j d    } t j d t   } t j d  t j	   } |  j
 t |  d  | d } |  j d t | j   |  j
 | j d  |  j
 | j d  Wd  QXWd  QXd  S(   Ns   /proc/vmstats   no such file or directoryR   R   i   i    sK   'sin' and 'sout' swap memory stats couldn't be determined and were set to 0(   Rf   R   R   R   R   R   Ra   R   Rh   R   R   R   R   R   R   R   R   (   Rk   Rc   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_no_vmstat_mocked  s    
c         C   s   |  j    s t j d  St j d   } t j   } Wd  QXd d  l j } | j	   \ } } } } } } } | | 9} | | 9} |  j
 | j |  |  j | j | d t d  S(   Ns!   /proc/meminfo has no swap metricss"   psutil._pslinux.cext.linux_sysinfoiRo   (   R   R   t   skipR   R`   Rh   R   t   psutil._psutil_linuxt   _psutil_linuxt   linux_sysinfoR   RC   Rj   R8   R   (   Rk   Rc   t   swapt   cextRB   RC   R8   t   unit_multiplier(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_meminfo_against_sysinfo1  s    !

c         C   s&   t  d d   } t j   Wd  QXd  S(   Ns   /proc/meminfoR.   (   Rd   Rh   R   (   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt#   test_emulate_meminfo_has_no_metricsA  s    
(   R   R   t   staticmethodR   Rn   R   Rs   Rt   R   R   R   R   (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s   				t   TestSystemCPUTimesc           B   s#   e  Z e j e d   d    Z RS(   s   unknown failure on travisc         C   s   t  j   j } t j d t j   d  d } t t t	 | j
 d    } | d k rl |  j d |  n |  j d |  | d k r |  j d	 |  n |  j d	 |  | d k r |  j d |  n |  j d |  d  S(   Ns   \d+\.\d+\.\d+i   i    RN   i   i   t   steali   t   guesti   t
   guest_nice(   i   i   i   (   i   i   i   (   i   i   i    (   Rh   t	   cpu_timest   _fieldst   ret   findallt   ost   unameRO   RP   R=   R9   R   t   assertNotIn(   Rk   R   t
   kernel_vert   kernel_ver_info(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_fieldsR  s     (   R   R   R   R   R   R   (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR   O  s   t   TestSystemCPUCountLogicalc           B   s   e  Z e j e j j d   d  d    Z e j e j j d  d  d    Z e j e	 d  d  d    Z
 e j e	 d	  d
  d    Z d   Z RS(   s   /sys/devices/system/cpu/onlines-   /sys/devices/system/cpu/online does not existc         C   ss   t  d   } | j   j   } Wd  QXd t |  k ro t | j d  d  d } |  j t j   |  n  d  S(   Ns   /sys/devices/system/cpu/onlinet   -i   (	   R_   R   RK   R   R=   R9   R   Rh   t	   cpu_count(   Rk   R   t   value(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_sysdev_cpu_onlineh  s
    s   /sys/devices/system/cpus&   /sys/devices/system/cpu does not existc         C   s`   t  j d  } t g  | D]$ } t j d |  d  k	 r | ^ q  } |  j t j   |  d  S(   Ns   /sys/devices/system/cpus   cpu\d+$(	   R   t   listdirR   R   t   searcht   NoneR   Rh   R   (   Rk   t   lsR,   t   count(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_sysdev_cpu_numq  s    7t   nprocs   nproc utility not availablec         C   s2   t  t d   } |  j t j d t  |  d  S(   Ns   nproc --allt   logical(   R=   R   R   Rh   R   Ra   (   Rk   t   num(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_nprocx  s    t   lscpus   lscpu utility not availablec         C   sc   t  d  } t g  | j d  D] } | j d  s | ^ q  } |  j t j d t  |  d  S(   Ns   lscpu -ps   
t   #R   (   R   R   R9   R:   R   Rh   R   Ra   (   Rk   R?   R,   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_lscpu}  s    7c         C   s`  d d  l  } | j j   } t j d d t *} |  j | j j   |  t j d d t K } |  j | j j    |  j | j	 d  |  j | j
 d d d  Wd  QXt d	 d
   } | j   } Wd  QXt j |  } t j d d | d t   } |  j | j j   |  Wd  QXt d	 d  ' } |  j | j j   |  | j Wd  QXWd  QXd  S(   Nis   psutil._pslinux.os.sysconfR^   s   psutil._common.openR]   i   i    s
   /proc/stats   /proc/cpuinfot   rbt   return_valueR.   (   R   t   _pslinuxt   cpu_count_logicalR   R`   R>   R   Ra   t   assertIsNonet
   call_countt	   call_argsR_   R   RS   RU   Rd   t   called(   Rk   Rh   t   originalRc   R   t   cpuinfo_datat	   fake_file(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_fallbacks  s$    !(   R   R   R   R   R   t   patht   existsR   R   R   R   R   R   (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR   e  s   ""t   TestSystemCPUCountPhysicalc           B   s3   e  Z e j e d   d  d    Z d   Z RS(   R   s   lscpu utility not availablec         C   s   t  d  } t   } xI | j d  D]8 } | j d  s% | j d  } | j | d  q% q% W|  j t j d t  t	 |   d  S(   Ns   lscpu -ps   
R   t   ,i   R   (
   R   t   setR9   R:   t   addR   Rh   R   t   FalseR   (   Rk   R?   t   core_idsRA   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s    	c      
   C   sV   t  j d d g  ; } t  j d d t  } |  j t j j    Wd  QXWd  QXd  S(   Ns	   glob.globR   s   psutil._common.openR]   (   R   R`   Ra   R   Rh   R   t   cpu_count_physical(   Rk   t   m1t   m2(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_none  s    "(   R   R   R   R   R   R   R   (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s   "
t   TestSystemCPUFrequencyc           B   s   e  Z e j e d   e j e d  d     Z e j e d  d    Z e j e d  d    Z e j e d  d    Z	 e j e d   e j e d  d     Z
 RS(   s   fails on Traviss   not supportedc            sA     f d   } t  j j   t j d d | d t  Wd  QXd  S(   Nc            s!   |  j  d  r t S  |   Sd  S(   Ns&   /sys/devices/system/cpu/cpufreq/policy(   R:   R   (   R   (   t   orig_exists(    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   path_exists_mock  s    s   os.path.existsR^   R]   (   R   R   R   R   R`   Ra   (   Rk   R   (    (   R   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_use_second_file  s
    
c            s      f d   } g    t  j j  z t j d d |  t t j  t j   } |  j	 | j
 d  |  j	 | j d  x@ t j d t  D], } |  j	 | j
 d  |  j	 | j d  q WWd  QXWd  t t j  t t  Xd  S(   Nc            s=   |  j  d  r t S|  d k r/   j d   n   |   Sd  S(   Ns   /sys/devices/system/cpu/s   /proc/cpuinfo(   R:   R   t   appendR   (   R   (   t   flagst   os_path_exists(    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s
    s   os.path.existsR^   g        t   percpu(   R   R   R   R   R`   R   Rh   R   t   cpu_freqR   t   maxt   minRa   (   Rk   R   R   t   freq(    (   R   R   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_use_cpuinfo  s    !c            s     f d   } t    t r! d n d } t j | d |  t j d d t n t j   } |  j | j d  | j	 d k r |  j | j	 d	  n  | j
 d k r |  j | j
 d
  n  Wd  QXWd  QXd  S(   Nc            s   |  j  d  r+ |  j d  r+ t j d  S|  j  d  rV |  j d  rV t j d  S|  j  d  r |  j d  r t j d  S|  d k r t j d	  S  |  | |  Sd  S(
   Ns   /scaling_cur_freqs&   /sys/devices/system/cpu/cpufreq/policyt   500000s   /scaling_min_freqt   600000s   /scaling_max_freqt   700000s   /proc/cpuinfos   cpu MHz		: 500(   t   endswithR:   RS   RU   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s    s   builtins.opens   __builtin__.openR^   s   os.path.existsR   g     @@g        g     @g     @(   R_   R   R   R`   Ra   Rh   R   R   t   currentR   R   (   Rk   R\   Rb   R   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_data  s    c            ss    f d   } t    t r! d n d } t j | d | 1t j d d t t j d d d  t j d	 t  } |  j | d
 j d  | d
 j	 d k r |  j | d
 j	 d  n  | d
 j
 d k r |  j | d
 j
 d  n  |  j | d j d  | d j	 d k r0|  j | d j	 d  n  | d j
 d k r]|  j | d j
 d  n  Wd  QXWd  QXWd  QXd  S(   Nc      
      s5  |  } | j  d  r1 | j d  r1 t j d  S| j  d  r\ | j d  r\ t j d  S| j  d  r | j d  r t j d  S| j  d  r | j d  r t j d	  S| j  d  r | j d  r t j d
  S| j  d  r| j d  rt j d  S|  d k r!t j d  S  |  | |  Sd  S(   Ns   /scaling_cur_freqs'   /sys/devices/system/cpu/cpufreq/policy0t   100000s   /scaling_min_freqt   200000s   /scaling_max_freqt   300000s'   /sys/devices/system/cpu/cpufreq/policy1t   400000R  R  s   /proc/cpuinfos   cpu MHz		: 100
cpu MHz		: 400(   R  R:   RS   RU   (   RV   RW   RX   t   n(   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   
  s,    s   builtins.opens   __builtin__.openR^   s   os.path.existsR   s!   psutil._pslinux.cpu_count_logicali   R   i    g      Y@g        g      i@g     r@i   g      y@g     @@g     @(   R_   R   R   R`   Ra   Rh   R   R   R  R   R   (   Rk   R\   Rb   R   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_multi_cpu  s$    
c            s     f d   } t    t r! d n d } t j | d | \ t j d d t @ t j d d d $ t j   } |  j | j d	  Wd  QXWd  QXWd  QXd  S(
   Nc            sm   |  j  d  r$ t t j d   nE |  j  d  r@ t j d  S|  d k rY t j d  S  |  | |  Sd  S(   Ns   /scaling_cur_freqR.   s   /cpuinfo_cur_freqR  s   /proc/cpuinfos   cpu MHz		: 200(   R  R   R   R   RS   RU   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   :  s    s   builtins.opens   __builtin__.openR^   s   os.path.existsR   s!   psutil._pslinux.cpu_count_logicali   i   (	   R_   R   R   R`   Ra   Rh   R   R   R  (   Rk   R\   Rb   R   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt%   test_emulate_no_scaling_cur_freq_file6  s    

(   R   R   R   R   R   R   R   R   R  R  R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s   .t   TestSystemCPUStatsc           B   s>   e  Z e j e d   d    Z e j e d   d    Z RS(   s   fails on Travisc         C   s5   t  d  } t j   j } |  j | | d d d  S(   Ns   context switchesRo   i  (   RM   Rh   t	   cpu_statst   ctx_switchesRj   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_ctx_switchesQ  s    c         C   s5   t  d  } t j   j } |  j | | d d d  S(   Nt
   interruptsRo   i  (   RM   Rh   R  R  Rj   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_interruptsW  s    (   R   R   R   R   R   R  R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  N  s   t   TestLoadAvgc           B   s$   e  Z e j e d   d    Z RS(   s   not supportedc         C   s   t  j   } t d d   } | j   j   } Wd  QX|  j t | d  | d d d |  j t | d  | d d d |  j t | d  | d d d d  S(   Ns   /proc/loadavgt   ri    Ro   i   i   (   Rh   t
   getloadavgR_   R   R9   Rj   t   float(   Rk   Rm   R   t
   proc_value(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_getloadavga  s    $$(   R   R   R   R   R	   R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  ^  s   t   TestSystemNetIfAddrsc           B   s   e  Z d    Z RS(   c         C   s   x t  j   j   D]y \ } } xj | D]b } | j t  j k rZ |  j | j t |   q& | j t j	 k r& |  j | j t
 |   q& q& Wq Wd  S(   N(   Rh   t   net_if_addrst   itemst   familyt   AF_LINKR   t   addressR4   R   R   R+   (   Rk   RV   t   addrst   addr(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_ipst  s    (   R   R   R"  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  q  s   t   TestSystemNetIfStatsc           B   s   e  Z d    Z RS(   c         C   sx   xq t  j   j   D]] \ } } y t d |  } Wn t k
 rF q X|  j | j t t j	 d |  d   q Wd  S(   Ns   ifconfig %ss   (?i)MTU[: ](\d+)i    (
   Rh   t   net_if_statsR  R   t   RuntimeErrorR   t   mtuR=   R   R   (   Rk   RV   t   statsR?   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_ifconfig  s    (   R   R   R(  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR#    s   t   TestSystemNetIOCountersc           B   s   e  Z e   d     Z RS(   c            sW    f d   } t  j d t d t  } x)| j   D]\   } y |    } Wn t k
 rf q4 n X|  j | j | d d d |  j | j | d d d |  j | j	 | d	 d d |  j | j
 | d
 d d |  j | j | d d d |  j | j | d d d |  j | j | d d d |  j | j | d d d q4 Wd  S(   Nc            s  i  } t  d    } t t j d |  d  | d <t t j d |  d  | d <t t j d |  d  | d <t t j d |  d	  | d
 <t t j d |  d  | d <t t j d |  d	  | d <t t j d |  d  | d <t t j d |  d  | d <| S(   Ns   ifconfig %ss   RX packets[: ](\d+)i    t   packets_recvs   TX packets[: ](\d+)t   packets_sents   errors[: ](\d+)t   errini   t   errouts   dropped[: ](\d+)t   dropint   dropouts#   RX (?:packets \d+ +)?bytes[: ](\d+)t
   bytes_recvs#   TX (?:packets \d+ +)?bytes[: ](\d+)t
   bytes_sent(   R   R=   R   R   (   t   nicR   R?   (   RV   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   ifconfig  s        t   pernict   nowrapR0  Ro   i   i   R1  R*  R+  R,  i
   R-  R.  R/  i   i   (   Rh   t   net_io_countersRa   R   R  R%  Rj   R0  R1  R*  R+  R,  R-  R.  R/  (   Rk   R3  t   nioR'  t   ifconfig_ret(    (   RV   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR(    s.    (   R   R   R   R(  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR)    s   t   TestSystemNetConnectionsc           B   sD   e  Z e j d  d e e j d d e d     Z d   Z RS(   s    psutil._pslinux.socket.inet_ntopR^   s   psutil._pslinux.supports_ipv6R   c         C   sd   y9 t  j  t  j t  j  } |  j | j  | j d  Wn t  j k
 rO n Xt j d d  d  S(   Ns   ::1i    t   kindt   inet6(   s   ::1i    (	   R   t   AF_INET6t   SOCK_STREAMt
   addCleanupt   closet   bindt   errorRh   t   net_connections(   Rk   t   supports_ipv6t	   inet_ntopR*   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_ipv6_unsupported  s    c         C   s5   t  d t j d    } t j d d  Wd  QXd  S(   Ns   /proc/net/unixs.                  0: 00000003 000 000 0001 03 462170 @/tmp/dbus-Qw2hMPIU3n
                0: 00000003 000 000 0001 03 35010 @/tmp/dbus-tB2X8h69BQ
                0: 00000003 000 000 0001 03 34424 @/tmp/dbus-cHy80Y8O
                000000000000000000000000000000000000000000000000000000
                R:  t   unix(   Rd   R   R   Rh   RB  (   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_unix  s    (   R   R   R   R`   R>   R   RE  RG  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR9    s   !t   TestSystemDiskPartitionsc           B   sH   e  Z e j e e d   d  e   d     Z d   Z d   Z	 RS(   t   statvfss   os.statvfs() not availablec         C   s   d   } x t  j d t  D] } t  j | j  } | | j  \ } } } } |  j | j |  t | j |  d k r |  j	 d | j | f  n  t | j
 |  d	 k r |  j	 d | j
 | f  q q Wd  S(
   Nc         S   s   t  d |   j   } | j d  } | j d  | j d  } | j   d  \ } } } } | d k rr d } n  t |  t |  t |  } } } | | | | f S(   Ns   df -P -B 1 "%s"s   
i    i   t   noneR.   (   R   RK   R9   t   popR=   (   R   R?   R@   RA   t   devRC   RD   R8   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   df  s    	&t   alli
   i   s   psutil=%s, df=%si (  i   i (  i   (   Rh   t   disk_partitionsR   t
   disk_usaget
   mountpointR   RC   R   R8   t   failRD   (   Rk   RM  t   partt   usageRL  RC   RD   R8   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_against_df  s    	c         C   s   t  d d   } | j   } Wd  QXd | k rj x t j   D] } | j d k r= Pq= q= W|  j d  n} t j t d   } t	 j
 d d | d t K } t	 j
 d	 d d g * } t j   } |  j | d j d  Wd  QXWd  QXd  S(   Ns   /proc/filesystemsR  t   zfss   couldn't find any ZFS partitions
   nodev	zfs
s   psutil._common.openR   R]   s$   psutil._pslinux.cext.disk_partitionss	   /dev/sdb3t   /t   rwi    (   s	   /dev/sdb3RW  RV  RX  (   R_   R   Rh   RO  t   fstypeRR  RS   RT   R   R   R`   Ra   R   (   Rk   R   R   RS  R   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_zfs_fs
  s    c      	   C   sS   zB t  j d d d ' } |  j t   t j   Wd  QXWd  QXWd  d t _ Xd  S(   Ns   os.path.realpathR   s   /non/existents   /proc(   R   R`   t   assertRaisesR   Rh   RO  t   PROCFS_PATH(   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_realpath_fail"  s    
(
   R   R   R   R   t   hasattrR   R   RU  RZ  R]  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRH    s   	t   TestSystemDiskIoCountersc           B   sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  d d   t j d d t  t j d t  } |  j | j d  |  j | j	 d  |  j | j
 d t  |  j | j d	  |  j | j d
  |  j | j d  |  j | j d t  |  j | j d  |  j | j d  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss+      3     0   1 hda 2 3 4 5 6 7 8 9 10 11 12s!   psutil._pslinux.is_storage_deviceR   R5  i   i   i   i   i   i   i   i   i
   (   Rd   R   R`   Ra   Rh   t   disk_io_countersR   R   t
   read_countt   read_merged_countt
   read_bytest   SECTOR_SIZEt	   read_timet   write_countt   write_merged_countt   write_bytest
   write_timet	   busy_time(   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_kernel_2_41  s    

c         C   s   t  d d   t j d d t  t j d t  } |  j | j d  |  j | j	 d  |  j | j
 d t  |  j | j d	  |  j | j d
  |  j | j d  |  j | j d t  |  j | j d  |  j | j d  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss'      3    0   hda 1 2 3 4 5 6 7 8 9 10 11s!   psutil._pslinux.is_storage_deviceR   R5  i   i   i   i   i   i   i   i   i
   (   Rd   R   R`   Ra   Rh   R`  R   R   Ra  Rb  Rc  Rd  Re  Rf  Rg  Rh  Ri  Rj  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_kernel_2_6_fullD  s    

c         C   s   t  d d   t j d d t  t j d t  } |  j | j d  |  j | j	 d t
  |  j | j d  |  j | j d	 t
  |  j | j d
  |  j | j d
  |  j | j d
  |  j | j d
  |  j | j d
  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss      3    1   hda 1 2 3 4s!   psutil._pslinux.is_storage_deviceR   R5  i   i   i   i   i    (   Rd   R   R`   Ra   Rh   R`  R   R   Ra  Rc  Rd  Rf  Rh  Rb  Re  Rg  Ri  Rj  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_kernel_2_6_limitedX  s    

c         C   s   t  d t j d    t j d d t  t j d t d t  } |  j	 t
 |  d  |  j	 | d j d	  |  j	 | d
 j d	  |  j	 | d j d  |  j	 | d
 j d  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss                       3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
                    3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
                    s!   psutil._pslinux.is_storage_deviceR   t   perdiskR5  i   t   nvme0n1i   t	   nvme0n1p1i   (   Rd   R   R   R   R`   R   Rh   R`  Ra   R   R   Ra  Rf  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_include_partitionso  s    
c         C   s   t  d t j d   F t j d d t * t j d t d t  } |  j |  Wd  QXWd  QXd   } t  d t j d   e t j d d t	 d	 | C t j d t d t  } |  j
 | j d
  |  j
 | j d  Wd  QXWd  QXd  S(   Ns   /proc/diskstatss                       3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
                    3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
                    s!   psutil._pslinux.is_storage_deviceR   Rn  R5  c         S   s
   |  d k S(   NRo  (    (   RV   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   is_storage_device  s    R]   R^   i   i   (   Rd   R   R   R   R`   R   Rh   R`  R   Ra   R   Ra  Rf  (   Rk   R   Rr  (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_exclude_partitions  s$    
	c         C   so   d   } t  j d t  } t j d d t d |  t  j d t  } Wd  QX|  j t |  t |   d  S(   Nc         S   s   |  d k r t  St S(   Ns   /proc/diskstats(   R   Ra   (   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s    Rn  s   psutil._pslinux.os.path.existsR]   R^   (   Rh   R`  Ra   R   R`   R   R   (   Rk   R   t   wprocfst   wsysfs(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_use_sysfs  s    	c         C   sB   d   } t  j d d t d |  |  j t t j  Wd  QXd  S(   Nc         S   s   t  S(   N(   R   (   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR     s    s   psutil._pslinux.os.path.existsR]   R^   (   R   R`   Ra   R[  t   NotImplementedErrorRh   R`  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_not_impl  s    	(	   R   R   Rk  Rl  Rm  Rq  Rs  Rv  Rx  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR_  .  s   						t   TestMiscc           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s8   t  d  } t j   } |  j t |  t |   d  S(   Ns	   boot time(   RM   Rh   t	   boot_timeR   R=   (   Rk   Rl   Rm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_boot_time  s    c            s  t  j   } t t j j | d  d  . } | j d  | j d  | j d  Wd  QXz6t     f d   } t r~ d n d } t j	 | d	 | t
 t  |  j t t j  |  j t t j d
 t |  j t t j  |  j t t j d
 t |  j t t j  |  j t t j d
 t | t _ |  j t j   d  |  j t t j    d  t j d
 t  } |  j t |  d  t j d
 t  } |  j t t t |   d  t t j j | d  d  . } | j d  | j d  | j d  Wd  QX|  j t j   d  |  j t t j d
 t   d  |  j t t j    d  |  j t t t t j d
 t    d  Wd  QXWd  t j |  t
 t  X|  j t j d  d  S(   NRL   R   s   cpu   0 0 0 0 0 0 0 0 0 0
s   cpu0  0 0 0 0 0 0 0 0 0 0
s   cpu1  0 0 0 0 0 0 0 0 0 0
c            s4   |  j  d  r$ t t j d   n    |  | |  S(   Ns   /procs   rejecting access for test(   R:   R   R   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s    s   builtins.opens   __builtin__.openR^   R   i    s   cpu   1 0 0 0 0 0 0 0 0 0
s   cpu0  1 0 0 0 0 0 0 0 0 0
s   cpu1  1 0 0 0 0 0 0 0 0 0
s   /proc(   t   tempfilet   mkdtempR_   R   R   R1   t   writeR   R   R`   R   Rh   R[  R   R   Ra   t   cpu_percentt   cpu_times_percentR\  R   t   sumRP   t   assertNotEqualt   shutilt   rmtree(   Rk   t	   my_procfsR   R\   Rb   t   per_cpu_percentt   per_cpu_times_percent(    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_no_procfs_on_import  sL    !
	!/c      
   C   sx  t  d t j d  j    ; } t j   t j d t  t j   t j d t  Wd  QXt  d t j d  j     } t j   } t j d t  } t j   } t j d t  } |  j | d  |  j t	 |  d  |  j t	 |  d  |  j t	 |  d  |  j t	 t
 t	 |   d  |  j t	 t
 t	 |   d  |  j | j d  |  j | j d  Wd  QXd  S(   Ns
   /proc/stats                   cpu   0 0 0 0 0 0 0 1 0 0
                cpu0  0 0 0 0 0 0 0 1 0 0
                cpu1  0 0 0 0 0 0 0 1 0 0
                R   s                   cpu   1 0 0 0 0 0 0 0 0 0
                cpu0  1 0 0 0 0 0 0 0 0 0
                cpu1  1 0 0 0 0 0 0 0 0 0
                i    g      Y@(   Rd   R   R   R   Rh   R  Ra   R  R  R  RP   R   R   t   user(   Rk   Rc   R  t   cpu_percent_percpuR  t   cpu_times_percent_percpu(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cpu_steal_decrease  s0    

c         C   s8   t  j d d t  } |  j t t j j  Wd  QXd  S(   Ns   psutil._common.openR]   (   R   R`   Ra   R[  R%  Rh   R   Rz  (   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_boot_time_mocked(  s
    c         C   s   t  j d d d d d d t d f g $ } |  j t j   d j d	  Wd  QXt  j d d d d d
 d t d f g $ } |  j t j   d j d	  Wd  QXt  j d d d d d d t d f g $ } |  j t j   d j d  Wd  QXd  S(   Ns   psutil._pslinux.cext.usersR   t	   giampaolos   pts/2s   :0g   hAi   i    t	   localhosts   :0.0t   foo(   R   R`   Ra   R   Rh   t   userst   host(   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_users_mocked/  s    			c         C   s   t  j   } z | t _ |  j t t j  |  j t t j  |  j t t j d t |  j t t j	  |  j t t j
  |  j t t j  |  j t t j  |  j t t j  |  j t j t j  Wd  d t _ t j |  Xd  S(   NR   s   /proc(   R|  R}  Rh   R\  R[  R   Ri   R   Ra   Rz  RB  R6  R$  RO  t   NoSuchProcesst   ProcessR   t   rmdir(   Rk   t   tdir(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_procfs_pathC  s    		c         C   sw   t    } | j   zR t j   } | j   d j } t j |  } | j   |  j | t j    Wd  | j	   Xd  S(   Ni   (
   R   t   startRh   R  t   threadst   idt   as_dictR   t   pidst   stop(   Rk   t   tt   pt   tidt   pt(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_issue_687V  s    	

c         C   s   t  d d   } Wd  QXd  S(   Ns   /proc/%s/statusR.   (   Rd   (   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_pid_exists_no_proc_statush  s    (
   R   R   R{  R  R  R  R  R  R  R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRy    s   		<	)				s
   no batteryt   TestSensorsBatteryc           B   s   e  Z e j e d   d  d    Z e j e d   d  d    Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z RS(   t   acpis   acpi utility not availablec         C   s`   t  d  } t | j d  d j   j d d   } t j   j } |  j | | d d d  S(   Ns   acpi -bR   i   t   %R.   Ro   (	   R   R=   R9   RK   t   replaceRh   t   sensors_batteryt   percentRj   (   Rk   R?   t
   acpi_valueRm   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_percentz  s    +c         C   sv   t  d  } d | j   k r+ t j d  Sd | k r@ t } n d | j d  d k } |  j t j   j	 |  d  S(   Ns   acpi -bt   unknowns   acpi output not reliables   discharging at zero ratet   Chargings   
i    (
   R   t   lowerR   R   Ra   R9   R   Rh   R  t   power_plugged(   Rk   R?   t   plugged(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_power_plugged  s    	c            s~     f d   } t    t r! d n d } t j | d | < } |  j t j   j t  |  j t j   j	 t j
  Wd  QXd  S(   Nc            s?   |  j  d  s |  j  d  r+ t j d  S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlinet   1(   R  RS   RU   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s    s   builtins.opens   __builtin__.openR^   (   R_   R   R   R`   R   Rh   R  R  Ra   t   secsleftt   POWER_TIME_UNLIMITED(   Rk   R\   Rb   Rc   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_plugged  s    c            sb     f d   } t    t r! d n d } t j | d |   } |  j t j   j t  Wd  QXd  S(   Nc            si   |  j  d  s |  j  d  r3 t t j d   n2 |  j  d  rU t j t d   S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlineR.   s   /statust   charging(   R  R   R   R   RS   RT   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s
    s   builtins.opens   __builtin__.openR^   (	   R_   R   R   R`   R   Rh   R  R  Ra   (   Rk   R\   Rb   Rc   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_plugged_2  s    c            sb     f d   } t    t r! d n d } t j | d |   } |  j t j   j t  Wd  QXd  S(   Nc            s?   |  j  d  s |  j  d  r+ t j d  S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlinet   0(   R  RS   RU   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s    s   builtins.opens   __builtin__.openR^   (	   R_   R   R   R`   R   Rh   R  R  R   (   Rk   R\   Rb   Rc   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_not_plugged  s    c            sb     f d   } t    t r! d n d } t j | d |   } |  j t j   j t  Wd  QXd  S(   Nc            si   |  j  d  s |  j  d  r3 t t j d   n2 |  j  d  rU t j t d   S  |  | |  Sd  S(   Ns
   AC0/onlines	   AC/onlineR.   s   /statust   discharging(   R  R   R   R   RS   RT   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s
    s   builtins.opens   __builtin__.openR^   (	   R_   R   R   R`   R   Rh   R  R  R   (   Rk   R\   Rb   Rc   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt    test_emulate_power_not_plugged_2  s    c            s_     f d   } t    t r! d n d } t j | d |  } |  j t j   j  Wd  QXd  S(   Nc            sc   |  j  d  s |  j  d  r3 t t j d   n, |  j  d  rO t j d  S  |  | |  Sd  S(   Ns"   /sys/class/power_supply/AC0/onlines!   /sys/class/power_supply/AC/onlineR.   s#   /sys/class/power_supply/BAT0/statuss   ???(   R:   R   R   R   RS   RU   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s    s   builtins.opens   __builtin__.openR^   (   R_   R   R   R`   R   Rh   R  R  (   Rk   R\   Rb   Rc   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_power_undetermined  s    	c      
   C   s[   t  d t t j d   : t  d t t j d    |  j t j    Wd  QXWd  QXd  S(   Ns'   /sys/class/power_supply/BAT0/energy_nowR.   s'   /sys/class/power_supply/BAT0/charge_now(   Rf   R   R   R   R   Rh   R  (   Rk   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_no_base_files  s    c         C   s5   t  d d    } |  j t j   j d  Wd  QXd  S(   Ns(   /sys/class/power_supply/BAT0/energy_fullR  i    (   Rd   R   Rh   R  R  (   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_energy_full_0  s    c         C   sw   t  d t t j d   V t  d t t j d   4 t d d   |  j t j   j d  Wd  QXWd  QXWd  QXd  S(   Ns(   /sys/class/power_supply/BAT0/energy_fullR.   s(   /sys/class/power_supply/BAT0/charge_fulls%   /sys/class/power_supply/BAT0/capacityt   88iX   (	   Rf   R   R   R   Rd   R   Rh   R  R  (   Rk   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt"   test_emulate_energy_full_not_avail  s    c         C   s   t  d t t j d   _ t  d t t j d   = t  d t t j d    |  j t j   j  Wd  QXWd  QXWd  QXd  S(   Ns!   /sys/class/power_supply/AC/onlineR.   s"   /sys/class/power_supply/AC0/onlines#   /sys/class/power_supply/BAT0/status(   Rf   R   R   R   R   Rh   R  R  (   Rk   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_no_power  s    (   R   R   R   R   R   R  R  R  R  R  R  R  R  R  R  R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  v  s   ""								t   TestSensorsTemperaturesc           B   sM   e  Z e j e d   e j e o$ e d  d     Z d   Z d   Z	 RS(   s   unreliable on TRAVISs   no temperaturesc            s     f d   } t    t r! d n d } t j | d | U } t j d t  : } |  j t j	   i   |  j
 d t | d j   Wd  QXWd  QXd  S(   Nc            s\   |  j  d  r$ t t j d   n4 |  j  d  rH t t j d   n   |  | |  Sd  S(   Nt   _inputR.   t   temp(   R  t   OSErrorR   t   EIO(   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\     s
    s   builtins.opens   __builtin__.openR^   R   t   ignoringi    (   R_   R   R   R`   R   R   Ra   R   Rh   t   sensors_temperaturesR   R   R   (   Rk   R\   Rb   Rc   R   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_eio_error  s    c            s     f d   } t    t r! d n d } t j | d |  t j d d d g e t j   d d	 } |  j | j d
  |  j | j d  |  j | j	 d  |  j | j
 d  Wd  QXWd  QXd  S(   Nc            s   |  j  d  r" t j t d   S|  j  d  rD t j t d   S|  j  d  r` t j d  S|  j  d  r| t j d  S|  j  d	  r t j d
  S  |  | |  Sd  S(   Ns   /nameRV   s   /temp1_labelt   labels   /temp1_inputt   30000s
   /temp1_maxt   40000s   /temp1_critt   50000(   R  RS   RT   R   RU   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   "  s    s   builtins.opens   __builtin__.openR^   s	   glob.globR   s   /sys/class/hwmon/hwmon0/temp1RV   i    R  g      >@g      D@g      I@(   R_   R   R   R`   Rh   R  R   R  R  t   hight   critical(   Rk   R\   Rb   R  (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_class_hwmon!  s    c            s     f d   } d   } t    t r* d n d } t j | d |  t j d d t d | e t j   d d	 } |  j | j d
  |  j | j	 d  |  j | j
 d  |  j | j d  Wd  QXWd  QXd  S(   Nc            s   |  j  d  r t j d  S|  j  d  r8 t j d  S|  j  d  rZ t j t d   S|  j  d  r| t j t d   S  |  | |  Sd  S(	   Nt   0_tempR  R  R  t   0_typeR  t   typeRV   (   R  RS   RU   RT   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   =  s    c         S   sM   |  d k r g  S|  d k r  g  S|  d k r3 d g S|  d k rI d d g Sd  S(   Ns   /sys/class/hwmon/hwmon*/temp*_*s&   /sys/class/hwmon/hwmon*/device/temp*_*s    /sys/class/thermal/thermal_zone*s    /sys/class/thermal/thermal_zone0s,   /sys/class/thermal/thermal_zone0/trip_point*s2   /sys/class/thermal/thermal_zone1/trip_point_0_types2   /sys/class/thermal/thermal_zone1/trip_point_0_temp(    (   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   glob_mockI  s    s   builtins.opens   __builtin__.openR^   s	   glob.globR]   RV   i    R.   g      >@g      I@(   R_   R   R   R`   Ra   Rh   R  R   R  R  R  R  (   Rk   R\   R  Rb   R  (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_emulate_class_thermal<  s    	(
   R   R   R   R   R   R   t   EMPTY_TEMPERATURESR  R  R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR    s   $	t   TestSensorsFansc           B   s   e  Z d    Z RS(   c            s     f d   } t    t r! d n d } t j | d | ^ t j d d d g ? t j   d d	 } |  j | j d
  |  j | j d  Wd  QXWd  QXd  S(   Nc            sz   |  j  d  r" t j t d   S|  j  d  rD t j t d   S|  j  d  rf t j t d   S  |  | |  Sd  S(   Ns   /nameRV   s   /fan1_labelR  s   /fan1_inputt   2000(   R  RS   RT   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   c  s    s   builtins.opens   __builtin__.openR^   s	   glob.globR   s   /sys/class/hwmon/hwmon2/fan1RV   i    R  i  (	   R_   R   R   R`   Rh   t   sensors_fansR   R  R  (   Rk   R\   Rb   t   fan(    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  b  s    
(   R   R   R  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  _  s   t   TestProcessc           B   s   e  Z d    Z e Z d   Z d   Z e j e d  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 d   Z d   Z d   Z RS(   c         C   s   t  t  d  S(   N(   R   R   (   Rk   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   setUp  s    c         C   s'  t  j d t  } t |  } |  j t  t d   d t  t j | j	  } t
 j d  | j   } | j d t  } |  j | j t g  | D] } | j | j ^ q  d d |  j | j t g  | D] } | j ^ q  d d |  j | j t g  | D] } | j ^ q d d d  S(   Nsk   
            import time
            with open("%s", "w") as f:
                time.sleep(10)
            c           S   s   t  j d  S(   NRN   (   R   R   (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   <lambda>  s    s   '%s' not in retg?t   groupedRo   i   (   R   R   R   R   R>  R   R   Rh   R  t   pidt   timet   sleept   memory_full_infot   memory_mapsR   Rj   t   ussR  t   private_dirtyt   private_cleant   pssR   (   Rk   t   srct   sprocR  R   t   mapsR,   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_memory_full_info  s     //c         C   s   t  d t j   t j d  j    X } t j   } | j   } |  j	 | j
 d  |  j	 | j d  |  j	 | j d  Wd  QXd  S(   Ns   /proc/%s/smapss                  fffff0 r-xp 00000000 00:00 0                  [vsyscall]
                Size:                  1 kB
                Rss:                   2 kB
                Pss:                   3 kB
                Shared_Clean:          4 kB
                Shared_Dirty:          5 kB
                Private_Clean:         6 kB
                Private_Dirty:         7 kB
                Referenced:            8 kB
                Anonymous:             9 kB
                LazyFree:              10 kB
                AnonHugePages:         11 kB
                ShmemPmdMapped:        12 kB
                Shared_Hugetlb:        13 kB
                Private_Hugetlb:       14 kB
                Swap:                  15 kB
                SwapPss:               16 kB
                KernelPageSize:        17 kB
                MMUPageSize:           18 kB
                Locked:                19 kB
                VmFlags: rd ex
                i   i   i   i   i   i   i   i   i l  i   i <  (   Rd   R   t   getpidR   R   R   Rh   R  R  R   R  R  R   (   Rk   Rc   R  R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_memory_full_info_mocked  s    s   unreliable on PYPYc         C   s  d   } t  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt  t d   |  j |   j d  Wd  QXt rt t  t  t d   |  j |   j d  Wd  QXt t  t  t d	   |  j |   j d  Wd  QXn  d  S(
   Nc          S   s   t  j   }  t j   d } xV t rt xI |  j   D]; } | j t j j t  k rW | St j   | k r2 Pq2 q2 Wq Wt	 d   d  S(   Ni   s   timeout looking for test file(
   Rh   R  R  Ra   t
   open_filesR   R   t   abspathR   R%  (   R  t	   giveup_att   file(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   get_test_file  s    	R   R  R   s   r+s   w+s   a+R,   s   x+(   R_   R   R   t   modeR   R   (   Rk   R  (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_open_files_mode  s(    	

c         C   s   t  j   } | j   } t j    t | j d t |   t j d d t	 t
 j d   } | j   } Wd  QXt j d d t	 t
 j d   } |  j | j   g   Wd  QXWd  QXd  S(   Ns   len(ret) != %is   psutil._pslinux.os.readlinkR^   R.   (   Rh   R  R  R|  t   NamedTemporaryFileR   R   R   R`   R  R   R   t   EINVALR   (   Rk   R  t   filesRc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_open_files_file_gone  s    c      
   C   s   t  j   } | j   } t j   g t | j d t |   t rK d n d } t j	 | d t
 t j d   } | j   } Wd  QXWd  QXd  S(   Ns   len(ret) != %is   builtins.opens   __builtin__.openR^   R.   (   Rh   R  R  R|  R  R   R   R   R   R`   R   R   R   (   Rk   R  R  Rb   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_open_files_fd_gone  s    c         C   sG   t  j d d i  , } |  j t j j t j    j    Wd  QXd  S(   Ns)   psutil._pslinux._psposix.get_terminal_mapR   (	   R   R`   R   Rh   R   R  R   R  t   terminal(   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_terminal_mocked  s    %c      
   C   s   t  j   } t j t d   } t j d d | d t # } |  j | j	   d d g  Wd  QXt j t d   } t j d d | d t & } |  j | j	   d d d g  Wd  QXd  S(	   Nt   foo bar s   psutil._common.openR   R]   R  t   bart	   foo bar  R.   (
   Rh   R  RS   RT   R   R   R`   Ra   R   t   cmdline(   Rk   R  R   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cmdline_mocked  s    c      
   C   s   t  j   } t j t d   } t j d d | d t # } |  j | j	   d d g  Wd  QXt j t d   } t j d d | d t & } |  j | j	   d d d g  Wd  QXd  S(	   Ns   foo bar s   psutil._common.openR   R]   R  R  s	   foo bar  R.   (
   Rh   R  RS   RT   R   R   R`   Ra   R   R   (   Rk   R  R   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cmdline_spaces_mocked"  s    c         C   se   t  j   } t j t d   } t j d d | d t # } |  j | j	   d d g  Wd  QXd  S(   Ns   foo bar s   psutil._common.openR   R]   R  R  (
   Rh   R  RS   RT   R   R   R`   Ra   R   R   (   Rk   R  R   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cmdline_mixed_separators0  s    c         C   sX   t  j d d d = |  j t j   j   d  |  j t j   j   d  Wd  QXd  S(   Ns   psutil._pslinux.os.readlinkR   s   /home/foo (deleted)s	   /home/foo(   R   R`   R   Rh   R  t   exet   cwd(   Rk   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt!   test_readlink_path_deleted_mocked:  s    
c            s     f d   } t    t r! d n d } t j | d | ) } t j   j   } |  j | g   Wd  QX  f d   } t j | d | ! |  j t j	 t j   j  Wd  QXd  S(   Nc            sB   |  j  d t j    r. t t j d   n   |  | |  Sd  S(   Ns   /proc/%s/taskR.   (   R:   R   R  R   R   R   (   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   E  s    s   builtins.opens   __builtin__.openR^   c            sB   |  j  d t j    r. t t j d   n   |  | |  Sd  S(   Ns   /proc/%s/taskR.   (   R:   R   R  R   R   t   EPERM(   RV   RW   RX   (   R[   (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR\   T  s    (
   R_   R   R   R`   Rh   R  R  R   R[  t   AccessDenied(   Rk   R\   Rb   Rc   R   (    (   R[   s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_threads_mocked@  s    c         C   s   t  j d d t t j d   } t  j d d t j d d  a } t j   j   } |  j	 | d  t  j d d t
 ! |  j t j t j   j  Wd  QXWd  QXWd  QXd  S(   Ns   psutil._pslinux.readlinkR^   R.   s   psutil.Process.cmdlinei    s   psutil._pslinux.os.path.lexistsR   (   R   R`   R  R   R   Rh   R  R  R  R   R   R[  t   ZombieProcess(   Rk   R   R   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_exe_mocked]  s    
c      	   C   s^   t  d t j   t t j d   3 } t j   } |  j t	   | j
   Wd  QXWd  QXd  S(   Ns   /proc/%s/smapsR.   (   Rf   R   R  R   R   R   Rh   R  R[  R   R  (   Rk   Rc   R  (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_issue_1014r  s    s   not supportedc      
   C   s   t  j d d t t j d  H } t j   } | j   |  j t j	   } | j
 t j  Wd  QXWd  QX|  j | j j | j  |  j | j j | j    d  S(   Ns"   psutil._pslinux.cext.linux_prlimitR^   R.   (   R   R`   R  R   t   ENOSYSRh   R  RV   R[  R
  t   rlimitt   RLIMIT_NOFILER   t	   exceptionR  (   Rk   Rc   R  Re   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_rlimit_zombie}  s    
c      	   C   s   t  j d d t t j d  B } t j   } | j   |  j t j	   } | j
   Wd  QXWd  QX|  j | j j | j  |  j | j j | j    d  S(   Ns   psutil._pslinux.os.readlinkR^   R.   (   R   R`   R  R   R   Rh   R  RV   R[  R
  R  R   R  R  (   Rk   Rc   R  Re   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cwd_zombie  s    
c      *   C   s  d d l  m } d d d d d d d d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d d d d g* } d j |  j   } t d t j   |  t j   } |  j	 | j
   d  |  j	 | j   t j  |  j	 | j   d  |  j	 | j   d | t j    | j   } |  j	 | j d |  |  j	 | j d |  |  j	 | j d |  |  j	 | j d |  |  j	 | j d |  |  j	 | j   d  Wd  QXd  S(   Ni(   t   CLOCK_TICKSR  s   (cat)t   ZR  t   2t   3t   4t   5t   6t   7RJ   s   /proc/%s/statt   cati   i   i   i   i   i   i   (   R   R  R1   R   Rd   R   R  Rh   R  R   RV   t   statust   STATUS_ZOMBIEt   ppidt   create_timeRz  R   R  t   systemt   children_usert   children_systemt   iowaitt   cpu_num(   Rk   R  RW   RY   R  t   cpu(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_stat_file_parsing  st    	c      
   C   s9  t  d t j   t j d  j    t j   } |  j | j	   j
 d  |  j | j	   j d  |  j | j   d  | j   } |  j | j d  |  j | j d  |  j | j d  | j   } |  j | j d	  |  j | j d
  |  j | j d  |  j | j j   t t d d    Wd  QXd  S(   Ns   /proc/%s/statuss                  Uid:	1000	1001	1002	1003
                Gid:	1004	1005	1006	1007
                Threads:	66
                Cpus_allowed:	f
                Cpus_allowed_list:	0-7
                voluntary_ctxt_switches:	12
                nonvoluntary_ctxt_switches:	13i   i   iB   i  i  i  i  i  i  i    i   (   Rd   R   R  R   R   R   Rh   R  R   t   num_ctx_switchest	   voluntaryt   involuntaryt   num_threadst   uidst   realt	   effectivet   savedt   gidst   _proct   _get_eligible_cpust   listt   range(   Rk   R  R+  R/  (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_status_file_parsing  s"    (   R   R   R  t   tearDownR  R  R   R   R   R  R  R  R  R  R  R  R  R	  R  R  R
   R  R  R&  R4  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR  |  s&   			#$						
						?t   TestProcessAgainstStatusc           B   s   e  Z d  Z e d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z e   d	    Z d
   Z d   Z RS(   s  /proc/pid/stat and /proc/pid/status have many values in common.
    Whenever possible, psutil uses /proc/pid/stat (it's faster).
    For all those cases we check that the value found in
    /proc/pid/stat (by psutil) matches the one found in
    /proc/pid/status.
    c         C   s   t  j   |  _ d  S(   N(   Rh   R  t   proc(   t   cls(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt
   setUpClass  s    c      
   C   s   t  j j d |  j j  | } xb | D]Z } | j   } | j |  r& | j d  d } y t |  SWq t	 k
 r| | SXq& q& Wt	 d |   Wd  QXd  S(   Ns   /proc/%s/statuss   	i   s   can't find %r(
   Rh   t   _psplatformt	   open_textR7  R  RK   R:   t	   partitionR=   R>   (   Rk   t	   linestartR   RA   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   read_status_file  s    	c         C   s,   |  j  d  } |  j |  j j   |  d  S(   Ns   Name:(   R>  R   R7  RV   (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_name
  s    c         C   sa   |  j  d  } | | j d  d | j d  !} | j d d  } |  j |  j j   |  d  S(   Ns   State:t   (i   t   )RJ   R   (   R>  t   findt   rfindR  R   R7  R  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_status  s    #c         C   s,   |  j  d  } |  j |  j j   |  d  S(   Ns   PPid:(   R>  R   R7  R  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_ppid  s    c         C   s,   |  j  d  } |  j |  j j   |  d  S(   Ns   Threads:(   R>  R   R7  R*  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_num_threads  s    c         C   sN   |  j  d  } t t t | j   d d !  } |  j |  j j   |  d  S(   Ns   Uid:i   i   (   R>  RO   RP   R=   R9   R   R7  R+  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_uids  s    "c         C   sN   |  j  d  } t t t | j   d d !  } |  j |  j j   |  d  S(   Ns   Gid:i   i   (   R>  RO   RP   R=   R9   R   R7  R/  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt	   test_gids!  s    "c         C   sZ   |  j  d  } |  j |  j j   j |  |  j  d  } |  j |  j j   j |  d  S(   Ns   voluntary_ctxt_switches:s   nonvoluntary_ctxt_switches:(   R>  R   R7  R'  R(  R)  (   Rk   R   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_num_ctx_switches&  s    c         C   sr   |  j  d  } d t |  k rn t t | j d   \ } } |  j |  j j   t t	 | | d    n  d  S(   Ns   Cpus_allowed_list:R   i   (
   R>  R   RP   R=   R9   R   R7  t   cpu_affinityR2  R3  (   Rk   R   t   min_t   max_(    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cpu_affinity-  s
    c         C   sP   |  j  d  } t j d   } |  j j j   Wd  QXd t |  k rL n  d  S(   Ns   Cpus_allowed_list:s   psutil._pslinux.per_cpu_timesR   (   R>  R   R`   R7  R0  R1  R   (   Rk   R   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_cpu_affinity_eligible_cpus4  s    (   R   R   t   __doc__t   classmethodR9  R>  R?  RD  RE  RF  RG  RH  R   RI  RM  RN  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyR6    s   								t	   TestUtilsc           B   s   e  Z d    Z d   Z RS(   c         C   s>   t  j d d d # } |  j t j j d  d  Wd  QXd  S(   Ns   os.readlinkR   s   foo (deleted)R  R  (   R   R`   R   Rh   R:  t   readlink(   Rk   Rc   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_readlinkF  s    c         C   s   t  j j t  } t | d   } | j d  Wd  QX|  j t j j	 t d t
 d  |  j t j j	 t d t d  |  j t j j	 t d d d d  d  S(   Nt   wts   foo t   binaryR  s   ??t   fallbackR  (   R   R   R  R   R_   R~  R   Rh   R:  R  R   Ra   (   Rk   t   fnameR   (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   test_catK  s    ""(   R   R   RS  RX  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyRQ  C  s   	t   __main__(   t   run(Z   RO  t
   __future__R    R;   R!   R   t   globRS   R   R   R  R   R'   R|  R   R  R   Rh   R   t   psutil._compatR   R   R   R   t   psutil.testsR   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  t   dirnamet   __file__t   HERER&   t   SIOCGIFCONFR/   Rd  R  R+   R4   RF   RI   RM   RQ   t   contextmanagerRd   Rf   R   t   TestCaseRg   R   R   R   R   R   R  R  R  R#  R)  R9  RH  R_  Ry  R  R  R  R  R6  RQ  R   t   psutil.tests.runnerRZ  (    (    (    s=   /usr/lib64/python2.7/site-packages/psutil/tests/test_linux.pyt   <module>   s   								 1]?- @S tR