ó
ûR‹_c           @   sý   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
 m Z m Z m Z m Z d d l m Z m Z d d	 l m Z e r¸ d
 j d ƒ Z d
 Z n d Z d j d ƒ Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   mkdtemp(   t   TestCase(   t   catch_warnings(   t   Mock(   t   TempDirectoryt   Replacert   ShouldRaiset   comparet   OutputCapturei   (   t   Unicodet   PY3(   t   rmtrees   £s   utf-8s   Â£t   TestTempDirectoryc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sn   t  ƒ  } | j } t j j | ƒ t k s0 t ‚ | j d d ƒ } | j ƒ  t j j | ƒ t k sj t ‚ d  S(   Nt	   somethingt   stuff(	   R   t   patht   ost   existst   Truet   AssertionErrort   writet   cleanupt   False(   t   selft   dt   p(    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_cleanup   s    		
c         C   s°   t  ƒ  } t  ƒ  } t j j | j ƒ t k s3 t ‚ | j } t j j | j ƒ t k s] t ‚ | j } t  j ƒ  t j j | ƒ t k sŽ t ‚ t j j | ƒ t k s¬ t ‚ d  S(   N(   R   R   R   R   R   R   t   cleanup_allR   (   R   t   d1t   d2t   p1t   p2(    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_cleanup_all    s    		!	!	
c      
   C   sÅ   t  ƒ  ˜ } | j } t j j | ƒ t k s3 t ‚ | j d d ƒ t j | ƒ d g k sa t ‚ t t j j	 | d ƒ ƒ  } | j
 ƒ  d k s— t ‚ Wd  QXWd  QXt j j | ƒ t k sÁ t ‚ d  S(   NR   R   (   R   R   R   R   R   R   R   t   listdirt   opent   joint   readR   (   R   R   R   t   f(    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_with_statement.   s    	$c      	   C   s   t  ƒ  c } | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ t ƒ   } | j ƒ  Wd  QXWd  QX| j d ƒ d  S(   Nt   gat    t   foo1t   Foo2s   g.os   Foo2
foo1
g.o
ga(   R   R   R   R!   R   (   R   R   t   output(    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_listdir_sort8   s    (   t   __name__t
   __module__R   R    R&   R,   (    (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyR      s   			
t   TempDirectoryTestsc           B   s  e  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 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s?   t  ƒ  0 } t t d ƒ ƒ  | j d d ƒ Wd  QXWd  QXd  S(   Ns8   Attempt to read or write outside the temporary Directorys   /some/folderR   (   R   R   t
   ValueErrorR   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_write_with_slash_at_startE   s    c      
   C   s<   t  ƒ  - } t t d ƒ ƒ  | j d ƒ Wd  QXWd  QXd  S(   Ns8   Attempt to read or write outside the temporary Directorys   /some/folder(   R   R   R0   t   makedir(   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt    test_makedir_with_slash_at_startL   s    c      
   C   s<   t  ƒ  - } t t d ƒ ƒ  | j d ƒ Wd  QXWd  QXd  S(   Ns8   Attempt to read or write outside the temporary Directorys   /some/folder(   R   R   R0   R$   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_read_with_slash_at_startS   s    c      
   C   s<   t  ƒ  - } t t d ƒ ƒ  | j d ƒ Wd  QXWd  QXd  S(   Ns8   Attempt to read or write outside the temporary Directorys   /some/folder(   R   R   R0   R!   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt    test_listdir_with_slash_at_startZ   s    c         C   sB   t  ƒ  3 } t t d ƒ ƒ  | j d d d ƒWd  QXWd  QXd  S(   Ns8   Attempt to read or write outside the temporary DirectoryR   s   /some/folder(    (   R   R   R0   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt    test_compare_with_slash_at_starta   s    c         C   s>   t  ƒ  / } | j d d ƒ } t | j | ƒ d ƒ Wd  QXd  S(   Nt   foot   bar(   R   R   R   R$   (   R   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt    test_read_with_slash_at_start_okh   s    c         C   sÌ   t  ƒ  } t j j | d ƒ } t | d ƒ  } | j d ƒ Wd  QXzw t d | ƒ } |  j | | j ƒ | j ƒ  |  j t j	 | ƒ d g ƒ t | ƒ  } |  j | j
 ƒ  d ƒ Wd  QXWd  t | ƒ Xd  S(   Nt   testt   wR7   R   (   R    R   R   R#   R"   R   R   t   assertEqualR   R!   R$   R   (   R   R   t   fpR%   t   td(    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_dont_cleanup_with_pathm   s    	
 c         C   sR   t  ƒ  } t | ƒ t d | ƒ } |  j | | j ƒ |  j t j j | ƒ ƒ d  S(   NR   (   R    R   R   R<   R   t   failIfR   R   (   R   R   R>   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_dont_create_with_path}   s
    	
c         C   s3   t  ƒ  $ } | j d d ƒ | j d ƒ Wd  QXd  S(   Nt   xR(   (   R   R   t   check(   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_deprecated_check„   s    c         C   s6   t  ƒ  ' } | j d d ƒ | j d d ƒ Wd  QXd  S(   Ns   foo/xR(   R7   RB   (   R   R   t	   check_dir(   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_deprecated_check_dir‰   s    c      	   C   sO   t  ƒ  @ } | j d d ƒ | j d d d d ƒ | j d d d ƒ Wd  QXd  S(   Ns   a/b/cR(   s   a/s   a/b/t   as   b/s   b/c(   R   R   t	   check_all(   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_deprecated_check_allŽ   s    c      	   C   so   t  ƒ  ` } | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d d d d g ƒ Wd  QXd  S(   NR'   R(   R)   R*   s   g.o(   R   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_compare_sort_actual”   s    c      	   C   so   t  ƒ  ` } | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d d d d g ƒ Wd  QXd  S(   NR'   R(   R)   R*   s   g.o(   R   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_compare_sort_expectedœ   s    c      	   C   s?   t  ƒ  0 } | j d d ƒ | j d d d d g ƒ Wd  QXd  S(	   Ns   a/b/cR(   R   RG   t   bt   expectedt   c(   RG   RL   (   R   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_compare_path_tuple¤   s    c      	   C   sˆ   t  d d g ƒ p } | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d d ƒ | j d	 d
 d d g ƒ Wd  QXd  S(   Nt   ignores   .svns   .svn/rubbishR(   s   a/.svn/rubbishs   a/b/.svns   a/b/cs   a/d/.svn/rubbishs   a/s   a/b/s   a/d/(   R   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_recursive_ignoreª   s    c         C   s<   t  ƒ  - } | j d d ƒ | j d g d t ƒWd  QXd  S(   Ns   a/b/cR(   t
   files_only(   R   R   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_files_only¸   s    c         C   s£   t  ƒ  d } | j d ƒ } | j d d ƒ } | j d ƒ } | j d ƒ } | j d ƒ } | j d ƒ } Wd  QX|  j | | ƒ |  j | | ƒ |  j | | ƒ d  S(	   NR7   s   baz/bobR(   s   a/b/cRG   RL   RN   (   RG   RL   RN   (   R   R2   R   t   getpathR<   (   R   R   t	   expected1t	   expected2t	   expected3t   actual1t   actual2t   actual3(    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt	   test_path½   s    c         C   s   d d l  m } t ƒ  } t ƒ  Ø } | j d t ƒ | j d | j ƒ t ƒ  } | j | j ƒ g } t	 | | j
 ƒ t d t ƒ H } | j ƒ  |  j t | ƒ d ƒ t	 t | d j ƒ d | j ƒ Wd  QX| j ƒ  t	 t ƒ  t j ƒ | j ƒ  Wd  QXd  S(	   Niÿÿÿÿ(   t   calls'   testfixtures.TempDirectory.atexit_setups   atexit.registert   recordi   i    s4   TempDirectory instances not cleaned up by shutdown:
(   t   testfixtures.mockR\   R   R   t   replaceR   t   registerR   t   atexitR   t
   mock_callsR   R   t
   assertTruet   lent   strt   messageR   R   t   sett	   instances(   R   R\   t   mt   rR   RM   R;   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_atexitË   s"    		

c      
   C   sf   t  ƒ  W } t t j j | j d ƒ d ƒ  } | j d ƒ Wd  QXt | j d d ƒ t ƒ Wd  QXd  S(   Ns	   test.filet   wbs   Â£t   utf8(	   R   R"   R   R   R#   R   R   R$   t	   some_text(   R   R   R%   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_read_decodeë   s    $c      
   C   sc   t  ƒ  T } t t j j | j d ƒ d ƒ  } | j d ƒ Wd  QXt | j d ƒ d ƒ Wd  QXd  S(   Ns	   test.fileRl   s   Â£(   R   R"   R   R   R#   R   R   R$   (   R   R   R%   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_read_no_decodeñ   s    $c         C   sc   t  ƒ  T } | j d d ƒ t t j j | j d ƒ d ƒ  } t | j ƒ  d ƒ Wd  QXWd  QXd  S(   Ns	   test.files   Â£t   rb(   R   R   R"   R   R   R#   R   R$   (   R   R   R%   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_write_bytes÷   s    $c         C   sf   t  ƒ  W } | j d t d ƒ t t j j | j d ƒ d ƒ  } t | j ƒ  d ƒ Wd  QXWd  QXd  S(   Ns	   test.fileRm   Rq   s   Â£(	   R   R   Rn   R"   R   R   R#   R   R$   (   R   R   R%   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_write_unicodeý   s    $c         C   sl   t  r t d ƒ } n t d d d d d ƒ } t ƒ  0 } t | ƒ  | j d t d ƒ ƒ Wd  QXWd  QXd  S(   Ns*   a bytes-like object is required, not 'str't   asciis   £i    i   s   ordinal not in range(128)s	   test.file(   R
   t	   TypeErrort   UnicodeDecodeErrorR   R   R   R	   (   R   RM   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_write_unicode_bad  s    c         C   sR   t  ƒ  C } | j d ƒ | j d ƒ | j d d d d d g d t ƒ Wd  QXd  S(	   Ns   foo/bars   foo/bazR   R7   RM   R8   t   bazt	   recursive(   R   R2   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_just_empty_non_recursive  s    c         C   sF   t  ƒ  7 } | j d ƒ | j d ƒ | j d d d g ƒ Wd  QXd  S(   Ns   foo/bars   foo/bazs   foo/s   foo/bar/s   foo/baz/(   R   R2   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_just_empty_dirs  s    c         C   s^   t  ƒ  O } | j d d ƒ t j | j d ƒ | j d ƒ ƒ | j d d d g ƒ Wd  QXd  S(   Ns   foo/bar.txtRB   R7   Rx   s   baz/s   foo/(   R   R   R   t   symlinkRT   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_symlink  s    "c      	   C   sg   t  ƒ  X } | j d d ƒ t j | j d ƒ | j d ƒ ƒ | j d d d d g d t ƒWd  QXd  S(	   Ns   foo/bar.txtRB   R7   Rx   s   baz/s   baz/bar.txts   foo/t   followlinks(   R   R   R   R|   RT   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_follow_symlinks$  s
    "c      
   C   sB   t  ƒ  3 } | j d d ƒ | j d d d d d g ƒ Wd  QXd  S(   Ns   source/foo/bar.txtRB   R   s   source/RM   s   foo/s   foo/bar.txt(   R   R   R   (   R   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_trailing_slash+  s    c         C   sZ   d } | j  d ƒ } t d d ƒ 0 } | j d | ƒ t | j d ƒ d | ƒWd  QXd  S(   Ns   Â£s   utf-8t   encodings   test.txtRM   (   t   decodeR   R   R   R$   (   R   t   encodedt   decodedR   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_default_encoding0  s
    c      	   C   sf   d } | j  d ƒ } t d d ƒ < } | j d | d d ƒt | j d d d ƒd | ƒWd  QXd  S(   Ns   Â£s   utf-8R   Rt   s   test.txtRM   (   R‚   R   R   R   R$   (   R   Rƒ   R„   R   (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   test_override_default_encoding7  s
    (    R-   R.   R1   R3   R4   R5   R6   R9   R?   RA   RD   RF   RI   RJ   RK   RO   RQ   RS   R[   Rk   Ro   Rp   Rr   Rs   Rw   Rz   R{   R}   R   R€   R…   R†   (    (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyR/   C   s<   																		 											(   R   t   tempfileR    t   unittestR   t   warningsR   R^   R   t   testfixturesR   R   R   R   R   t   compatR	   R
   R   t   encodet
   some_bytesRn   R‚   R   R/   (    (    (    s^   /var/www/syncserver/local/lib/python2.7/site-packages/testfixtures/tests/test_tempdirectory.pyt   <module>   s   (	-