+
    Bi                     V   ^ RI t ^ RIt^RIHt ^RIHt ^RIHtHtH	t	  ! R R4      t
 ! R R]
]P                  4      t]'       gI   ^ R	IHt  ! R
 R]
]P                  4      t ! R R]
]P                  4      t ! R R]
]P                  4      t]R8X  d   ]P&                  ! 4        R# R# )    N)is_pypi)LocalPathGround)ZipPathGroundReadableZipPathWritableZipPathc                   z   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )CopyTestBasec                    V P                   P                  4       V n        V P                   P                  V P                  4       V P                  P                  R R7      V n        R# )_target)local_suffixN)source_groundsetupsource_rootcreate_hierarchytarget_groundtarget_rootselfs   &2/usr/lib/python3.14/test/test_pathlib/test_copy.pysetUpCopyTestBase.setUp   sO    --335++D,<,<=--333K    c                    V P                   P                  V P                  4       V P                  P                  V P                  4       R # )N)r   teardownr   r   r   r   s   &r   tearDownCopyTestBase.tearDown   s6    ##D$4$45##D$4$45r   c                r   V P                   R ,          pV P                  R,          pVP                  V4      pV P                  W24       V P	                  V P
                  P                  V4      4       V P                  V P                  P                  V4      V P
                  P                  V4      4       R# )fileAcopyAN)	r   r   copyassertEqual
assertTruer   isfiler   	readbytesr   sourcetargetresults   &   r   test_copy_fileCopyTestBase.test_copy_file   s    !!G+!!G+V$(**11&9:++55f=++55f=	?r   c                x   V P                   R ,          pV P                  R,          pV P                  P                  VR4       VP	                  V4      pV P                  W24       V P                  V P                  P                  V4      4       V P                  V P                  P                  V4      R4       R# )emptyr   r   N)
r   r   r   create_filer    r!   r"   r   r#   r$   r%   s   &   r   test_copy_file_empty!CopyTestBase.test_copy_file_empty    s    !!G+!!G+&&vs3V$(**11&9:++55f=sCr   c                   V P                   R ,          pV P                  R,          pV P                  P                  VR4       \        P
                  ! 4       ;_uu_ 4       p\        V\        4      '       d%   VP                  V P                  \        4      4       VP                  V4      pRRR4       V P                  XV4       V P                  V P                  P                  V4      4       V P                  V P                  P!                  V4      V P                  P!                  V4      4       R#   + '       g   i     L; i)r   r   s   this is a copy
N)r   r   r   r-   
contextlib	ExitStack
isinstancer   enter_contextassertWarnsUserWarningr    r!   r"   r#   r   r$   )r   r&   r'   stackr(   s   &    r   test_copy_file_to_existing_file,CopyTestBase.test_copy_file_to_existing_file)   s    !!G+!!G+&&v/BC!!##u&/22##D$4$4[$AB[[(F $ 	(**11&9:++55f=++55f=	? $#s    AD66E	c                ,   \        V P                  \        4      '       d   V P                  R 4       V P                  R,          pV P                  R,          pV P
                  P                  V4       V P                  \        VP                  V4       R# )needs local targetr   r   N)
r3   r   r   skipTestr   r   
create_dirassertRaisesOSErrorr    r   r&   r'   s   &  r   test_copy_file_to_directory(CopyTestBase.test_copy_file_to_directory6   sl    d&&88MM./!!G+!!G+%%f-'6;;7r   c                    V P                   R ,          pV P                  \        VP                  V4       V P                  \        VP                  VRR7       R# )r   Ffollow_symlinksNr   r>   r?   r    r   r&   s   & r   test_copy_file_to_itself%CopyTestBase.test_copy_file_to_itself>   sC    !!G+'6;;7'6;;Nr   c                   V P                   R ,          pV P                  R,          pVP                  V4      pV P                  W24       V P	                  V P
                  P                  V4      4       V P	                  V P
                  P                  VR,          4      4       V P                  V P
                  P                  VR,          4      R4       V P	                  V P
                  P                  VR,          4      4       V P	                  V P
                  P                  VR,          R,          4      4       V P                  V P
                  P                  VR,          R,          4      R4       R# )dirCcopyCfileCthis is file C
dirDfileDthis is file D
N)	r   r   r    r!   r"   r   isdirr#   readtextr%   s   &   r   test_copy_dirCopyTestBase.test_copy_dirC   s   !!F*!!G+V$(**0089**11&72BCD++44Vg5EFHZ[**00&AB**11&6/G2KLM++44Vf_w5NOQcdr   c                   V P                   P                  '       g   V P                  R 4       V P                  R,          pV P                  R,          pV P                   P                  VR,          R4       V P                   P                  VR,          R4       VP                  V4      pV P                  W24       V P                  V P                  P                  V4      4       V P                  V P                  P                  VR,          4      4       V P                  V P                  P                  VR,          4      4       V P                  V P                  P                  VR,          4      R4       V P                  V P                  P                  VR,          4      4       V P                  V P                  P                  VR,          4      4       V P                  V P                  P                  VR,          R,          4      4       V P                  V P                  P                  VR,          R,          4      R	4       R
# )needs symlink support on sourcerK   rL   linkCrM   linkDrO   rN   rP   rQ   N)r   can_symlinkr<   r   r   create_symlinkr    r!   r"   r   rR   assertFalseislinkr#   rS   r%   s   &   r   "test_copy_dir_follow_symlinks_true/CopyTestBase.test_copy_dir_follow_symlinks_trueO   s   !!---MM;<!!F*!!G+))&7*:GD))&7*:FCV$(**0089++226G3CDE**11&72BCD++44Vg5EFHZ[++226G3CDE**00'1ABC**11&72BW2LMN++44Vg5E5OPRder   c                   V P                   P                  '       g   V P                  R 4       V P                  P                  '       g   V P                  R4       V P                  R,          pV P
                  R,          pV P                   P                  VR,          R4       V P                   P                  VR,          R4       VP                  VRR	7      pV P                  W24       V P                  V P                  P                  V4      4       V P                  V P                  P                  VR,          4      4       V P                  V P                  P                  VR,          4      R4       V P                  V P                  P                  VR,          4      4       V P                  V P                  P                  VR,          4      R4       R
# )rW   zneeds symlink support on targetrK   rL   rX   rM   rY   rO   FrD   N)r   rZ   r<   r   r   r   r[   r    r!   r"   rR   r]   readlinkr%   s   &   r   #test_copy_dir_follow_symlinks_false0CopyTestBase.test_copy_dir_follow_symlinks_falsea   sc   !!---MM;<!!---MM;<!!F*!!G+))&7*:GD))&7*:FCVU;(**0089**11&72BCD++44Vg5EFP**11&72BCD++44Vg5EFOr   c                ,   \        V P                  \        4      '       d   V P                  R 4       V P                  R,          pV P                  R,          pV P
                  P                  V4       V P                  \        VP                  V4       R# )r;   rK   rL   N)
r3   r   r   r<   r   r   r=   r>   FileExistsErrorr    r@   s   &  r   #test_copy_dir_to_existing_directory0CopyTestBase.test_copy_dir_to_existing_directoryr   sl    d&&88MM./!!F*!!G+%%f-/6;;?r   c                    V P                   R ,          pV P                  \        VP                  V4       V P                  \        VP                  VRR7       R# )rK   FrD   NrF   rG   s   & r   test_copy_dir_to_itself$CopyTestBase.test_copy_dir_to_itselfz   sC    !!F*'6;;7'6;;Nr   c                    V P                   R ,          pV P                   R ,          R,          R,          pV P                  \        VP                  V4       V P                  \        VP                  VRR7       R# )rK   rO   rL   FrD   NrF   r@   s   &  r   test_copy_dir_into_itself&CopyTestBase.test_copy_dir_into_itself   s]    !!F*!!F*V3g='6;;7'6;;Nr   c                   V P                   R ,          pV P                  R,          pV P                  P                  V4       VP	                  V4      pV P                  W2R ,          4       V P                  V P                  P                  V4      4       V P                  V P                  P                  V4      V P                  P                  V4      4       R# )r   dirAN)
r   r   r   r=   	copy_intor!   r"   r#   r   r$   )r   r&   
target_dirr(   s   &   r   test_copy_intoCopyTestBase.test_copy_into   s    !!G+%%.
%%j1!!*-g!56**11&9:++55f=++55f=	?r   c                    V P                   P                  4       pV P                  R ,          pV P                  P	                  V4       V P                  \        VP                  V4       R# )ro   N)r   with_segmentsr   r   r=   r>   
ValueErrorrp   )r   r&   rq   s   &  r   test_copy_into_empty_name&CopyTestBase.test_copy_into_empty_name   sR    !!//1%%.
%%j1*f&6&6
Cr   )r   r   N)__name__
__module____qualname____firstlineno__r   r   r)   r.   r8   rA   rH   rT   r^   rb   rf   ri   rl   rr   rw   __static_attributes____classdictcell__)__classdict__s   @r   r	   r	      s`     L
6?D?8O

ef$P"@O
O?D Dr   r	   c                   6    ] tR t^t]! ]4      t]! ]4      tRt	R# )ZipToZipPathCopyTest N)
ry   rz   r{   r|   r   r   r   r   r   r}   r   r   r   r   r      s    !/2M!/2Mr   r   )Pathc                   6    ] tR t^t]! ]4      t]! ]4      t	Rt
R# )ZipToLocalPathCopyTestr   N)ry   rz   r{   r|   r   r   r   r   r   r   r}   r   r   r   r   r      s    %o6'-r   r   c                   6    ] tR t^t]! ]4      t]! ]4      t	Rt
R# )LocalToZipPathCopyTestr   N)ry   rz   r{   r|   r   r   r   r   r   r   r}   r   r   r   r   r      s    '-%o6r   r   c                   6    ] tR t^t]! ]4      t]! ]4      tRtR# )LocalToLocalPathCopyTestr   N)	ry   rz   r{   r|   r   r   r   r   r}   r   r   r   r   r      s    '-'-r   r   __main__)r1   unittestsupportr   support.local_pathr   support.zip_pathr   r   r   r	   TestCaser   pathlibr   r   r   r   ry   mainr   r   r   <module>r      s   
    / M MFD FDR3<):): 3
 .x/@/@ .
7x/@/@ 7
.<1B1B .
 zMMO r   