ó
E®Uc           @   s¾   d  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 m Z m Z d d l Z d d l Z d d l Z d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d S(   s1   Tests for samba.xattr_native and samba.xattr_tdb.iÿÿÿÿN(   t   copytree_with_xattrs(   t   xattr(   t   ndr_pack(   t   SkipTestt   TestCaset   TestCaseInTempDirt
   XattrTestsc           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   sD   t  j ƒ  t j d } t j j | d t t d t  j  ƒ  ƒ ƒ ƒ S(   Nt   SELFTEST_PREFIXt   pytestsi † (   t   randomt   seedt   ost   environt   patht   joint   strt   int(   t   selfR   (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   _tmpfilename#   s    
c         C   s   t  j j t  j d d ƒ S(   NR   s   eadb.tdb(   R   R   R   R   (   R   (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt	   _eadbpath(   s    c         C   s£   t  j j ƒ  s t ƒ  ‚ n  t j ƒ  } d | _ |  j ƒ  } t | d ƒ j	 d ƒ y  t  j j
 | d t | ƒ ƒ Wn t k
 r‘ t d ƒ ‚ n Xt j | ƒ d  S(   Ni   t   wt   emptys   user.unittestss>   the filesystem where the tests are runned do not support XATTR(   t   sambat   xattr_nativet   is_xattr_supportedR   R   t   NTACLt   versionR   t   opent   writet   wrap_setxattrR   t   IOErrorR   t   unlink(   R   t   ntaclt   tempf(    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   test_set_xattr_native+   s    	c         C   s³   t  j j ƒ  s t ƒ  ‚ n  |  j ƒ  } d } t | d ƒ j d ƒ y? t  j j | d | ƒ t  j j | d ƒ } |  j	 | | ƒ Wn t
 k
 r¡ t d ƒ ‚ n Xt j | ƒ d  S(   Ns   this is a testR   R   s   user.unittestss>   the filesystem where the tests are runned do not support XATTR(   R   R   R   R   R   R   R   R   t   wrap_getxattrt   assertEqualsR   R   R   (   R   R!   t   reftxtt   text(    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   test_set_and_get_native9   s    c         C   sˆ   |  j  ƒ  } |  j ƒ  } t j ƒ  } d | _ t | d ƒ j d ƒ z# t j j	 | | d t
 | ƒ ƒ Wd  t j | ƒ Xt j | ƒ d  S(   Ni   R   R   s   user.unittests(   R   R   R   R   R   R   R   R   t	   xattr_tdbR   R   R   R   (   R   R!   t	   eadb_pathR    (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   test_set_xattr_tdbG   s    	c         C   s‡   |  j  ƒ  } t j ƒ  } d | _ t | d ƒ j d ƒ z; |  j t t j	 j
 t j j d d ƒ | d t | ƒ ƒ Wd  t j | ƒ Xd  S(   Ni   R   R   t   nonexistents   eadb.tdbs   user.unittests(   R   R   R   R   R   R   t   assertRaisesR   R   R(   R   R   R   R   R   R   (   R   R!   R    (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   test_set_tdb_not_openT   s    	c         C   s›   |  j  ƒ  } |  j ƒ  } d } t | d ƒ j d ƒ zE t j j | | d | ƒ t j j | | d ƒ } |  j | | ƒ Wd  t	 j
 | ƒ Xt	 j
 | ƒ d  S(   Ns   this is a testR   R   s   user.unittests(   R   R   R   R   R   R(   R   R#   R$   R   R   (   R   R!   R)   R%   R&   (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   test_set_and_get_tdb`   s    	(	   t   __name__t
   __module__R   R   R"   R'   R*   R-   R.   (    (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyR   !   s   						t   TestCopyTreeWithXattrsc           B   s   e  Z d  „  Z RS(   c         C   s   t  j |  j ƒ t  j d ƒ t  j d ƒ t  j d ƒ t d d ƒ } z | j d ƒ Wd  | j ƒ  Xt d d ƒ t j	 d ƒ t j	 d ƒ d  S(   Nt   as   a/bs   a/b/cs   a/b/c/dR   t   foot   b(
   R   t   chdirt   tempdirt   mkdirR   R   t   closeR    t   shutilt   rmtree(   R   t   f(    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   test_simpler   s    (   R/   R0   R<   (    (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyR1   p   s   (   t   __doc__t   samba.xattr_nativeR   t   samba.xattr_tdbt   samba.xattrR    t   samba.dcerpcR   t	   samba.ndrR   t   samba.testsR   R   R   R	   R9   R   R   R1   (    (    (    s5   /usr/lib/python2.7/dist-packages/samba/tests/xattr.pyt   <module>   s   O