ó
¼S]c           @@ s¦   d  d l  m Z m Z d  d l m Z d  d l m Z d  d l Z d  d l Z d  d l	 Z	 d „  Z
 d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d S(   i    (   t   absolute_importt   print_function(   t   rename_over_existing(   t   with_directory_contentsNc         C@ sC   y t  t j d |  ƒ ‚ Wn# t k
 r> t t j d ƒ ‚ n Xd  S(   Ns2   Cannot create a file when that file already exists(   t   FileExistsErrort   errnot   EEXISTt	   NameErrort   IOError(   t   dst(    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   _raise_file_exists   s    c          C@ s#   d „  }  t  t d d ƒ |  ƒ d  S(   Nc         S@ sÙ   t  j j |  d ƒ } t  j j |  d ƒ } t  j j | ƒ sB t ‚ t  j j | ƒ s[ t ‚ t | ƒ j ƒ  d k sy t ‚ t | | ƒ t  j j | ƒ sŸ t ‚ t  j j | ƒ s· t ‚ t | ƒ j ƒ  d k sÕ t ‚ d  S(   Nt   foot   bars	   stuff-foo(   t   ost   patht   joint   existst   AssertionErrort   opent   readR   (   t   dirnamet   name1t   name2(    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   do_test   s    R   s	   stuff-foo(   R   t   dict(   R   (    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt!   test_rename_target_does_not_exist   s    	c          C@ s)   d „  }  t  t d d d d ƒ |  ƒ d  S(   Nc         S@ sö   t  j j |  d ƒ } t  j j |  d ƒ } t  j j | ƒ sB t ‚ t  j j | ƒ sZ t ‚ t | ƒ j ƒ  d k sx t ‚ t | ƒ j ƒ  d k s– t ‚ t | | ƒ t  j j | ƒ s¼ t ‚ t  j j | ƒ sÔ t ‚ t | ƒ j ƒ  d k sò t ‚ d  S(   NR   R   s	   stuff-foos	   stuff-bar(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   +   s    R   s	   stuff-fooR   s	   stuff-bar(   R   R   (   R   (    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   test_rename_target_does_exist*   s    	c         @ s/   ‡  f d †  } t  t d d d d ƒ | ƒ d  S(   Nc         @ sK  t  j j |  d ƒ } t  j j |  d ƒ } t  j j | ƒ sB t ‚ t  j j | ƒ sZ t ‚ t | ƒ j ƒ  d k sx t ‚ t | ƒ j ƒ  d k s– t ‚ i  ‰ d d l  m ‰  ‡  ‡ f d †  } ˆ j d | ƒ t	 | | ƒ t  j j | ƒ sô t ‚ t  j j | ƒ st ‚ t | ƒ j ƒ  d k s*t ‚ t  j j ˆ d	 ƒ sGt ‚ d  S(
   NR   R   s	   stuff-foos	   stuff-bari    (   t   renamec         @ sI   d | k r | ˆ d <n  t  j j | ƒ r8 t | ƒ n ˆ  |  | ƒ d  S(   Ns   .bakR   (   R   R   R   R
   (   t   srcR	   (   t   real_renamet   saved_backup(    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   mock_renameI   s
    s	   os.renameR   (
   R   R   R   R   R   R   R   R   t   setattrR   (   R   R   R   R   (   t   monkeypatch(   R   R   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   =   s    R   s	   stuff-fooR   s	   stuff-bar(   R   R   (   R!   R   (    (   R!   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt0   test_rename_target_does_exist_simulating_windows<   s    c         @ s/   ‡  f d †  } t  t d d d d ƒ | ƒ d  S(   Nc         @ su  t  j j |  d ƒ } t  j j |  d ƒ } t  j j | ƒ sB t ‚ t  j j | ƒ sZ t ‚ t | ƒ j ƒ  d k sx t ‚ t | ƒ j ƒ  d k s– t ‚ d d l  m ‰  ‡  f d †  } ˆ j d | ƒ t	 j
 t ƒ  } t | | ƒ Wd  QXd	 t | j ƒ k st ‚ t  j j | ƒ st ‚ t  j j | ƒ s5t ‚ t | ƒ j ƒ  d k sSt ‚ t | ƒ j ƒ  d k sqt ‚ d  S(
   NR   R   s	   stuff-foos	   stuff-bari    (   R   c         @ sK   t  j j | ƒ r t | ƒ n( d | k r: t d ƒ ‚ n ˆ  |  | ƒ d  S(   Ns   .baks   Failing rename to backup(   R   R   R   R
   t   OSError(   R   R	   (   R   (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   h   s
    s	   os.renames   Failing rename to backup(   R   R   R   R   R   R   R   R   R    t   pytestt   raisesR#   R   t   reprt   value(   R   R   R   R   t   excinfo(   R!   (   R   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   ^   s     R   s	   stuff-fooR   s	   stuff-bar(   R   R   (   R!   R   (    (   R!   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt"   test_rename_target_to_backup_fails]   s    c         @ s/   ‡  f d †  } t  t d d d d ƒ | ƒ d  S(   Nc         @ sž  t  j j |  d ƒ } t  j j |  d ƒ ‰  t  j j | ƒ sB t ‚ t  j j ˆ  ƒ sZ t ‚ t | ƒ j ƒ  d k sx t ‚ t ˆ  ƒ j ƒ  d k s– t ‚ i  ‰ d d l  m ‰ ‡  ‡ ‡ f d †  } ˆ j d | ƒ t	 j
 t ƒ  } t | ˆ  ƒ Wd  QXd	 t | j ƒ k st ‚ t  j j | ƒ s)t ‚ t  j j ˆ  ƒ sAt ‚ t | ƒ j ƒ  d k s_t ‚ t ˆ  ƒ j ƒ  d k s}t ‚ t  j j ˆ d
 ƒ sšt ‚ d  S(   NR   R   s	   stuff-foos	   stuff-bari    (   R   c         @ s¿   d | k r | ˆ d <n  t  j j | ƒ r8 t | ƒ nƒ d ˆ k r® t  j j ˆ d ƒ r® |  ˆ d k r® t  j j ˆ  ƒ sƒ t ‚ t  j j ˆ d ƒ sŸ t ‚ t d ƒ ‚ n ˆ |  | ƒ d  S(   Ns   .bakR   s   Failed to copy after backup(   R   R   R   R
   R   R#   (   R   R	   (   R   R   R   (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   ‹   s    2s	   os.renames   Failed to copy after backupR   (   R   R   R   R   R   R   R   R   R    R$   R%   R#   R   R&   R'   (   R   R   R   R(   (   R!   (   R   R   R   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR      s$    R   s	   stuff-fooR   s	   stuff-bar(   R   R   (   R!   R   (    (   R!   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   test_rename_after_backup_fails~   s    $c         @ s/   ‡  f d †  } t  t d d d d ƒ | ƒ d  S(   Nc         @ sm  t  j j |  d ƒ } t  j j |  d ƒ } t  j j | ƒ sB t ‚ t  j j | ƒ sZ t ‚ t | ƒ j ƒ  d k sx t ‚ t | ƒ j ƒ  d k s– t ‚ i  ‰ d d l  m ‰  ‡  ‡ f d †  } ˆ j d | ƒ d	 „  } ˆ j d
 | ƒ t	 | | ƒ t  j j | ƒ st ‚ t  j j | ƒ s%t ‚ t | ƒ j ƒ  d k sCt ‚ t  j j ˆ d ƒ s_t ‚ ˆ j
 ƒ  d  S(   NR   R   s	   stuff-foos	   stuff-bari    (   R   c         @ sI   d | k r | ˆ d <n  t  j j | ƒ r8 t | ƒ n ˆ  |  | ƒ d  S(   Ns   .bakR   (   R   R   R   R
   (   R   R	   (   R   R   (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   ³   s
    s	   os.renamec         S@ s   t  d ƒ ‚ d  S(   Ns   not removing(   R#   (   t   filename(    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   mock_remove½   s    s	   os.removeR   (   R   R   R   R   R   R   R   R   R    R   t   undo(   R   R   R   R   R,   (   R!   (   R   R   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   §   s$    	R   s	   stuff-fooR   s	   stuff-bar(   R   R   (   R!   R   (    (   R!   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pytD   test_rename_target_does_exist_simulating_windows_remove_backup_fails¦   s    (c         @ s/   ‡  f d †  } t  t d d d d ƒ | ƒ d  S(   Nc         @ só   t  j j |  d ƒ } t  j j |  d ƒ } t  j j | ƒ sB t ‚ t  j j | ƒ sZ t ‚ t | ƒ j ƒ  d k sx t ‚ t | ƒ j ƒ  d k s– t ‚ d „  } ˆ  j d | ƒ t j	 t
 ƒ  } t | | ƒ Wd  QXd t | j ƒ k sï t ‚ d  S(   NR   R   s	   stuff-foos	   stuff-barc         S@ s   t  d ƒ ‚ d  S(   Ns   it all went wrong(   R   (   R   R	   (    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   Û   s    s	   os.renames   it all went wrong(   R   R   R   R   R   R   R   R    R$   R%   R   R   t   strR'   (   R   R   R   R   R(   (   R!   (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyR   Ó   s    	R   s	   stuff-fooR   s	   stuff-bar(   R   R   (   R!   R   (    (   R!   sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt&   test_rename_other_error_besides_eexistÒ   s    (   t
   __future__R    R   t    anaconda_project.internal.renameR   t,   anaconda_project.internal.test.tmpfile_utilsR   R   R   R$   R
   R   R   R"   R)   R*   R.   R0   (    (    (    sI   lib/python2.7/site-packages/anaconda_project/internal/test/test_rename.pyt   <module>   s   				!	!	(	,