ó
­«Y]c           @   sv   d  d l  Z  d  d l Z d  d l m Z m Z d  d l Z d e  j f d „  ƒ  YZ d „  Z e	 d k rr e ƒ  n  d S(   iÿÿÿÿN(   t   TESTFNt   run_unittestt   TestFilemodec           B   sí  e  Z d  d d d d d d d d d	 d
 d h Z d d d d d d d h Z d d d d d d d h Z i
 d d 6d d 6d d 6d  d! 6d" d# 6d$ d% 6d& d' 6d( d) 6d* d+ 6d, d- 6Z i d. d/ 6d0 d1 6d0 d2 6d3 d4 6d5 d6 6d7 d8 6d7 d9 6d: d; 6d: d< 6d= d> 6d= d? 6d@ dA 6dB dC 6dD dE 6d* dF 6d( dG 6d" dH 6d dI 6d dJ 6Z dK „  Z e Z e	 e
 dL „ Z dM „  Z dN „  Z dO „  Z e j e e dP ƒ dQ ƒ dR „  ƒ Z e j e e dS ƒ dT ƒ dU „  ƒ Z e j e j dV k dW ƒ dX „  ƒ Z dY „  Z RS(Z   t	   SF_APPENDt   SF_ARCHIVEDt   SF_IMMUTABLEt   SF_NOUNLINKt   SF_SNAPSHOTt	   UF_APPENDt   UF_COMPRESSEDt	   UF_HIDDENt   UF_IMMUTABLEt	   UF_NODUMPt   UF_NOUNLINKt	   UF_OPAQUEt   S_IFBLKt   S_IFCHRt   S_IFDIRt   S_IFIFOt   S_IFLNKt   S_IFREGt   S_IFSOCKt   S_ISBLKt   S_ISCHRt   S_ISDIRt   S_ISFIFOt   S_ISLNKt   S_ISREGt   S_ISSOCKi    t   ST_MODEi   t   ST_INOi   t   ST_DEVi   t   ST_NLINKi   t   ST_UIDi   t   ST_GIDi   t   ST_SIZEi   t   ST_ATIMEi   t   ST_MTIMEi	   t   ST_CTIMEi   t   S_ISUIDi   t   S_ISGIDt   S_ENFMTi   t   S_ISVTXiÀ  t   S_IRWXUi   t   S_IRUSRt   S_IREADi€   t   S_IWUSRt   S_IWRITEi@   t   S_IXUSRt   S_IEXECi8   t   S_IRWXGi    t   S_IRGRPi   t   S_IWGRPt   S_IXGRPt   S_IRWXOt   S_IROTHt   S_IWOTHt   S_IXOTHc         C   sN   y t  j t ƒ Wn6 t k
 rI y t  j t ƒ WqJ t k
 rE qJ Xn Xd  S(   N(   t   ost   removeR    t   OSErrort   rmdir(   t   self(    (    s   lib/python2.7/test/test_stat.pyt   setUp3   s    c         C   s1   | r t  j | ƒ j } n t  j | ƒ j } | S(   N(   R:   t   lstatt   st_modet   stat(   R>   t   fnameR@   RA   (    (    s   lib/python2.7/test/test_stat.pyt   get_mode=   s    c         C   sË   t  t d | j d ƒ ƒ } |  j t j | ƒ | ƒ d | } x… |  j D]z } t  t | d  ƒ } | d  k rŽ | | k rI t | ƒ ‚ qI qI n  | | k r° |  j | | ƒ ƒ qI |  j	 | | ƒ ƒ qI Wd  S(   Nt   S_IFt   Ft   S_IS(
   t   getattrRB   t   lstript   assertEqualt   S_IFMTt   format_funcst   Nonet
   ValueErrort
   assertTruet   assertFalse(   R>   t   namet   modet   fmtt   testnamet   funcnamet   func(    (    s   lib/python2.7/test/test_stat.pyt
   assertS_ISD   s    
c         C   s‘  t  t d ƒ  Wd  QXt j d k rEt j t d ƒ |  j ƒ  } |  j d | ƒ |  j t j	 | ƒ t j
 ƒ t j t d ƒ |  j ƒ  } |  j d | ƒ |  j t j	 | ƒ t j ƒ t j t d ƒ |  j ƒ  } |  j d | ƒ |  j t j	 | ƒ t j ƒ t j t d ƒ |  j ƒ  } |  j d | ƒ |  j t j	 | ƒ d ƒ nH t j t d ƒ |  j ƒ  } |  j d | ƒ |  j t j | ƒ t j ƒ d  S(   Nt   wt   posixiÀ  t   REGi8   i   i$  (   t   openR    R:   RQ   t   chmodRD   RW   RJ   RB   t   S_IMODER+   R2   R6   RK   R   (   R>   RA   (    (    s   lib/python2.7/test/test_stat.pyt	   test_modeU   s6    


c         C   s=   t  j t ƒ t  j t d ƒ |  j ƒ  } |  j d | ƒ d  S(   NiÀ  t   DIR(   R:   t   mkdirR    R\   RD   RW   (   R>   RA   (    (    s   lib/python2.7/test/test_stat.pyt   test_directoryv   s    t   symlinks   os.symlink not availablec         C   sk   y t  j t  j ƒ  t ƒ Wn. t t f k
 rJ } t j t | ƒ ƒ ‚ n X|  j	 ƒ  } |  j
 d | ƒ d  S(   Nt   LNK(   R:   Rb   t   getcwdR    R<   t   NotImplementedErrort   unittestt   SkipTestt   strRD   RW   (   R>   t   errRA   (    (    s   lib/python2.7/test/test_stat.pyt	   test_link|   s    t   mkfifos   os.mkfifo not availablec         C   s0   t  j t d ƒ |  j ƒ  } |  j d | ƒ d  S(   NiÀ  t   FIFO(   R:   Rk   R    RD   RW   (   R>   RA   (    (    s   lib/python2.7/test/test_stat.pyt	   test_fifo†   s    RY   s   requires Posixc         C   s   t  j j t  j ƒ r@ |  j t  j d t ƒ} |  j d | ƒ n  xI d D]A } t  j j | ƒ rG |  j | d t ƒ} |  j d | ƒ PqG qG Wd  S(   NR@   t   CHRs   /dev/sdas   /dev/hdat   BLK(   s   /dev/sdas   /dev/hda(   R:   t   patht   existst   devnullRD   t   FalseRW   (   R>   RA   t   blockdev(    (    s   lib/python2.7/test/test_stat.pyt   test_devicesŒ   s    c         C   s:  x? |  j  j ƒ  D]. \ } } t t | ƒ } |  j | | | ƒ q Wx? |  j j ƒ  D]. \ } } t t | ƒ } |  j | | | ƒ qR Wx0 |  j D]% } t t | ƒ } |  j | t ƒ qŽ Wx0 |  j	 D]% } t t | ƒ } |  j | t ƒ qÁ WxI |  j
 D]> } t t | ƒ } |  j t | ƒ ƒ |  j | d ƒ d ƒ qô Wd  S(   Ni    (   t   stat_structt   itemsRH   RB   RJ   t   permission_bitst
   file_flagst   assertIsInstancet   intt   formatsRL   RO   t   callable(   R>   t   keyt   valuet   modvalueRV   (    (    s   lib/python2.7/test/test_stat.pyt   test_module_attributes˜   s     (   t   __name__t
   __module__Ry   R|   RL   Rv   Rx   R?   t   tearDownR    t   TrueRD   RW   R^   Ra   Rf   t
   skipUnlesst   hasattrR:   Rj   Rm   RQ   Ru   R   (    (    (    s   lib/python2.7/test/test_stat.pyR      s`   

			!	$
$$c           C   s   t  t ƒ d  S(   N(   R   R   (    (    (    s   lib/python2.7/test/test_stat.pyt	   test_main«   s    t   __main__(
   Rf   R:   t   test.test_supportR    R   RB   t   TestCaseR   Rˆ   R‚   (    (    (    s   lib/python2.7/test/test_stat.pyt   <module>   s   ¥	