ó
Gq]c           @   sÜ  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m  Z  d d l m! Z! d d l m" Z" d d l m# Z# d d l m$ Z$ d d l m% Z% d d l m& Z& d d l m' Z' d d l m( Z( d d l m) Z) d d l m* Z* d d l m+ Z+ d d  l m, Z, d d! l m- Z- d d" l m. Z. d# e. j/ f d$ „  ƒ  YZ0 e1 d% k rØd d& l2 m3 Z3 e3 e4 ƒ n  d S('   s   Tests for system APIS.iÿÿÿÿN(   t   AIX(   t   BSD(   t   FREEBSD(   t   LINUX(   t   MACOS(   t   NETBSD(   t   OPENBSD(   t   POSIX(   t   SUNOS(   t   WINDOWS(   t   long(   t   APPVEYOR(   t   ASCII_FS(   t   check_net_address(   t   DEVNULL(   t   enum(   t   get_test_subprocess(   t   HAS_BATTERY(   t   HAS_CPU_FREQ(   t   HAS_GETLOADAVG(   t   HAS_NET_IO_COUNTERS(   t   HAS_SENSORS_BATTERY(   t   HAS_SENSORS_FANS(   t   HAS_SENSORS_TEMPERATURES(   t   mock(   t   reap_children(   t   retry_on_failure(   t   safe_rmpath(   t   TESTFN(   t   TESTFN_UNICODE(   t   TRAVIS(   t   unittestt   TestSystemAPIsc           B   s  e  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 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d  „  Z$ e
 j e% d! ƒ d" „  ƒ Z& e
 j e% d! ƒ d# „  ƒ Z' d$ „  Z( d% „  Z) e
 j e* d& ƒ d' „  ƒ Z+ e
 j e, p°e- p°e. d( ƒ d) „  ƒ Z/ e
 j e, oße0 j1 j2 d* ƒ d+ ƒ e
 j e3 o e4 j5 ƒ  d; k d, ƒ d- „  ƒ ƒ Z7 d. „  Z8 e
 j e3 p:e* o:e4 j9 ƒ  d/ ƒ d0 „  ƒ Z: d1 „  Z; e
 j e< d2 ƒ d3 „  ƒ Z= e
 j e> d! ƒ d4 „  ƒ Z? d5 „  Z@ e
 j eA d! ƒ d6 „  ƒ ZB e
 j eA d! ƒ d7 „  ƒ ZC e
 j eD d! ƒ e
 j eE d8 ƒ d9 „  ƒ ƒ ZF e
 j eG d! ƒ d: „  ƒ ZH RS(<   s   Tests for system-related APIs.c         C   s   t  t ƒ d  S(   N(   R   R   (   t   self(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   setUp@   s    c         C   s   t  ƒ  d  S(   N(   R   (   R!   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   tearDownC   s    c         C   s^  |  j  t j ƒ  g  t j ƒ  D] } | j ^ q ƒ t ƒ  } |  j  | j g  t j ƒ  D] } | j ^ qT ƒ t j | j ƒ } | j ƒ  | j	 ƒ  |  j
 | j g  t j ƒ  D] } | j ^ q© ƒ t j d d t j t j ƒ  ƒ ƒ! |  j t t j ƒ  ƒ g  ƒ Wd  QXt j d d t j t j ƒ  ƒ ƒ. |  j t j ƒ  t t j ƒ  ƒ Wd  QXWd  QXd  S(   Ns   psutil.Processt   side_effect(   t   assertInt   ost   getpidt   psutilt   process_itert   pidR   t   Processt   killt   waitt   assertNotInR   t   patcht   NoSuchProcesst   assertEqualt   listt   AccessDeniedt   assertRaises(   R!   t   xt   sproct   p(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_process_iterF   s    2	/

/"c         C   s•  x? t  j d d g ƒ D]( } |  j t | j j ƒ  ƒ d g ƒ q W|  j t ƒ  t t  j d d g ƒ ƒ Wd  QXt j	 d d t  j
 d d ƒ ƒd } xK t  j d d d g ƒ D]1 } |  j | j d ƒ |  j | j d d ƒ q® W| j sò t ‚ Wd  QXt j	 d d t  j
 d d ƒ ƒv } t ƒ  } xT t  j d d d g d	 | ƒ D]4 } |  j | j d | ƒ |  j | j d d ƒ qDW| j s‹t ‚ Wd  QXd  S(
   Nt   attrsR*   t   foos$   psutil._psplatform.Process.cpu_timesR$   i    t    t	   cpu_timest   ad_value(   R(   R)   R1   R2   t   infot   keysR4   t
   ValueErrorR   R/   R3   t   assertIsNonet   assertGreaterEqualt   calledt   AssertionErrort   objectt   assertIs(   R!   R7   t   mt   flag(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_prcess_iter_w_paramsW   s$    &	c            s¶  ‡  f d †  } g  ‰  t  ƒ  } t  ƒ  } t  ƒ  } g  | | | f D] } t j | j ƒ ^ q@ } ˆ j t t j | d d ƒˆ j t t j | d d ƒt j ƒ  } t j | d d d | ƒ\ } }	 ˆ j	 t j ƒ  | d ƒ ˆ j
 | g  ƒ ˆ j
 t |	 ƒ d ƒ ˆ j
 ˆ  g  ƒ x$ |	 D] }
 ˆ j t |
 d	 ƒ ƒ qWt d
 ƒ ‡ f d †  ƒ } | j ƒ  | | | ƒ \ } }	 ˆ j | j g  | D] } | j ^ q‡ƒ t rÃˆ j
 | j ƒ  j t j ƒ n ˆ j
 | j ƒ  j d ƒ ˆ j
 ˆ  | j g ƒ x$ |	 D] }
 ˆ j t |
 d	 ƒ ƒ qùWt d
 ƒ ‡ f d †  ƒ } | j ƒ  | j ƒ  | | | ƒ \ } }	 ˆ j
 t ˆ  ƒ t | j | j | j g ƒ ƒ x$ | D] }
 ˆ j t |
 d	 ƒ ƒ q’Wd  S(   Nc            s   ˆ  j  |  j ƒ d  S(   N(   t   appendR*   (   R7   (   t   pids(    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   callbackl   s    t   timeoutiÿÿÿÿRL   i   g{®Gáz„?g      à?i   t
   returncodei   c            sW   t  j |  d d d | ƒ\ } } ˆ  j t | ƒ d ƒ ˆ  j t | ƒ d ƒ | | f S(   NRM   g¸…ëQ¸ž?RL   i   i   (   R(   t
   wait_procsR1   t   len(   t   procsRL   t   gonet   alive(   R!   (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test€   s
    c            sW   t  j |  d d d | ƒ\ } } ˆ  j t | ƒ d ƒ ˆ  j t | ƒ d ƒ | | f S(   NRM   g¸…ëQ¸ž?RL   i   i    (   R(   RO   R1   RP   (   RQ   RL   RR   RS   (   R!   (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyRT   “   s
    (   R   R(   R+   R*   R4   R@   RO   t	   TypeErrort   timet
   assertLessR1   RP   t   assertFalset   hasattrR   t	   terminateR%   R   t   popRN   t   signalt   SIGTERMt   sett
   assertTrue(   R!   RL   t   sproc1t   sproc2t   sproc3R5   RQ   t   tRR   RS   R7   RT   (    (   RK   R!   s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_wait_procsk   sB    			.!
) 

.c   	      C   s}   t  ƒ  } t  ƒ  } t  ƒ  } g  | | | f D] } t j | j ƒ ^ q+ } x | D] } | j ƒ  qP Wt j | ƒ \ } } d  S(   N(   R   R(   R+   R*   RZ   RO   (	   R!   R`   Ra   Rb   R5   RQ   R7   RR   RS   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_wait_procs_no_timeout¢   s    			.c         C   sF   t  j ƒ  } |  j | t ƒ |  j | d ƒ |  j | t j ƒ  ƒ d  S(   Ni    (   R(   t	   boot_timet   assertIsInstancet   floatt   assertGreaterRW   RV   (   R!   t   bt(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_boot_time«   s    s
   POSIX onlyc         C   s/   d d  l  } |  j t j d ƒ | j ƒ  ƒ d  S(   Niÿÿÿÿt   SC_PAGE_SIZE(   t   resourceR1   R&   t   sysconft   getpagesize(   R!   Rm   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_PAGESIZE±   s    c         C   sV  t  j ƒ  } | j d k s' t | ƒ ‚ | j d k sB t | ƒ ‚ d | j k o\ d k n sm t | ƒ ‚ | j d k sˆ t | ƒ ‚ | j d k s£ t | ƒ ‚ x¬ | j D]¡ } t	 | | ƒ } | d k rç |  j
 | t t f ƒ n  | d k r­ | d k s|  j d | | f ƒ n  | | j k rN|  j d | | j | | f ƒ qNq­ q­ Wd  S(   Ni    id   t   percentt   totals   %r < 0 (%s)s   %r > total (total=%s, %s=%s)(   R(   t   virtual_memoryRr   RD   t	   availableRq   t   usedt   freet   _fieldst   getattrRg   t   intR
   t   fail(   R!   t   memt   namet   value(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_virtual_memory¹   s     +	c         C   s  t  j ƒ  } |  j | j d	 ƒ | j d k s: t | ƒ ‚ | j d k sU t | ƒ ‚ | j d k r‚ | j d k s t | ƒ ‚ n | j d k s t | ƒ ‚ d | j k o· d k n sÈ t | ƒ ‚ | j	 d k sã t | ƒ ‚ | j
 d k sþ t | ƒ ‚ d  S(
   NRr   Ru   Rv   Rq   t   sint   souti    id   (   Rr   Ru   Rv   Rq   R   R€   (   R(   t   swap_memoryR1   Rw   Rr   RD   Ru   Rv   Rq   R   R€   (   R!   R{   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_swap_memoryË   s    +c         C   s    t  ƒ  } |  j t j | j ƒ ƒ t j | j ƒ } | j ƒ  | j ƒ  |  j t j | j ƒ ƒ |  j t j d ƒ ƒ |  j	 t j d ƒ d t j
 ƒ  k ƒ d  S(   Niÿÿÿÿi    (   R   R_   R(   t
   pid_existsR*   R+   R,   R-   RX   R1   RK   (   R!   R6   R7   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_pid_existsÛ   s    	

c         C   sÔ   t  ƒ  t j ƒ  } xj | D]b } y t j | ƒ s8 t ‚ Wq t k
 r{ t j d ƒ | t j ƒ  k r| |  j | ƒ q| q Xq Wt t	 | ƒ d t	 | ƒ d ƒ } x* | D]" } |  j
 t j | ƒ d | ƒqª Wd  S(   Ngš™™™™™¹?iˆ  ip  t   msg(   R   R(   RK   Rƒ   RD   RV   t   sleepRz   t   ranget   maxRX   (   R!   RK   R*   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_pid_exists_2å   s    #c         C   s^   t  j ƒ  } g  t  j ƒ  D] } | j ^ q } |  j t t | ƒ ƒ | ƒ |  j | | ƒ d  S(   N(   R(   RK   R)   R*   R1   t   sortedR^   (   R!   t   pidslistR5   t	   procslist(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt	   test_pidsõ   s    "c         C   s1   t  j } t t  _ z t j ƒ  Wd  | t  _ Xd  S(   N(   t   syst   stdoutR   R(   RT   (   R!   R   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt	   test_testü   s
    		c         C   sô   t  j ƒ  } |  j | t t  j d t ƒ ƒ ƒ |  j | d ƒ t j j	 d ƒ r’ t
 d ƒ  } | j ƒ  } Wd  QXd | k r’ t j d ƒ ‚ q’ n  t  j d t ƒ } t rÐ t j ƒ  d  d	 k rÐ |  j | ƒ n  |  j | d ƒ |  j | | ƒ d  S(
   Nt   percpui   s   /proc/cpuinfos   physical ids#   cpuinfo doesn't include physical idt   logicali   i   (   i   i   (   R(   t	   cpu_countR1   RP   R<   t   TrueRB   R&   t   patht   existst   opent   readR   t   SkipTestt   FalseR	   RŽ   t   getwindowsversionRA   (   R!   R’   t   fdt   cpuinfo_datat   physical(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_count  s    "c      
   C   s›   x” d D]Œ } t j d d | ƒ) } |  j t j ƒ  ƒ | j sG t ‚ Wd  QXt j d d | ƒ/ } |  j t j d t ƒ ƒ | j s t ‚ Wd  QXq Wd  S(   Niÿÿÿÿi    s$   psutil._psplatform.cpu_count_logicalt   return_values%   psutil._psplatform.cpu_count_physicalR’   (   iÿÿÿÿi    N(	   t   NoneR   R/   RA   R(   R“   RC   RD   Rš   (   R!   t   valRG   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_count_none  s    c         C   s{   d } t  j ƒ  } t | ƒ x8 | D]0 } |  j | t ƒ |  j | d ƒ | | 7} q# W|  j | t | ƒ ƒ t | ƒ d  S(   Ni    g        (   R(   R<   t   sumRg   Rh   RB   R1   t   str(   R!   Rr   t   timest   cp_time(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_times"  s    
c         C   sn   t  t j ƒ  ƒ } t j ƒ  d } x8 t j ƒ  | k  r\ t  t j ƒ  ƒ } | | k r% d  Sq% W|  j d ƒ d  S(   Ni   s   time remained the same(   R¤   R(   R<   RV   Rz   (   R!   t   t1t   stop_att   t2(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_times_time_increases?  s    c         C   sÄ   x… t  j d t ƒ D]q } d } t | ƒ x8 | D]0 } |  j | t ƒ |  j | d ƒ | | 7} q0 W|  j | t | ƒ ƒ t | ƒ q W|  j t	 t  j d t ƒ d ƒ t	 t  j d t
 ƒ ƒ ƒ d  S(   NR‘   i    g        (   R(   R<   R”   R¤   Rg   Rh   RB   R1   R¥   RP   Rš   (   R!   R¦   Rr   R§   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_per_cpu_timesI  s    
c         C   s¸   t  j d t ƒ } t j ƒ  d } x  t rD t j ƒ  | k r% Pq% q% Wt  j d t ƒ } xP t | | ƒ D]? \ } } t | ƒ t | ƒ } } | | } | d k rg d  Sqg W|  j ƒ  d  S(   NR‘   gš™™™™™¹?gš™™™™™©?(   R(   R<   R”   RV   t   zipR¤   Rz   (   R!   t   tot1Rª   t   tot2R©   R«   t
   difference(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_per_cpu_times_2j  s    	
c         C   sŒ   t  j ƒ  } t  j d t ƒ } | j g  t | Œ  D] } t | ƒ ^ q1 ƒ } x9 | j D]. } |  j t | | ƒ t | | ƒ d d ƒqV Wd  S(   NR‘   t   deltai   (	   R(   R<   R”   t   _makeR®   R¤   Rw   t   assertAlmostEqualRx   (   R!   t   baset   per_cput   numt   summed_valuest   field(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_times_comparisonz  s    .c         C   s“   yN |  j  | t ƒ |  j | d ƒ |  j | d ƒ |  j | d t j ƒ  ƒ Wn> t k
 rŽ } t d | t j	 | ƒ t j	 | ƒ f ƒ ‚ n Xd  S(   Ng        g       €g      Y@s   
%s
last=%s
new=%s(
   Rg   Rh   RB   t   assertIsNott   assertLessEqualR(   R“   RD   t   pprintt   pformat(   R!   Rq   t   last_rett   new_rett   err(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   _test_cpu_percent„  s    c         C   s~   t  j d d ƒ } x? t d ƒ D]1 } t  j d d  ƒ } |  j | | | ƒ | } q W|  j t ƒ  t  j d d ƒ Wd  QXd  S(   Nt   intervalgü©ñÒMbP?id   iÿÿÿÿ(   R(   t   cpu_percentR‡   R¡   RÃ   R4   R@   (   R!   t   lastR5   t   new(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_percentŽ  s    
c      	   C   s½   t  j d d d t ƒ } |  j t | ƒ t  j ƒ  ƒ xV t d ƒ D]H } t  j d d  d t ƒ } x! | D] } |  j | | | ƒ qf W| } qA W|  j	 t
 ƒ  t  j d d d t ƒ Wd  QXd  S(   NRÄ   gü©ñÒMbP?R‘   id   iÿÿÿÿ(   R(   RÅ   R”   R1   RP   R“   R‡   R¡   RÃ   R4   R@   (   R!   RÆ   R5   RÇ   Rq   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_per_cpu_percent—  s    
c         C   s‚   t  j d d ƒ } xi t d ƒ D][ } t  j d d  ƒ } x! | D] } |  j | | | ƒ q> W|  j t | ƒ | | ƒ | } q Wd  S(   NRÄ   gü©ñÒMbP?id   (   R(   t   cpu_times_percentR‡   R¡   RÃ   R¤   (   R!   RÆ   R5   RÇ   Rq   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_times_percent¢  s    c         C   s»   t  j d d d t ƒ } |  j t | ƒ t  j ƒ  ƒ x€ t d ƒ D]r } t  j d d  d t ƒ } xK | D]C } x! | D] } |  j | | | ƒ qs W|  j t	 | ƒ | | ƒ qf W| } qA Wd  S(   NRÄ   gü©ñÒMbP?R‘   id   (
   R(   RÊ   R”   R1   RP   R“   R‡   R¡   RÃ   R¤   (   R!   RÆ   R5   RÇ   t   cpuRq   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_per_cpu_times_percent«  s    c      
   C   sÁ   t  j d t ƒ g  t  j d t ƒ D]7 } | j g  t t | j ƒ ƒ D] } d ^ qE ƒ ^ q# } t j	 d d | ƒF x> t  j d t ƒ D]* } x! | D] } |  j
 | d  d  ƒ q– Wq‰ WWd  QXd  S(   NR‘   i    s   psutil.cpu_timesR    (   R(   RÊ   R”   R<   R´   R‡   RP   Rw   R   R/   RÃ   R¡   (   R!   R5   t
   zero_timesRÌ   Rq   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt#   test_per_cpu_times_percent_negative¶  s    Mc         C   s¬  t  j t j ƒ  ƒ } |  j | j d ƒ | j d k sC t | ƒ ‚ | j d k s^ t | ƒ ‚ | j	 d k sy t | ƒ ‚ | j | j k s— t | ƒ ‚ | j | j	 k sµ t | ƒ ‚ d | j
 k oÏ d k n sã t | j
 ƒ ‚ t t d ƒ r^t j t j ƒ  ƒ } d } |  j | j | j ƒ |  j | j	 | j	 d
 | ƒ|  j | j | j d
 | ƒn  t j ƒ  } |  j t ƒ  } t  j | ƒ Wd  QX|  j | j j t j ƒ d  S(   NRr   Ru   Rv   Rq   i    id   t
   disk_usagei   i   R³   (   Rr   Ru   Rv   Rq   i   i  P (   R(   RÐ   R&   t   getcwdR1   Rw   Rr   RD   Ru   Rv   Rq   RY   t   shutilRµ   t   tempfilet   mktempR4   t   OSErrort	   exceptiont   errnot   ENOENT(   R!   t   usaget   shutil_usaget	   tolerancet   fnamet   exc(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_disk_usageÀ  s(    .
c         C   s0   t  r, |  j t ƒ  t j t ƒ Wd  QXn  d  S(   N(   R   R4   t   UnicodeEncodeErrorR(   RÐ   R   (   R!   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_disk_usage_unicodeÛ  s    c         C   s   t  j d ƒ d  S(   Nt   .(   R(   RÐ   (   R!   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_disk_usage_bytesá  s    c         C   s™  t  j d t ƒ } |  j | d | ƒx| D]} |  j | j t ƒ |  j | j t ƒ |  j | j t ƒ |  j | j	 t ƒ t
 r™ d | j	 k r™ q, n  t sÃ t j j | j ƒ sÊ t | ƒ ‚ n | j t sÖ t rú t j j | j ƒ st | ƒ ‚ n! t j j | j ƒ st | ƒ ‚ | j s, t | ƒ ‚ q, Wt  j d t ƒ } |  j | d | ƒxÙ t  j d t ƒ D]Å } t
 sy t j | j ƒ WnX t k
 ræ} t rÂt rÂ| j t j k rÂqln  | j t j t j f k r‚  qqXt j j | j ƒ st | ƒ ‚ n  |  j | j t ƒ |  j | j	 t ƒ qlWd „  } | t ƒ } g  t  j d t ƒ D] } | j j ƒ  ^ q]} |  j | | ƒ t  j | ƒ d  S(   Nt   allR…   t   cdromc         S   sG   t  j j |  ƒ }  x( t  j j |  ƒ s< t  j j |  ƒ }  q W|  j ƒ  S(   N(   R&   R•   t   abspatht   ismountt   dirnamet   lower(   R•   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   find_mount_point  s    (   R(   t   disk_partitionsRš   R_   Rg   t   deviceR¥   t
   mountpointt   fstypet   optsR	   R   R&   R•   R–   RD   R   R   t   isdirR”   t   statRÕ   R   R×   t   EIOt   EPERMt   EACCESt   __file__Rè   R%   RÐ   (   R!   t   lst   diskRÂ   Ré   t   mountR5   t   mounts(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_disk_partitionsä  sH    $$!
$	+s   not supportedc            s   ‡  f d †  } t  j d t ƒ } | | ƒ t  j d t ƒ } ˆ  j | g  ƒ x9 | D]1 } ˆ  j | ƒ ˆ  j | t ƒ | | | ƒ qT Wd  S(   Nc            s”  ˆ  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 k sÓ t	 |  ƒ ‚ |  j d k sî t	 |  ƒ ‚ |  j d k s	t	 |  ƒ ‚ |  j d k s$t	 |  ƒ ‚ |  j d k s?t	 |  ƒ ‚ |  j d k sZt	 |  ƒ ‚ |  j d k sut	 |  ƒ ‚ |  j d k st	 |  ƒ ‚ d  S(	   Ni    i   i   i   i   i   i   i   (
   R1   t
   bytes_sentt
   bytes_recvt   packets_sentt   packets_recvt   errint   erroutt   dropint   dropoutRD   (   t   nt(   R!   (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   check_ntuple   s     t   pernic(   R(   t   net_io_countersRš   R”   t   assertNotEqualR_   Rg   R¥   (   R!   R  t   rett   key(    (   R!   s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_net_io_counters  s    
c         C   sf   t  j d d i  ƒK } |  j t j d t ƒ ƒ |  j t j d t ƒ i  ƒ | j s\ t	 ‚ Wd  QXd  S(   Ns"   psutil._psplatform.net_io_countersR    R  (
   R   R/   RA   R(   R  Rš   R1   R”   RC   RD   (   R!   RG   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_net_io_counters_no_nics;  s
    c      	   C   sK  t  j ƒ  } | s t | ƒ ‚ t  j ƒ  } t t j t j t  j g ƒ } x„| j	 ƒ  D]v\ } } |  j
 | t ƒ |  j t t | ƒ ƒ t | ƒ ƒ x5| D]-} |  j
 | j t ƒ |  j
 | j t ƒ |  j
 | j t t d  ƒ f ƒ |  j
 | j t t d  ƒ f ƒ |  j | j | ƒ t j d k r?|  j
 | j t j ƒ n  | | j r2| j t j k rŸt j | j ƒ } t j | ƒ  | j | j d f ƒ Wd  QXq2| j t j k r2t j | j d t j t j d t j  ƒ d } | \ }	 }
 } } } t j |	 |
 | ƒ } t j | ƒ  | j | ƒ Wd  QXq2n  xZ | j | j | j | j! f D]: } | d  k	 rQ| j t j k r‹t" | | j ƒ q‹qQqQW| j r«|  j# | j! ƒ qš | j! rš |  j# | j ƒ qš qš WqU Wt$ sát% sát& rt' t d ƒ rG|  j t  j t j ƒ qGn; t( r+|  j t  j t j) ƒ n t* rG|  j t  j d ƒ n  d  S(   Ni   i   i    t   AF_LINKiÿÿÿÿ(   i   i   (+   R(   t   net_if_addrsRD   t   net_if_statsR^   t   sockett   AF_INETt   AF_INET6R  t   itemsRg   R¥   R1   RP   t   familyRy   t   addresst   netmaskt   typeR¡   t	   broadcastR%   RŽ   t   version_infoR   t   IntEnumt   isupt
   contextlibt   closingt   bindt   getaddrinfot   SOCK_STREAMt
   AI_PASSIVEt   ptpR   RA   R   R   R   RY   R   t	   AF_PACKETR	   (   R!   t   nicst	   nic_statst   familiest   nict   addrst   addrt   sR>   t   aft   socktypet   protot	   canonnamet   sat   ip(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_net_if_addrsE  sX    "		c         C   s¤   t  r' d t j d d  d  d  f g } n	 d
 g } t j d d | ƒY } t j ƒ  d d } | j sk t ‚ t  r‡ |  j	 | j
 d ƒ n |  j	 | j
 d	 ƒ Wd  QXd  S(   Nt   em1s   06:3d:29iÿÿÿÿs   06-3d-29s   psutil._psplatform.net_if_addrsR    i    s   06:3d:29:00:00:00s   06-3d-29-00-00-00(   R0  iÿÿÿÿs   06-3d-29NNN(   R   R(   R  R¡   R   R/   R  RC   RD   R1   R  (   R!   R  RG   R'  (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt    test_net_if_addrs_mac_null_bytes  s    !	s   unreliable on TRAVISc   	      C   sÉ   t  j ƒ  } | s t | ƒ ‚ t  j t  j t  j f } xŒ | j ƒ  D]~ \ } } |  j | t ƒ | \ } } } } |  j | t	 ƒ |  j
 | | ƒ |  j
 | | ƒ |  j | d ƒ |  j | d ƒ qC Wd  S(   Ni    (   R(   R  RD   t   NIC_DUPLEX_FULLt   NIC_DUPLEX_HALFt   NIC_DUPLEX_UNKNOWNR  Rg   R¥   t   boolR%   RB   (	   R!   R"  t   all_duplexesR|   t   statsR  t   duplext   speedt   mtu(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_net_if_stats’  s    s   LINUX or BSD or MACOS specificc         C   sY   t  j d d t t j d ƒ ƒ2 } t j ƒ  } |  j | i  ƒ | j sO t	 ‚ Wd  QXd  S(   Ns   psutil._psutil_posix.net_if_mtuR$   R;   (
   R   R/   RÕ   R×   t   ENODEVR(   R  R1   RC   RD   (   R!   RG   R  (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_net_if_stats_enodev¢  s
    s   /proc/diskstatss3   /proc/diskstats not available on this linux versions   unreliable on APPVEYORc            s¬   ‡  f d †  } t  j d t ƒ } | d  k	 s9 t d ƒ ‚ | | ƒ t  j d t ƒ } ˆ  j t | ƒ t t | ƒ ƒ ƒ x. | D]& } | s– t | ƒ ‚ | | | ƒ q~ Wd  S(   Nc            s@  ˆ  j  |  d |  j ƒ ˆ  j  |  d |  j ƒ ˆ  j  |  d |  j ƒ ˆ  j  |  d |  j ƒ t pe t sˆ  j  |  d |  j ƒ ˆ  j  |  d |  j ƒ t	 rä ˆ  j  |  d |  j
 ƒ ˆ  j  |  d |  j ƒ ˆ  j  |  d	 |  j ƒ qt rˆ  j  |  d |  j ƒ qn  x2 |  j D]' } t |  | ƒ d k st |  ƒ ‚ qWd  S(
   Ni    i   i   i   i   i   i   i   i   (   R1   t
   read_countt   write_countt
   read_bytest   write_bytesR   R   t	   read_timet
   write_timeR   t   read_merged_countt   write_merged_countt	   busy_timeR   Rw   Rx   RD   (   R  R|   (   R!   (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyR  ±  s    t   perdisks   no disks on this system?(	   R(   t   disk_io_countersRš   R¡   RD   R”   R1   RP   R^   (   R!   R  R  R  (    (   R!   s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_disk_io_counters¬  s    
"c         C   sf   t  j d d i  ƒK } |  j t j d t ƒ ƒ |  j t j d t ƒ i  ƒ | j s\ t	 ‚ Wd  QXd  S(   Ns#   psutil._psplatform.disk_io_countersR    RG  (
   R   R/   RA   R(   RH  Rš   R1   R”   RC   RD   (   R!   RG   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_disk_io_counters_no_disksÌ  s
    s    unreliable on APPVEYOR or TRAVISc         C   s  t  j ƒ  } |  j | g  ƒ xñ | D]é } | j s> t | ƒ ‚ |  j | j t ƒ |  j | j t t d  ƒ f ƒ | j
 d  k	 r¡ |  j | j
 t t d  ƒ f ƒ n  | j | j
 | j d k sÊ t | ƒ ‚ t j j | j ƒ t sé t rü |  j | j ƒ q# t  j | j ƒ q# Wd  S(   Ng        (   R(   t   usersR  R|   RD   Rg   R¥   t   terminalR  R¡   t   hostt   startedt   datetimet   fromtimestampR	   R   RA   R*   R+   (   R!   RK  t   user(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt
   test_usersÖ  s    "c         C   s|   t  j ƒ  } |  j | j d ƒ xV | j D]K } t | | ƒ } |  j | d ƒ t r) | d k r) |  j | d ƒ q) q) Wd  S(   Nt   ctx_switchest
   interruptst   soft_interruptst   syscallsi    (   RS  RT  RU  RV  (   RS  RT  (   R(   t	   cpu_statsR1   Rw   Rx   RB   R    Ri   (   R!   t   infosR|   R}   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_statsê  s    s   not suportedc            s³   ‡  f d †  } t  j d t ƒ } t r@ | r@ ˆ  j d ƒ ‚ n  t r_ | r_ ˆ  j d ƒ ‚ n  | sq t | ƒ ‚ | t  j d t ƒ g ƒ t r¯ ˆ  j	 t
 | ƒ t  j ƒ  ƒ n  d  S(   Nc            sœ   x• |  D] } ˆ  j  | j d ƒ | j d k rH ˆ  j | j | j ƒ n  xI | j D]> } t | | ƒ } ˆ  j | t t t	 f ƒ ˆ  j
 | d ƒ qR Wq Wd  S(   Nt   currentt   minRˆ   g        i    (   RZ  R[  Rˆ   (   R1   Rw   Rˆ   R½   RZ  Rx   Rg   Ry   R
   Rh   RB   (   Rõ   R  R|   R}   (   R!   (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   check_lsù  s    R‘   s   skipped on Traviss   returns empty list on FreeBSD(   R(   t   cpu_freqR”   R   t   skipTestR   RD   Rš   R   R1   RP   R“   (   R!   R\  Rõ   (    (   R!   s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_cpu_freq÷  s    
c         C   sY   t  j ƒ  } t | ƒ d k s$ t ‚ x. | D]& } |  j | t ƒ |  j | d ƒ q+ Wd  S(   Ni   g        (   R(   t
   getloadavgRP   RD   Rg   Rh   RB   (   R!   t   loadavgt   load(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_getloadavg  s
    c      	   C   s&  d d d d d d d d d	 g	 } x- | D]% } |  j  t t | ƒ t d
 | ƒq( Wt j d k rÆt j so t ‚ t j s t ‚ | j	 d ƒ d t
 j j ƒ  k rÀ t j s° t ‚ | j	 d ƒ qòd t
 j j ƒ  k rFt j sä t ‚ |  j t j t j t j g j t ƒ d ƒ | j	 d ƒ | j	 d ƒ | j	 d ƒ | j	 d ƒ qòd t
 j j ƒ  k spd t
 j j ƒ  k rt j st ‚ | j	 d	 ƒ qòd t
 j j ƒ  k ròt j s³t ‚ | j	 d ƒ qòn, t j sÕt ‚ t j såt ‚ | j	 d ƒ x- | D]% } |  j t t | ƒ t d
 | ƒqùWd  S(   NR   R	   R   R   R   R   R   R   R   R…   t   posixt   linuxt   bsdi   t   sunost   solarist   darwin(   Rg   Rx   R(   R5  R&   R|   R   RD   R	   t   removeRŽ   t   platformRè   R   R   R1   R   R   R   t   countR”   R   R   RF   Rš   (   R!   t   namesR|   (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_os_constants  s>    #c         C   sÐ   t  j ƒ  } x½ | j ƒ  D]¯ \ } } |  j | t ƒ x | D]ˆ } |  j | j t ƒ | j d  k	 rz |  j | j d ƒ n  | j	 d  k	 rŸ |  j | j	 d ƒ n  | j
 d  k	 r< |  j | j
 d ƒ q< q< Wq Wd  S(   Ni    (   R(   t   sensors_temperaturesR  Rg   R¥   t   labelRZ  R¡   RB   t   hight   critical(   R!   t   tempsR|   t   entriest   entry(    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_sensors_temperatures=  s    c         C   s”   i d g d 6} t  j d d | ƒi } t j d t ƒ d d	 } | j sQ t ‚ |  j | j d
 ƒ |  j | j	 d ƒ |  j | j
 d ƒ Wd  QXd  S(   NRp  g      I@g      N@g     €Q@t   coretemps'   psutil._psplatform.sensors_temperaturesR    t
   fahrenheiti    g     €^@g     €a@g     Àc@(   Rp  g      I@g      N@g     €Q@(   R   R/   R(   Ro  R”   RC   RD   R1   RZ  Rq  Rr  (   R!   t   dRG   Rs  (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt#   test_sensors_temperatures_fahreneitK  s    	s
   no batteryc         C   sŸ   t  j ƒ  } |  j | j d ƒ |  j | j d ƒ | j t  j t  j f k rc |  j | j d ƒ n% | j t  j k rˆ |  j | j	 ƒ n  |  j
 | j	 t ƒ d  S(   Ni    id   (   R(   t   sensors_batteryRB   Rq   R½   t   secsleftt   POWER_TIME_UNKNOWNt   POWER_TIME_UNLIMITEDR_   t   power_pluggedRg   R5  (   R!   R  (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_sensors_batteryW  s    c         C   s   t  j ƒ  } xz | j ƒ  D]l \ } } |  j | t ƒ xM | D]E } |  j | j t ƒ |  j | j t t f ƒ |  j	 | j d ƒ q< Wq Wd  S(   Ni    (
   R(   t   sensors_fansR  Rg   R¥   Rp  RZ  Ry   R
   RB   (   R!   t   fansR|   Rt  Ru  (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   test_sensors_fanse  s    N(I   t   __name__t
   __module__t   __doc__R"   R#   R8   RI   Rd   Re   Rk   R   t   skipIfR   Rp   R~   R‚   R„   R‰   R   R   RŸ   R£   R¨   R¬   R­   R²   R»   RÃ   RÈ   RÉ   RË   RÍ   RÏ   RÞ   Rà   Râ   Rù   R   R	  R
  R/  R1  R   R;  R   R   R   R=  R&   R•   R–   R   R(   RH  R¡   RI  RJ  RK  RR  RY  R   R_  R   Rc  Rn  R   Rv  Rz  R   R   R€  R   Rƒ  (    (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyR    =   sn   					7						
								
	!		
	
							
				:
	<			
			%t   __main__(   t   run(5   R†  R  RO  R×   R&   R¾   RÒ   R\   R  RŽ   RÓ   RV   R(   R    R   R   R   R   R   R   R   R   R	   t   psutil._compatR
   t   psutil.testsR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   TestCaseR    R„  t   psutil.tests.runnerR‰  Rô   (    (    (    s7   lib/python2.7/site-packages/psutil/tests/test_system.pyt   <module>   sf   ÿ ÿ ÿ 6