+
    Bi                     Z   R t ^ 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# )zF
Tests for copying from pathlib.types._ReadablePath to _WritablePath.
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)
r2   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 sourcerJ   rK   linkCrL   linkDrN   rM   rO   rP   N)r   can_symlinkr;   r   r   create_symlinkr   r    r!   r   rQ   assertFalseislinkr"   rR   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
# )rV   zneeds symlink support on targetrJ   rK   rW   rL   rX   rN   FrC   N)r   rY   r;   r   r   r   rZ   r   r    r!   rQ   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:   rJ   rK   N)
r2   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# )rJ   FrC   NrE   rF   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# )rJ   rN   rK   FrC   NrE   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# )rn   N)r   with_segmentsr   r   r<   r=   
ValueErrorro   )r   r%   rp   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-   r7   r@   rG   rS   r]   ra   re   rh   rk   rq   rv   __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)
rx   ry   rz   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)rx   ry   rz   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)rx   ry   rz   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)	rx   ry   rz   r{   r   r   r   r   r|   r   r   r   r   r      s    '-'-r   r   __main__)__doc__r0   unittestsupportr   support.local_pathr   support.zip_pathr   r   r   r   TestCaser   pathlibr   r   r   r   rx   mainr   r   r   <module>r      s       / M MFD FDR3<):): 3
 .x/@/@ .
7x/@/@ 7
.<1B1B .
 zMMO r   