ó
æNXc           @@ s  d  Z  d d l m Z m Z m 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 m Z d d l m Z d d l m Z d d l m Z d „  Z d	 f  d
 „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ  e j! j" e j# d d f k  d d ƒd f  d  „  ƒ  Yƒ Z$ d! f  d" „  ƒ  YZ% d# f  d$ „  ƒ  YZ& e' d% k re j( ƒ  n  d S(&   uC  
Tests for the path module.

This suite runs on Linux, OS X, and Windows right now.  To extend the
platform support, just add appropriate pathnames for your
platform (os.name) in each place where the p() function is called.
Then report the result.  If you can't get the test to run at all on
your platform, there's probably a bug in path.py -- please report the issue
in the issue tracker at https://github.com/jaraco/path.py.

TestScratchDir.test_touch() takes a while to run.  It sleeps a few
seconds to allow some time to pass between calls to check the modify
time on files.
i    (   t   unicode_literalst   absolute_importt   print_functionN(   t   Patht   tempdir(   t   CaseInsensitivePattern(   t   SpecialResolver(   t   Multic          K@ s   |  t  j S(   u?    Choose a value from several possible values, based on os.name (   t   ost   name(   t   choices(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   p'   s    t
   TestBasicsc           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 RS(   c   	      C@ s  t  t d d d d ƒ ƒ } | d } | d } | d } | d d	 } t  t j ƒ } | j | ƒ t  d ƒ d d d	 k sƒ t ‚ | j | ƒ t  d ƒ d	 k s¨ t ‚ | j | ƒ | d d d	 k sÏ t ‚ | j | ƒ | | | d k sö t ‚ | j | ƒ | | k st ‚ | j | ƒ d t  d ƒ d d	 k sBt ‚ | j | ƒ t j k s`t ‚ | j | ƒ t j k s~t ‚ | j | j ƒ  ƒ t j k s¢t ‚ t  t j ƒ  ƒ } | j	 ƒ  | j | ƒ k sÕt ‚ t j
 d
 k rt  d ƒ } | j | ƒ | k st ‚ n  d  S(   Nt   ntu   C:\t   posixu   /u   foou   quuxu   baru   Bazu   Bozu   ntu   D:\(   R   R   R   t   pardirt	   relpathtot   AssertionErrort   curdirt   normcaset   getcwdt   relpathR	   (	   t   selft   roott   foot   quuxt   bart   bozt   upt   cwdt   d(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_relpath-   s(    


-%''-$!c         C@ s2   y t  d ƒ Wn t k
 r! n Xt d ƒ ‚ d S(   u
   

        u   DID NOT RAISEN(   R   t   Nonet	   TypeErrort	   Exception(   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_construction_from_noneN   s
    c         C@ s   t  d ƒ d k s t ‚ d S(   uL   
        Path class will construct a path as a string of the number
        i   u   1N(   R   R   (   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_construction_from_intY   s    c         C@ sÛ   t  d ƒ } | d k s t ‚ | t d ƒ k s6 t ‚ t  d ƒ t  d ƒ d t  d ƒ d t  d ƒ d g } | j ƒ  | d d d d d d d g k sš t ‚ t  d	 ƒ } t  d
 ƒ } | | t d d d d ƒ k s× t ‚ d S(   u+    Test compatibility with ordinary strings. u   xyzzyu   fhju   fghu   Eu   du   Au   Bu   cu   foou   barR   u   foo\barR   u   foo/barN(   R   R   t   strt   sortR   (   R   t   xt   itemst   p1t   p2(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_string_compatibility_   s    					
'c         C@ sè   t  d d d d ƒ } t | ƒ } d } d } t  d | d | ƒ } | j | k sW t ‚ | j d k sl t ‚ | j j t  d d d d	 ƒ k s“ t ‚ | j d
 k s¨ t ‚ | j j d k sÀ t ‚ | j t  d d d d ƒ k sä t ‚ d  S(   NR   u$   C:\Program Files\Python\Lib\xyzzy.pyR   u   /usr/local/python/lib/xyzzy.pyu   C:\Program Files\Python\Libu   /usr/local/python/libu   xyzzy.pyu   Libu   libu   .pyu    u   C:(   R   R   t   parentR   R	   t   extt   drive(   R   t   ft   nt_libt	   posix_libt   expected(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_propertiesu   s    	'c         C@ sd   t  t j ƒ j ƒ  t j ƒ  k s' t ‚ t  j ƒ  } t | t  ƒ sH t ‚ | t j ƒ  k s` t ‚ d  S(   N(   R   R   R   t   abspathR   R   t
   isinstance(   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_methodsŒ   s    'c         C@ sd   t  t j d ƒ r` t d ƒ } | j d k s3 t ‚ | j ƒ  t j j t | ƒ ƒ k s` t ‚ n  d  S(   Nu   splituncu   \\python1\share1\dir1\file1.txtu   \\python1\share1(   t   hasattrR   t   pathR   t   uncshareR   t   splituncR%   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_UNC•   s    c         C@ s·   t  j t ƒ d ƒ } t  j t ƒ d ƒ } t  j t ƒ d ƒ } | j ƒ  d k sW t ‚ | j ƒ  d k so t ‚ | j ƒ  d k s‡ t ‚ | d d k s t ‚ | d d k s³ t ‚ d	 S(
   uF   
        The user may specify an explicit path module to use.
        u   foo\bar\bazu   foo/bar/bazu   foo\baru   foo/baru    u   quuxu   foo\bar\baz\quuxu   foo/bar/baz/quuxN(   R   t   using_modulet   ntpatht	   posixpatht   dirnameR   (   R   t   nt_okt   posix_okt   posix_wrong(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_explicit_module›   s    c         C@ sC   t  j t ƒ } | t  j t ƒ k s* t ‚ | j d k s? t ‚ d S(   uT   
        Multiple calls to path.using_module should produce the same class.
        u   Path_ntpathN(   R   R<   R=   R   t   __name__(   R   t   nt_path(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_explicit_module_classesª   s    c         C@ s@   t  d ƒ } | j d ƒ } | t d d d d ƒ k s< t ‚ d  S(   Nu   foou   barR   u   foo\barR   u   foo/bar(   R   t   joinpathR   R   (   R   t   rest   foo_bar(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_joinpath_on_instance²   s    c         C@ s(   t  d ƒ } | j ƒ  | k s$ t ‚ d  S(   Nu   foo(   R   RG   R   (   R   RH   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_joinpath_to_nothing·   s    c         C@ s7   t  j d d ƒ } | t d d d d ƒ k s3 t ‚ d S(   u)   Construct a path from a series of stringsu   foou   barR   u   foo\barR   u   foo/barN(   R   RG   R   R   (   R   RI   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_joinpath_on_class»   s    c         C@ s2   y t  j ƒ  Wn t k
 r! n Xt d ƒ ‚ d S(   u,   It doesn't make sense to join nothing at allu   did not raiseN(   R   RG   R!   R"   (   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_joinpath_fails_on_emptyÀ   s
    c         C@ sm   t  j t ƒ } | j d ƒ } t | | ƒ s3 t ‚ | j d ƒ } t | | ƒ sW t ‚ | d k si t ‚ d  S(   Nu   foou   baru   foo/bar(   R   R<   R>   RG   R5   R   (   R   t
   path_posixRH   t   res2(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_joinpath_returns_same_typeÉ   s    (   RD   t
   __module__R   R#   R$   R+   R3   R6   R;   RC   RF   RJ   RK   RL   RM   RP   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR   ,   s   	!														t   TestSelfReturnc           B@ s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   uÄ   
    Some methods don't necessarily return any value (e.g. makedirs,
    makedirs_p, rename, mkdir, touch, chroot). These methods should return
    self anyhow to allow methods to be chained.
    c         C@ s2   t  | ƒ d } | j ƒ  } | | k s. t ‚ d S(   u9   
        Path('foo').makedirs_p() == Path('foo')
        u   newpathN(   R   t
   makedirs_pR   (   R   t   tmpdirR   t   ret(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_makedirs_pØ   s    c         C@ s.   t  | ƒ } | j ƒ  } | | k s* t ‚ d  S(   N(   R   RS   R   (   R   RT   R   RU   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_makedirs_p_extantà   s    c         C@ sO   t  | ƒ d } | j ƒ  t  | ƒ d } | j | ƒ } | | k sK t ‚ d  S(   Nu   somefileu	   otherfile(   R   t   toucht   renameR   (   R   RT   R   t   targetRU   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_renameå   s
    
c         C@ s2   t  | ƒ d } | j ƒ  } | | k s. t ‚ d  S(   Nu   newdir(   R   t   mkdirR   (   R   RT   R   RU   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt
   test_mkdirì   s    c         C@ s2   t  | ƒ d } | j ƒ  } | | k s. t ‚ d  S(   Nu
   empty file(   R   RX   R   (   R   RT   R   RU   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt
   test_touchñ   s    (   RD   RQ   t   __doc__RV   RW   R[   R]   R^   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRR   Ò   s   				t   TestScratchDirc           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 e j j e e j d ƒ d d ƒd „  ƒ Z d „  Z RS(   uO   
    Tests that run in a temporary directory (does not test tempdir class)
    c         C@ sy   t  | ƒ } | d } | j ƒ  t j ƒ  } | ) t j ƒ  t j j | ƒ k sW t ‚ Wd QXt j ƒ  | k su t ‚ d S(   u)   Can be used as context manager for chdir.u   subdirN(   R   t   makedirsR   R   R8   t   realpathR   (   R   RT   R   t   subdirt   old_dir(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_context_managerû   s    

*c         C@ sc  d } t  | ƒ } | d } t j ƒ  | } | j ƒ  t j ƒ  | } | j ƒ  sX t ‚ | j ƒ  sj t ‚ | j d k s t ‚ | | j k o™ | k n s¤ t ‚ t t	 j
 d ƒ rä | j } | | k oÖ | k n sä t ‚ n  t j | d ƒ t | d ƒ } | j d j d ƒ ƒ | j ƒ  t j | d ƒ t j ƒ  | }	 | j ƒ  t j ƒ  | }
 | | k o|	 k  o|
 k n sŒt ‚ | j ƒ  sžt ‚ | j ƒ  s°t ‚ | j d	 k sÅt ‚ |	 | j k oß|
 k n sêt ‚ t t	 j
 d ƒ r_| j } t	 j d
 k r;| | k s&t ‚ | |	 k  s\t ‚ q_| | k s_| | j k s_t ‚ n  d  S(   Ni   u   test.txti    u   getctimei   u   abu
   some bytesu   utf-8i
   u   nt(   R   t   timeRX   t   existsR   t   isfilet   sizet   mtimeR7   R   R8   t   ctimet   sleept   opent   writet   encodet   closeR	   (   R   RT   t	   thresholdR   R/   t   t0t   t1t   ctt   fobjt   t2t   t3t   ct2(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR^     s@    

%	%

-%	c   	      C@ s/  t  | ƒ } | j ƒ  g  k s$ t ‚ d } | | } | t j j | | ƒ k sU t ‚ | j ƒ  zý | j ƒ  st t ‚ | j ƒ  | g k s t ‚ | j d ƒ | g k s­ t ‚ | j d ƒ | g k sË t ‚ | j d ƒ | g k sé t ‚ | j d ƒ | g k st ‚ | j d ƒ | g k s%t ‚ | j d ƒ g  k s@t ‚ | j d ƒ g  k s[t ‚ Wd  | j	 ƒ  Xg  t
 d ƒ D] } | d	 | ^ qw} x4 | D], } t | d
 ƒ } | j d ƒ | j ƒ  q˜Wz6 | j ƒ  } | j ƒ  | j ƒ  | | k sýt ‚ Wd  x& | D] } y | j	 ƒ  WqqXqWXd  S(   Nu   testfile.txtu	   test*.txtu   *.txtu   *txtu   *u   *.htmlu   testfilei   u   %d.txtu   wu
   some text
(   R   t   listdirR   R   R8   t   joinRX   Rg   t   globt   removet   rangeRm   Rn   Rp   R&   (	   R   RT   R   R/   t   aft   it   filesRu   t   files2(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listing8  s@    
!
'

c         C@ s   t  | ƒ j ƒ  g  k s t ‚ t | ƒ j d ƒ } d j d ƒ } t j j | | ƒ } t | d ƒ  Wd QXt j | ƒ s‚ t ‚ t  | ƒ j ƒ  } t	 | ƒ d k s¬ t ‚ | \ } t
 | t  ƒ sÊ t ‚ t j ƒ  d k rø | j ƒ  d k sô t ‚ d St	 | j ƒ  ƒ t	 | ƒ k st ‚ d S(	   u«   
        Some filesystems allow non-character sequences in path names.
        ``.listdir`` should still function in this case.
        See issue #61 for details.
        u   asciiu   rÃ©Ã±emiu   latin-1u   wbNi   u   Darwinu
   r%E9%F1emi(   R   Ry   R   R%   Ro   R   R8   Rz   Rm   t   lenR5   t   platformt   systemt   basename(   R   RT   t   tmpdir_bytest   filenamet   pathnamet   resultsRH   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listdir_other_encodingb  s    	c         C@ s  t  | ƒ } | d } | j ƒ  zÖ | d } | d d d } | j ƒ  z | j ƒ  s^ t ‚ Wd  | j ƒ  X| j ƒ  s€ t ‚ | j ƒ  s’ t ‚ | j d ƒ | j d ƒ z | j ƒ  sÁ t ‚ Wd  | j ƒ  X| j ƒ  sã t ‚ | j ƒ  sõ t ‚ Wd  t j	 | ƒ Xd  S(   Nu   temp.txtu   foou   baru   bazu   boziè  iÀ  (
   R   RX   Ra   t   isdirR   t
   removedirsRg   R\   R   R|   (   R   RT   R   t   tempfR   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_makedirs}  s(    



c         C@ sX   i  } x | D] } d  | | <q Wi  } x | D] } d  | | <q. W| | k sT t ‚ d  S(   N(   R    R   (   R   t   at   bt   adR   t   bd(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   assertSetsEqualš  s    c         C@ sž  t  | ƒ } | d } | d } | d } | d } | d } | d } | d }	 |	 | j | ƒ }
 | j ƒ  | j ƒ  | j ƒ  t | d ƒ } | j d	 d
 ƒ | j ƒ  | j | ƒ | j ƒ  sÌ t ‚ | j	 ƒ  | j	 ƒ  k sê t ‚ | | j
 } | j | ƒ | j ƒ  st ‚ | j	 ƒ  | j	 ƒ  k s4t ‚ t t d ƒ rS| j | ƒ n | j | ƒ | j |	 ƒ |	 j ƒ  st ‚ |  j |	 j ƒ  |	 | j
 |	 | j
 |
 g ƒ |
 j ƒ  s¿t ‚ |	 j ƒ  |	 j ƒ  sÜt ‚ | j |	 t ƒ |	 j ƒ  sþt ‚ |  j |	 j ƒ  |	 | j
 |	 | j
 |
 g ƒ t t d ƒ rg|
 j ƒ  sLt ‚ |
 j ƒ  | k sgt ‚ n  | j ƒ  | j ƒ  s„t ‚ |  j | j ƒ  g  ƒ d  S(   Nu   testdiru   testfile.txtu   Au   testcopy.txtu   testlink.txtu   Bu   Cu   wu   xi'  u   symlink(   R   R   R\   Rm   Rn   Rp   t   copyfileRh   R   t   bytesR	   t   copyR7   R   t   symlinkt   copytreeRŒ   R”   Ry   t   islinkt   rmtreeRg   t   Truet   readlinkt
   assertList(   R   RT   R   t   testDirt   testFilet   testAt   testCopyt   testLinkt   testBt   testCt   testCopyOfLinkR/   t	   testCopy2(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_shutil§  s`    










	



	



c         C@ s"   t  | ƒ t  | ƒ k s t ‚ d  S(   N(   t   sortedR   (   R   t   listingR2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRž   ï  s    c         C@ sß  t  | ƒ } d d d d d g } | | d | d | d d g } xF | D]> } | j ƒ  si | j ƒ  n  x | D] } | | j ƒ  qp WqJ W|  j | j d	 ƒ | d | d g ƒ |  j | j d	 ƒ | d g ƒ |  j | j d	 ƒ | d g ƒ |  j | j ƒ  g  | D] } | | k r	| ^ q	g  | D] } | D] } | | ^ q5q+ƒ |  j | j d	 ƒ g  | D] } | d ^ qi| d g ƒ |  j | j	 d	 ƒ g  | D] } | d ^ q¤ƒ |  j | j
 d	 ƒ | d g ƒ d  S(
   Nu   x.tmpu   x.xtmpu   x2gu   x22u   x.txtu   xdiru   xdir.tmpu   xsubdiru   *.tmp(   R   RŒ   Ra   RX   Rž   Ry   R€   t   dirst   walkt	   walkfilest   walkdirs(   R   RT   R   t   namesR«   t   eR	   t   n(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_patternsò  s$    "'  ")0c         @ sQ   t  | ƒ } | d ‰  ‡  f d †  } | d ƒ | d ƒ | d ƒ | d ƒ d  S(   Nu   unicode.txtc   
      @ sl  d } d } d d d d d d g ‰ d d	 d	 d	 d
 d g } d d d d d d g } t  j ˆ d ˆ  ƒ } | j | ƒ | j ƒ  ˆ j ƒ  | j ˆ  ƒ k s¡ t ‚ ˆ j ˆ  ƒ | k s¼ t ‚ ˆ j ˆ  ƒ | k s× t ‚ ˆ j ˆ  d t	 ƒ| k sø t ‚ ˆ  d k rd S| d
 ‰ ˆ j
 ˆ ˆ  ƒ ˆ j
 ˆ ˆ  d t ƒd ˆ j d
 t j ƒ j ˆ  ƒ } | } | d c d
 7<ˆ j ƒ  | k s‰t ‚ ˆ j ˆ  ƒ d ˆ k s¨t ‚ ˆ j ˆ  ƒ d | k sÇt ‚ ˆ j ˆ  d t	 ƒd | k sìt ‚ ˆ j | ˆ  ƒ ˆ j | ˆ  d t ƒˆ j ƒ  | k s*t ‚ ˆ j ˆ ˆ  ƒ ˆ j ˆ ˆ  d t ƒˆ j ƒ  | k sht ‚ ‡  ‡ ‡ ‡ f d †  } | d
 ƒ | d ƒ | d ƒ | d ƒ ˆ j ˆ ˆ  d d ƒˆ j ˆ ˆ  d d d t ƒd | j ˆ  ƒ } ˆ j ƒ  | k st ‚ ˆ j ˆ  ƒ d | k s$t ‚ | }	 |	 d c | d 7<|	 | d 7}	 ˆ j ˆ  ƒ |	 k sht ‚ d S(   u¥    Test that path works with the specified encoding,
            which must be capable of representing the entire range of
            Unicode codepoints.
            u?   Hello world
à´Šà¨à´•à¨•
à´Šà¨à´•à¨•Â…à´Šà¨à´•à¨•â€¨hangingu;   Hello world
à´Šà¨à´•à¨•
à´Šà¨à´•à¨•
à´Šà¨à´•à¨•

hangingu   Hello world
u   à´Šà¨à´•à¨•
u   à´Šà¨à´•à¨•Â…u   à´Šà¨à´•à¨•â€¨u   u   hangingu   à´Šà¨à´•à¨•
u   
u   Hello worldu   à´Šà¨à´•à¨•u    u   wt   retainu   UTF-16Nt   appendi   iÿÿÿÿc         @ sm   ˆ j  ˆ ˆ  d |  ƒˆ j  ˆ ˆ  d |  d t ƒd ˆ j d |  ƒ j ˆ  ƒ } ˆ j ƒ  | k si t ‚ d  S(   Nt   linesepR´   i   u   
(   t   write_linesRœ   t   replaceRo   R–   R   (   t   eolR2   (   t   enct
   givenLinest   cleanNoHangingR   (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   testLinesepg  s    u   
u   Â…Rµ   i    i   (   t   codecsRm   Rn   Rp   R–   Ro   R   t   textt   linest   Falset
   write_textRœ   R·   R   Rµ   R¶   R    (
   R¹   t   givent   cleant   expectedLinest   expectedLines2R/   t   expectedBytest   expectedLinesNoHangingR¼   t   expectedResultLines(   R   (   R¹   Rº   R»   sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test  sx    			
!!
%



u   UTF-8u   UTF-16BEu   UTF-16LEu   UTF-16(   R   (   R   RT   R   RÉ   (    (   R   sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_unicode  s    
r


c         C@ s›   t  ƒ  d j ƒ  } d } d } | j | ƒ xH t | j | ƒ ƒ D]1 \ } } | | | | | | | !k sB t ‚ qB W| t | ƒ | d k s— t ‚ d  S(   Nu   test.txtu
   0123456789i   i   (   R   RX   RÁ   t	   enumeratet   chunksR   Rƒ   (   R   RT   R   t   txtRi   R   t   chunk(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_chunksƒ  s    ")u   samefilet   reasonu   samefile not presentc         C@ s&  t  ƒ  d j ƒ  } | j d ƒ t  ƒ  d j ƒ  } | j d ƒ t  ƒ  d j ƒ  } | j d ƒ t  ƒ  d } | j | ƒ t j j | | ƒ | j | ƒ k s¤ t ‚ t j j | | ƒ | j | ƒ k sÎ t ‚ t j j | | ƒ | j | ƒ k sø t ‚ t j j | | ƒ | j | ƒ k s"t ‚ d  S(   Nu   1.txtu   foou   2.txtu   3.txtu   baru   4.txt(   R   RX   RÁ   R•   R   R8   t   samefileR   (   R   RT   t   f1t   f2t   f3t   f4(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_samefile  s    ***c         C@ s   t  | ƒ } | d } | j ƒ  | d j d ƒ | j ƒ  | j ƒ  sN t ‚ y | j ƒ  Wn t k
 r| |  j d ƒ n Xd  S(   Nu	   subfolderu   afileu	   somethinguK   Calling `rmtree_p` on non-existent directory should not raise an exception.(   R   R\   RÁ   t   rmtree_pRg   R   t   OSErrort   fail(   R   RT   R   t   sub(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_rmtree_pž  s    


(   RD   RQ   R_   Re   R^   R‚   R‹   R   R”   R¨   Rž   R²   RÊ   RÏ   t   pytestt   markt   skipifR7   R   R8   RÖ   RÛ   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR`   ÷   s   	
	3	*				H			{	
t   TestMergeTreec           B@ sG   e  Z e j d  e ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z	 RS(   t   autousec         C@ sÑ   t  | ƒ |  _ |  j d |  _ |  j d |  _ |  j d |  _ |  j d |  _ |  j j ƒ  |  j j ƒ  t |  j d ƒ  } | j d d ƒ Wd  QXt	 t
 d ƒ rº |  j j |  j ƒ n |  j j |  j ƒ d  S(	   Nu   Au   testfile.txtu   testlink.txtu   Bu   wu   xi'  u   symlink(   R   t   test_dirt   subdir_at	   test_filet	   test_linkt   subdir_bR\   Rm   Rn   R7   R   R˜   R—   (   R   RT   R/   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   testing_structure­  s    c         C@ s¤   |  j  j |  j d t ƒ|  j j ƒ  s. t ‚ t |  j |  j j |  j |  j	 j f ƒ } t |  j j
 ƒ  ƒ | k s{ t ‚ t |  j |  j	 j ƒ j ƒ  s  t ‚ d  S(   Nt   symlinks(   Râ   t
   merge_treeRå   Rœ   RŒ   R   t   setRã   R	   Rä   Ry   R   Rš   (   R   R2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt    test_with_nonexisting_dst_kwargsÀ  s    !c         C@ s¡   |  j  j |  j t ƒ |  j j ƒ  s+ t ‚ t |  j |  j j |  j |  j	 j f ƒ } t |  j j
 ƒ  ƒ | k sx t ‚ t |  j |  j	 j ƒ j ƒ  s t ‚ d  S(   N(   Râ   Rè   Rå   Rœ   RŒ   R   Ré   Rã   R	   Rä   Ry   R   Rš   (   R   R2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_with_nonexisting_dst_argsÊ  s    !c         C@ sR  |  j  j ƒ  |  j j |  j  t ƒ |  j j ƒ  |  j d } | j ƒ  t |  j	 d ƒ  } | j
 d d ƒ Wd  QX|  j j |  j  t ƒ |  j  j ƒ  sž t ‚ t |  j  |  j	 j |  j  |  j j |  j  | j f ƒ } t |  j  j ƒ  ƒ | k sø t ‚ t |  j  |  j j ƒ j ƒ  st ‚ t t |  j  |  j	 j ƒ j ƒ  ƒ d k sNt ‚ d  S(   Nu   newfile.txtu   wu   xiˆ  (   Rå   R›   Râ   R™   Rœ   Rä   R|   RX   Rm   Rã   Rn   Rè   RŒ   R   Ré   R	   Ry   R   Rš   Rƒ   R–   (   R   t   test_newR/   R2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_with_existing_dstÔ  s     
!%c         C@ sl   t  j d ƒ } |  j j |  j d | ƒ|  j j ƒ  s= t ‚ |  j j ƒ  |  j |  j j	 g k sh t ‚ d S(   uS   
        merge_tree should accept parameters to copytree, such as 'ignore'
        u	   testlink*t   ignoreN(
   t   shutilt   ignore_patternsRâ   Rè   Rå   RŒ   R   Ry   Rã   R	   (   R   Rî   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_copytree_parametersê  s    (
   RD   RQ   RÜ   t   fixtureRœ   Ræ   Rê   Rë   Rí   Rñ   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRß   ¬  s
   	
	
	t	   TestChdirc           B@ s   e  Z d  „  Z RS(   c         C@ sð   t  t | ƒ ƒ } | j ƒ  } t | ƒ t | ƒ k s< t ‚ | j ƒ  t | j ƒ  ƒ t | ƒ k sj t ‚ t  | ƒ } t | j ƒ  ƒ t | ƒ k sš t ‚ | j ƒ  t | j ƒ  ƒ t | ƒ k sÈ t ‚ t | j ƒ  ƒ t | ƒ k sì t ‚ d S(   u    tests the chdir or cd method N(   R   R%   R   R   t   chdirt   cd(   R   RT   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_chdir_or_cdö  s    
$$
$(   RD   RQ   Rö   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRó   õ  s   t   TestSubclassc           B@ s'   e  Z d  e f d „  ƒ  YZ d „  Z RS(   t   PathSubclassc           B@ s   e  Z RS(    (   RD   RQ   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRø     s   c         C@ s5   |  j  d ƒ } | d } t | |  j  ƒ s1 t ‚ d S(   u{   
        When operations are invoked on a subclass, they should produce another
        instance of that subclass.
        u   /foou   barN(   Rø   R5   R   (   R   R   Rc   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt!   test_subclass_produces_same_class  s    
(   RD   RQ   R   Rø   Rù   (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR÷     s   t   TestTempDirc           B@ s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@ sc   t  ƒ  } t | t ƒ s t ‚ | j ƒ  s0 t ‚ | j ƒ  sB t ‚ | j ƒ  | j ƒ  s_ t ‚ d S(   uO   
        One should be able to readily construct a temporary directory
        N(   R   R5   R   R   Rg   RŒ   t   rmdir(   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_constructor  s    	
c         C@ s6   t  ƒ  } | d } t | t ƒ s( t ‚ | j ƒ  d S(   ug   
        It should be possible to invoke operations on a tempdir and get
        Path classes.
        u   subdirN(   R   R5   R   R   Rû   (   R   R   RÚ   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_next_class*  s    	
c         C@ sy   t  ƒ  } | j ƒ  } | | k s' t ‚ | d j ƒ  t | d t  ƒ sO t ‚ | j d d d ƒ | j ƒ  su t ‚ d S(   uz   
        One should be able to use a tempdir object as a context, which will
        clean up the contents after.
        u   somefile.txtN(   R   t	   __enter__R   RX   R5   t   __exit__R    Rg   (   R   R   RH   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRe   4  s    	c         C@ sj   t  ƒ  } | j ƒ  | d j ƒ  t | d t  ƒ s; t ‚ | j t t d ƒ d ƒ | j ƒ  sf t ‚ d S(   uO   
        The context manager will not clean up if an exception occurs.
        u   somefile.txtu   fooN(	   R   Rþ   RX   R5   R   Rÿ   R!   R    Rg   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_context_manager_exceptionA  s    	
c         C@ s;   t  ƒ   } | j ƒ  s t ‚ Wd QX| j ƒ  s7 t ‚ d S(   u‘   
        The context manager will allow using the with keyword and
        provide a temporry directory that will be deleted after that.
        N(   R   RŒ   R   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_context_manager_using_withL  s    (   RD   RQ   Rü   Rý   Re   R   R  (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRú     s
   		
		t   TestUnicodec           B@ s,   e  Z e j d  e ƒ d „  ƒ Z d „  Z RS(   Rà   c         C@ s   t  | ƒ j d ƒ j ƒ  d  S(   Nu   â˜ƒ(   R   RG   R\   (   R   RT   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   unicode_name_in_tmpdirX  s    c         C@ s!   x t  | ƒ j ƒ  D] } q Wd  S(   N(   R   R®   (   R   RT   RH   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_walkdirs_with_unicode_name]  s    (   RD   RQ   RÜ   Rò   Rœ   R  R  (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR  W  s   t   TestPatternMatchingc           B@ sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C@ s:   t  d ƒ } | j d ƒ s! t ‚ | j d ƒ s6 t ‚ d  S(   Nu   FooBaru   Foo*u
   Foo[ABC]ar(   R   t   fnmatchR   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_fnmatch_simplec  s    c         C@ sC   t  d ƒ } t | _ | j d ƒ s* t ‚ | j d ƒ s? t ‚ d  S(   Nu   FooBaru   foobaru
   FOO[ABC]AR(   R   R=   t   moduleR  R   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_fnmatch_custom_modh  s    	c         C@ sO   d „  } t  d ƒ } | j d d | ƒs0 t ‚ | j d d | ƒsK t ‚ d  S(   Nc         S@ s
   |  j  ƒ  S(   N(   t   upper(   R8   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   <lambda>o  s    u   FooBaru   foobarR   u
   FOO[ABC]AR(   R   R  R   (   R   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_fnmatch_custom_normcasen  s    	c         C@ s=   t  d ƒ } t | j ƒ  ƒ t t j d ƒ ƒ k s9 t ‚ d  S(   Nu   .(   R   Rƒ   Ry   R   R   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listdir_simplet  s    c         C@ s+   t  d ƒ } | j d ƒ g  k s' t ‚ d  S(   Nu   .u    (   R   Ry   R   (   R   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listdir_empty_patternx  s    c         C@ so   t  | ƒ } | d j ƒ  | d j ƒ  | j d ƒ | d g k sJ t ‚ t | j d ƒ ƒ d k sk t ‚ d  S(   Nu   subu   Fileu   s*u   *i   (   R   R\   RX   Ry   R   Rƒ   (   R   RT   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listdir_patterns|  s
    "c         C@ sµ   t  j t ƒ } | | ƒ } | d j ƒ  | d j ƒ  | j d ƒ g  k sR t ‚ t  j t ƒ } | | ƒ } | j d ƒ | d g k s t ‚ | j d ƒ | d g k s± t ‚ d S(   ux   
        Listdir patterns should honor the case sensitivity of the path module
        used by that Path class.
        u   subu   Fileu   S*u   f*N(   R   R<   R>   R\   RX   Ry   R   R=   (   R   RT   t   always_unixR   t
   always_win(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listdir_custom_moduleƒ  s    "c         C@ s¾   t  | ƒ } | d j ƒ  | d j ƒ  | j t d ƒ ƒ | d g k sP t ‚ | j t d ƒ ƒ | d g k sx t ‚ | j t d ƒ ƒ g  k s™ t ‚ | j t d ƒ ƒ g  k sº t ‚ d S(   ux   
        Listdir patterns should honor the case sensitivity of the path module
        used by that Path class.
        u   subu   Fileu   S*u   f*N(   R   R\   RX   Ry   t   ciR   R€   R«   (   R   RT   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_listdir_case_insensitive“  s    ((!c         C@ så   t  | ƒ } | d d j ƒ  | d d j ƒ  | d d d j ƒ  | d d d j ƒ  | d d d j ƒ  t | j t d ƒ ƒ ƒ } t | ƒ d k s¥ t ‚ | d d d | k sÃ t ‚ | d d d | k sá t ‚ d  S(	   Nu   sub1u   foou   sub2u   bar.Txtu   bar.TXTu   bar.txt.bz2u   *.txti   (   R   RS   RX   t   listR­   R  Rƒ   R   (   R   RT   R   R€   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_walk_case_insensitive   s    (   RD   RQ   R  R	  R  R  R  R  R  R  R  (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR  b  s   								i   i   RÐ   u)   in_place requires io module in Python 2.6t   TestInPlacec           B@ sh   e  Z e j d  j ƒ  ƒ Z e j d j ƒ  ƒ Z e j d j ƒ  ƒ Z e d „  ƒ Z	 d „  Z
 d „  Z RS(   u?   
        The quick brown fox jumped over the lazy dog.
        u?   
        .god yzal eht revo depmuj xof nworb kciuq ehT
        u
  
          Lorem ipsum dolor sit amet, consectetur adipisicing elit,
        sed do eiusmod tempor incididunt ut labore et dolore magna
        aliqua. Ut enim ad minim veniam, quis nostrud exercitation
        ullamco laboris nisi ut aliquip ex ea commodo consequat.
        Duis aute irure dolor in reprehenderit in voluptate velit
        esse cillum dolore eu fugiat nulla pariatur. Excepteur
        sint occaecat cupidatat non proident, sunt in culpa qui
        officia deserunt mollit anim id est laborum.
        c         C@ s<   t  | ƒ d } | j d ƒ  } | j |  j ƒ Wd  QX| S(   Nu   documentu   w(   R   Rm   Rn   t   reference_content(   t   clsRT   R   t   stream(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   create_referenceÀ  s    c   	      C@ s¡   |  j  | ƒ } | j ƒ  J \ } } x: | D]2 } d j t | j ƒ  ƒ ƒ d } | j | ƒ q+ WWd  QX| j ƒ   } | j ƒ  } Wd  QX| |  j k s t	 ‚ d  S(   Nu    u   
(
   R  t   in_placeRz   t   reversedt   stripRn   Rm   t   readt   reversed_contentR   (	   R   RT   t   doct   readert   writert   linet   r_lineR  t   data(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_line_by_line_rewriteÇ  s    c      
   C@ s¿   |  j  | ƒ } t j t ƒ > } | j ƒ  ) \ } } | j |  j ƒ t d ƒ ‚ Wd  QXWd  QXd t | ƒ k sv t ‚ | j	 ƒ   } | j
 ƒ  } Wd  QXd | k s© t ‚ d | k s» t ‚ d  S(   Nu
   some erroru   Loremu   lazy dog(   R  RÜ   t   raisest   RuntimeErrorR  Rn   t   alternate_contentR%   R   Rm   R  (   R   RT   R!  t   excR"  R#  R  R&  (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_exception_in_contextÒ  s    (   RD   RQ   t   textwrapt   dedentt   lstripR  R   R*  t   classmethodR  R'  R,  (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR  ¬  s   		t   TestSpecialPathsc           B@ sz   e  Z e j d  e d d ƒ d „  ƒ Z e j d „  ƒ Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   Rà   t   scopeu   classc         C@ s   t  j d ƒ d  S(   Nu   appdirs(   RÜ   t   importorskip(   R  (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   appdirs_installedà  s    c         C@ sG   | j  d d „  ƒ | j  d d ƒ | j  d d ƒ t j j d ƒ d  S(   Nu   platform.systemc           S@ s   d S(   Nu   Linux(    (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR  æ  s    u   sys.platformu   linuxu
   os.pathsepu   :u   appdirs(   t   setattrt   syst   modulest   pop(   R   t   monkeypatch(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   feign_linuxä  s    c         C@ s   t  j d ƒ } | j ƒ  } t t ƒ j j | k s9 t ‚ | j ƒ  } t t ƒ j	 j | k sc t ‚ | j d d ƒ } t t d d ƒ j j | k s™ t ‚ d  S(   Nu   appdirsu   My Appu   Me(
   t	   importlibt   import_modulet   user_config_dirR   R   t   usert   configR   t   site_config_dirt   site(   R   t   appdirsR2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_basic_pathsí  s    c         C@ sX   | d } | j  t j d t | ƒ ƒ t | d ƒ } t t ƒ j j | k sT t ‚ d  S(   Nu   _configu   XDG_CONFIG_HOME(	   t   setitemR   t   environR%   R   R   R>  R?  R   (   R   RT   R9  R:  t   fake_configR2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_unix_pathsù  s    
c         C@ s\   | d } | j  t j d t | ƒ ƒ t | d d ƒ } t t ƒ j j | k sX t ‚ d S(   u6   Without XDG_CONFIG_HOME set, ~/.config should be used.u   _homeu   HOMEu   .configN(	   RD  R   RE  R%   R   R   R>  R?  R   (   R   RT   R9  R:  t	   fake_homeR2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_unix_paths_fallbackÿ  s    
c         C@ sg   t  t j ƒ  j j t ƒ s! t ‚ t  t j ƒ  j j t ƒ sB t ‚ t  t j ƒ  j j t ƒ sc t ‚ d  S(   N(   R5   R   t   specialR>  R?  R   R&  t   cache(   R   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_property  s    !!c         C@ s7   t  j d d d t ƒ j j } t | t  ƒ s3 t ‚ d S(   uP   
        Other parameters should be passed through to appdirs function.
        t   versionu   1.0t	   multipathN(   R   RJ  Rœ   RA  R?  R5   R   (   R   RH   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_other_parameters  s    c         C@ s»   t  | d ƒ } t  | d ƒ } t j j | | g ƒ } | j t j d | ƒ t j d t ƒ j	 j
 } t | t ƒ s{ t ‚ | | k s t ‚ | | k sŸ t ‚ d t  | ƒ k s· t ‚ d S(   uO   
        If multipath is provided, on Linux return the XDG_CONFIG_DIRS
        u   _config1u   _config2u   XDG_CONFIG_DIRSRN  N(   R%   R   t   pathsepRz   RD  RE  R   RJ  Rœ   RA  R?  R5   R   R   (   R   R:  R9  RT   t   fake_config_1t   fake_config_2t   config_dirsRH   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_multipath  s    c         C@ sU   t  j d ƒ } t t d d ƒ} | j j } | j d d ƒ } | | k sQ t ‚ d S(   u—   
        Passing additional args and kwargs to SpecialResolver should be
        passed through to each invocation of the function in appdirs.
        u   appdirsRM  u   1.0N(   R;  R<  R   R   R>  R?  R=  R   (   R   RB  t   adpRH   R2   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_reused_SpecialResolver   s
    (   RD   RQ   RÜ   Rò   Rœ   R4  R:  RC  RG  RI  RL  RO  RT  RV  (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyR1  ß  s   !							t   TestMultiPathc           B@ s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C@ sR   t  j t ƒ } t | t ƒ s$ t ‚ t | t  ƒ s9 t ‚ | j d k sN t ‚ d S(   uV   
        Multi.for_class should return a subclass of the Path class provided.
        u	   MultiPathN(   R   t	   for_classR   t
   issubclassR   RD   (   R   R  (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_for_class/  s    c         C@ sG   t  j t ƒ j d ƒ } t | t ƒ s- t ‚ t | t  ƒ sC t ‚ d S(   u‰   
        If no pathsep is provided, multipath detect should return an instance
        of the parent class with no Multi mix-in.
        u   /foo/barN(   R   RX  R   t   detectR5   R   (   R   R8   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_detect_no_pathsep8  s    c         C@ sI   d } t  j j | ƒ } t j t ƒ j | ƒ } t | t ƒ sE t ‚ d S(   u~   
        If a pathsep appears in the input, detect should return an instance
        of a Path with the Multi mix-in.
        u   /foo/baru	   /baz/bingN(   u   /foo/baru	   /baz/bing(	   R   RP  Rz   R   RX  R   R[  R5   R   (   R   t   inputst   inputR8   (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_detect_with_pathsepA  s    c         C@ s³   d } t  j j | ƒ } t j t ƒ j | ƒ } t | ƒ } t | ƒ } | d k sZ t	 ‚ t
 | t ƒ so t	 ‚ t
 | t ƒ s… t	 ‚ t | ƒ d k s t	 ‚ | | k s¯ t	 ‚ d S(   u`   
        Iterating over a MultiPath should yield instances of the
        parent class.
        u   /foo/baru	   /baz/bingN(   u   /foo/baru	   /baz/bing(   R   RP  Rz   R   RX  R   R[  t   itert   nextR   R5   (   R   R]  R^  R8   R(   t   first(    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   test_iterationL  s    (   RD   RQ   RZ  R\  R_  Rc  (    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyRW  .  s   					u   __main__()   R_   t
   __future__R    R   R   R½   R   R6  Rï   Rf   R=   R>   R-  R„   R;  RÜ   R8   R   R   R   R  R   R   R   R   RR   R`   Rß   Ró   R÷   Rú   R  R  RÝ   RÞ   t   version_infoR  R1  RW  RD   t   main(    (    (    sA   /data/av2000/mvv/env_mvv/lib/python2.7/site-packages/test_path.pyt   <module>   sB   	¦%ÿ ¶I:J2O0