§
    �Ÿjè>  ã                   óŽ  — d 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 ddlm	Z	 ddl
mZmZ ddlmZ ddlZddlmZ ddlZddlmZ dd	lmZ dd
lmZmZmZ ddlmZ ddlmZ 	 ddlZnM# e $ rE ddl!Z!dZ" e!j#        e"¦  «        ej$        e"<   	 ddlZn# e $ r ddl%Zd\  e_&        e_'        Y nw xY wY nw xY wej(        Z) ej*        ¦   «         Z+ ee+d¦  «        Z,d„ Z-d„ Z.d„ Z/d„ Z0ej1        d„ ¦   «         Z2ej3         4                    d¦  «        Z5ee5d„ ¦   «         ¦   «         Z6ee5d„ ¦   «         ¦   «         Z7ee5d„ ¦   «         ¦   «         Z8e5d„ ¦   «         Z9ee5d„ ¦   «         ¦   «         Z:ee5d„ ¦   «         ¦   «         Z;e5d„ ¦   «         Z<e5d„ ¦   «         Z=e5d„ ¦   «         Z>e5d„ ¦   «         Z?d „ Z@ej        d!„ ¦   «         ZAej        d"„ ¦   «         ZB G d#„ d$ejC        ¦  «        ZDe5d%„ ¦   «         ZEed&„ ¦   «         ZF G d'„ d(ejC        ¦  «        ZGej3         H                    d)g d*¢¦  «        d+„ ¦   «         ZIed,„ ¦   «         ZJ G d-„ d.ejC        ¦  «        ZKdS )/zTests for IPython.utils.path.pyé    N)Úcontextmanager)Úreload)ÚabspathÚjoin)Úpatch)ÚTemporaryDirectory)Úpaths)Ú
decorators)Úonlyif_unicode_pathsÚskip_if_not_win32Ú
skip_win32)Úmake_tempfile©ÚpathÚwinreg)NNÚhome_test_dirc                  ót   — t          j        t           j                             t          d¦  «        ¦  «         dS )zJSetup testenvironment for the module:

    - Adds dummy home dir tree
    ÚipythonN)ÚosÚmakedirsr   r   ÚHOME_TEST_DIR© ó    új/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/IPython/utils/tests/test_path.pyÚsetup_moduler   9   s*   € õ „K•”—’�]¨IÑ6Ô6Ñ7Ô7Ð7Ð7Ð7r   c                  ó8   — t          j        t          ¦  «         dS )zOTeardown testenvironment for the module:

    - Remove dummy home dir tree
    N)ÚshutilÚrmtreeÚTMP_TEST_DIRr   r   r   Úteardown_moduler    C   s   € õ „M•,ÑÔÐÐÐr   c                  ó¶   — t                                ¦   «         t          j        t          j        t          j        t          j	        t          j
        ¦   «         fadS )aA  Setup testenvironment for some functions that are tested
    in this module. In particular this functions stores attributes
    and other things that we need to stub in some test functions.
    This needs to be done on a function level and not module level because
    each testfunction needs a pristine environment.
    N)ÚenvÚcopyr   ÚnameÚsysÚplatformr   Úget_home_dirÚIPythonÚ__file__ÚgetcwdÚoldstuffr   r   r   Úsetup_environmentr,   N   s6   € õ —’‘
”
�BœG¥S¤\µ4Ô3DÅgÔFVÕXZÔXaÑXcÔXcÐd€H€H€Hr   c                  óx  — t           \  } t          _        t          _        t
          _        t          _        }t          j	        |¦  «         t          t
          ¦  «         t          t          ¦  «        D ]}|| vrt          |= Œt                               | ¦  «         t          t          d¦  «        r	t          `dS dS )zJRestore things that were remembered by the setup_environment function
    ÚfrozenN)r+   r   r$   r%   r&   r   r'   r(   r)   Úchdirr   Úlistr"   ÚupdateÚhasattrr.   )ÚoldenvÚold_wdÚkeys      r   Úteardown_environmentr6   X   sœ   € õ T\ÑP€V�RŒW•c”l¥DÔ$5µwÔ7GÈÝ„HˆVÑÔÐÝ
�4�L„L€Lå•C‰yŒyð ð ˆØ�fÐÐÝ�C�øÝ‡J‚JˆvÑÔÐÝ�s�HÑÔð ÝˆJˆJˆJðð r   c               #   óJ   K  — t          ¦   «          d V — t          ¦   «          d S ©N)r,   r6   r   r   r   Úenvironmentr9   h   s-   è è € åÑÔÐØ	€E€E€EÝÑÔÐÐÐr   r9   c                  óÒ   — t          j        ¦   «         } dt          _        t	          t          t          d¦  «        ¦  «        t          _        t          j        ¦   «         }|| k    sJ ‚dS )z1Testcase for py2exe logic, un-compressed lib
    TzLib/IPython/__init__.pyN)	r   r'   r%   r.   r   r   r   r(   r)   ©ÚunfrozenÚhome_dirs     r   Útest_get_home_dir_1r>   r   s[   € õ
 Ô Ñ"Ô"€HØ…C„Jõ �t¥MÐ3LÑMÔMÑNÔN…GÔåÔ Ñ"Ô"€HØ�xÒÐÐÐÐÐr   c                  óø   — t          j        ¦   «         } dt          _        t	          t          t          d¦  «        ¦  «                             ¦   «         t          _	        t          j        d¦  «        }|| k    sJ ‚dS )z.Testcase for py2exe logic, compressed lib
    TzLibrary.zip/IPython/__init__.pyN)
r   r'   r%   r.   r   r   r   Úlowerr(   r)   r;   s     r   Útest_get_home_dir_2rA   �   sg   € õ
 Ô Ñ"Ô"€HØ…C„Jå�t¥MÐ3TÑUÔUÑVÔV×\Ò\Ñ^Ô^…GÔåÔ  Ñ&Ô&€HØ�xÒÐÐÐÐÐr   c                  ó¬   — t           t          d<   t          j        d¦  «        } | t          j                             t          d         ¦  «        k    sJ ‚dS )z get_home_dir() uses $HOME if setÚHOMETN)r   r"   r   r'   r   Úrealpath)r=   s    r   Útest_get_home_dir_3rE   �   sH   € õ  …Cˆ�KÝÔ  Ñ&Ô&€Hà•r”w×'Ò'­¨F¬Ñ4Ô4Ò4Ð4Ð4Ð4Ð4Ð4r   c                  óP   — dt           v rt           d= t          j        d¦  «        } dS )z.get_home_dir() still works if $HOME is not setrC   FN)r"   r   r'   )Úhomes    r   Útest_get_home_dir_4rH   ™   s'   € ð •€}€}�#˜f˜+åÔ˜UÑ#Ô#€D€D€Dr   c                  ó°   — t          t          dz   ¦  «        t          d<   dt          _        t          j        t          j        t          j	        d¦  «         dS )z@raise HomeDirError if $HOME is specified, but not a writable dirÚgarbagerC   ÚposixTN)
r   r   r"   r   r$   ÚpytestÚraisesr   ÚHomeDirErrorr'   r   r   r   Útest_get_home_dir_5rO   ¡   sA   € õ �-¨	Ñ1Ñ2Ô2…Cˆ�Kà…B„GÝ
„M•$Ô#¥TÔ%6¸Ñ=Ô=Ð=Ð=Ð=r   c                  óØ  — dt           _        dD ]} t                               | d¦  «         Œ G d„ d¦  «        } t	          j        t          d | ¦   «         ¬¦  «        5  t	          j        t          dt          t          ¦  «        g¬¦  «        5  t          j
        ¦   «         }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |t          t          ¦  «        k    sJ ‚dS )	z~Using registry hack for 'My Documents', os=='nt'

    HOMESHARE, HOMEDRIVE, HOMEPATH, USERPROFILE and others are missing.
    Únt)rC   Ú	HOMESHAREÚ	HOMEDRIVEÚHOMEPATHÚUSERPROFILENc                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ú test_get_home_dir_8.<locals>.keyc                 ó   — d S r8   r   ©Úselfs    r   Ú	__enter__z*test_get_home_dir_8.<locals>.key.__enter__¸   ó   € ØˆDr   c                 ó   — d S r8   r   rY   s    r   ÚClosez&test_get_home_dir_8.<locals>.key.Closeº   r\   r   c                  ó   — d S r8   r   )ÚargsÚkwargss     r   Ú__exit__z)test_get_home_dir_8.<locals>.key.__exit__¼   r\   r   N)Ú__name__Ú
__module__Ú__qualname__r[   r^   rb   r   r   r   r5   rW   ·   sA   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	r   r5   ÚOpenKey)Úreturn_valueÚQueryValueEx)r   r$   r"   Úpopr   ÚobjectÚwregr   r   r   r'   )r5   r=   s     r   Útest_get_home_dir_8rl   «   ss  € ð …B„GàLð ð ˆÝ�Š��TÑÔÐÐðð ð ð ð ñ ô ð õ 
Œ•d˜I°C°C±E´EÐ	:Ñ	:Ô	:ð 'ð 'Ý	Œ•d˜N½'Å-Ñ:PÔ:PÐ9QÐ	RÑ	RÔ	Rð'ð 'åÔ$Ñ&Ô&ˆð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð •w�}Ñ-Ô-Ò-Ð-Ð-Ð-Ð-Ð-s6   Á0CÂB.Â"CÂ.B2	Â2CÂ5B2	Â6CÃC	ÃC	c                  ó¢  — t          t          ¦  «         d„ t          _        d„ t          _        dt          _        dt          _        t           	                    dd¦  «         t           	                    dd¦  «         t           	                    dd¦  «         t          j
        ¦   «         t          j                             d	d
¦  «        k    sJ ‚dS )z!test_get_xdg_dir_0, check xdg_dirc                 ó   — dS )NTr   r   s    r   ú<lambda>z$test_get_xdg_dir_0.<locals>.<lambda>È   s   €  d€ r   c                  ó   — dS )NÚ	somewherer   r   r   r   ro   z$test_get_xdg_dir_0.<locals>.<lambda>É   s   €  € r   rK   Úlinux2ÚIPYTHON_DIRNÚ
IPYTHONDIRÚXDG_CONFIG_HOMErq   ú.config)r   r   Ú_writable_dirr'   r   r$   r%   r&   r"   ri   Úget_xdg_dirr   r   r   r   Útest_get_xdg_dir_0ry   Ä   s    € õ �4�L„L€LØ*Ð*…DÔØ,Ð,…DÔØ…B„GØ…C„LÝ‡G‚GˆM˜4Ñ Ô Ð Ý‡G‚GˆL˜$ÑÔÐÝ‡G‚GÐ˜tÑ$Ô$Ð$åÔÑÔ¥¤§¢¨k¸9Ñ!EÔ!EÒEÐEÐEÐEÐEÐEr   c                  óD  — t          t          ¦  «         d„ t          _        dt          _        dt
          _        t                               dd¦  «         t                               dd¦  «         t                               dd¦  «         t          j	        ¦   «         �J ‚dS )z-test_get_xdg_dir_1, check nonexistent xdg_dirc                  ó   — t           S r8   ©r   r   r   r   ro   z$test_get_xdg_dir_1.<locals>.<lambda>×   ó   € ¥€ r   rK   rr   rs   Nrt   ru   )
r   r   r'   r   r$   r%   r&   r"   ri   rx   r   r   r   Útest_get_xdg_dir_1r~   Ó   s€   € õ �4�L„L€LØ.Ð.…DÔØ…B„GØ…C„LÝ‡G‚GˆM˜4Ñ Ô Ð Ý‡G‚GˆL˜$ÑÔÐÝ‡G‚GÐ˜tÑ$Ô$Ð$ÝÔÑÔÐ%Ð%Ð%Ð%Ð%r   c                  ó  — t          t          ¦  «         d„ t          _        dt          _        dt
          _        t                               dd¦  «         t                               dd¦  «         t                               dd¦  «         t          j         	                    t          j        ¦   «         d¦  «        } t          j         
                    | ¦  «        st          j        | ¦  «         t          j        ¦   «         | k    sJ ‚dS )	z6test_get_xdg_dir_2, check xdg_dir default to ~/.configc                  ó   — t           S r8   r|   r   r   r   ro   z$test_get_xdg_dir_2.<locals>.<lambda>ã   r}   r   rK   rr   rs   Nrt   ru   rv   )r   r   r'   r   r$   r%   r&   r"   ri   r   Úexistsr   rx   ©Úcfgdirs    r   Útest_get_xdg_dir_2r„   ß   sÉ   € õ �4�L„L€LØ.Ð.…DÔØ…B„GØ…C„LÝ‡G‚GˆM˜4Ñ Ô Ð Ý‡G‚GˆL˜$ÑÔÐÝ‡G‚GÐ˜tÑ$Ô$Ð$ÝŒ7�<Š<�Ô)Ñ+Ô+¨YÑ7Ô7€FÝŒ7�>Š>˜&Ñ!Ô!ð Ý
Œ�FÑÔÐåÔÑÔ Ò'Ð'Ð'Ð'Ð'Ð'r   c                  óÒ  — t          t          ¦  «         d„ t          _        dt          _        dt
          _        t                               dd¦  «         t                               dd¦  «         t                               dd¦  «         t          j         	                    t          j        ¦   «         d¦  «        } t          j
        | d	¬
¦  «         t          j        ¦   «         �J ‚dS )z?test_get_xdg_dir_3, check xdg_dir not used on non-posix systemsc                  ó   — t           S r8   r|   r   r   r   ro   z$test_get_xdg_dir_3.<locals>.<lambda>ó   r}   r   rQ   Úwin32rs   Nrt   ru   rv   T)Úexist_ok)r   r   r'   r   r$   r%   r&   r"   ri   r   r   rx   r‚   s    r   Útest_get_xdg_dir_3r‰   ï   s³   € õ �4�L„L€LØ.Ð.…DÔØ…B„GØ…C„LÝ‡G‚GˆM˜4Ñ Ô Ð Ý‡G‚GˆL˜$ÑÔÐÝ‡G‚GÐ˜tÑ$Ô$Ð$ÝŒ7�<Š<�Ô)Ñ+Ô+¨YÑ7Ô7€FÝ„K� Ð&Ñ&Ô&Ð&åÔÑÔÐ%Ð%Ð%Ð%Ð%r   c                  ó†   — t          j        ¦   «         } t          j        ¦   «         }t	          j        | j        |¦  «        }dS )zVarious tests for filefindN)ÚtempfileÚNamedTemporaryFiler	   Úget_ipython_dirr   Úfilefindr$   )ÚfÚalt_dirsÚts      r   Útest_filefindr’   þ   s5   € åÔ#Ñ%Ô%€AåÔ$Ñ&Ô&€HÝŒ�a”f˜hÑ'Ô'€A€A€Ar   c                  ó¢  — t          ¦   «         5 } t          j                             t          j        | ¦  «        d¦  «        }t          j        |¦  «         t          j                             | d¦  «        }t          j        |¦  «        }|                     ¦   «         |                     ¦   «         k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nzthis is my long path namezTHISIS~1)r   r   r   r   Úget_long_path_namer   r@   )ÚtmpdirÚ	long_pathÚ
short_pathÚevaluated_paths       r   Útest_get_long_path_name_win32r™     só   € å	Ñ	Ô	ð 
; õ ”G—L’L¥Ô!8¸Ñ!@Ô!@ÐB]Ñ^Ô^ˆ	Ý
Œ�IÑÔÐõ ”W—\’\ &¨*Ñ5Ô5ˆ
ÝÔ0°Ñ<Ô<ˆØ×#Ò#Ñ%Ô%¨¯ªÑ):Ô):Ò:Ð:Ð:Ð:Ð:ð
;ð 
;ð 
;ñ 
;ô 
;ð 
;ð 
;ð 
;ð 
;ð 
;ð 
;ð 
;øøøð 
;ð 
;ð 
;ð 
;ð 
;ð 
;s   �B'CÃCÃCc                  ó>   — t          j        d¦  «        } | dk    sJ ‚d S )Nz
/usr/local)r   r”   )Úps    r   Útest_get_long_path_namerœ     s)   € åÔ Ñ-Ô-€AØ�ÒÐÐÐÐÐr   c                   ó>   — e Zd Zej        ed„ ¦   «         ¦   «         ZdS )ÚTestRaiseDeprecationc                 óö  — t          j        ¦   «         }dt          _        t                               dd ¦  «         t                               dd ¦  «         t                               dd ¦  «         |t          d<   t          j                             |d¦  «        }t          j        |d¦  «         	 t          t          j                             |d¦  «        d	d
¬¦  «         
                    ¦   «          t          j        d¦  «         n# t          $ r Y nw xY w|                      t          d¦  «        5  t!          j        ¦   «         }d d d ¦  «         n# 1 swxY w Y   t                               dd ¦  «         d S )NrK   rs   rt   ru   rC   z.ipythonim  Ú_foo_Úwúutf-8©Úencodingz0I can't create directories that I can't write tozis not a writable location)r‹   Úmkdtempr   r$   r"   ri   r   r   ÚmkdirÚopenÚcloserL   ÚskipÚIOErrorÚassertWarnsRegexÚUserWarningr	   r�   )rZ   r•   Úipdirs      r   Útest_not_writable_ipdirz,TestRaiseDeprecation.test_not_writable_ipdir  s‹  € õ Ô!Ñ#Ô#ˆØ�ŒÝ�Š�˜tÑ$Ô$Ð$Ý�Š�˜dÑ#Ô#Ð#Ý�ŠÐ! 4Ñ(Ô(Ð(Ø�ˆF‰Ý”—’˜V ZÑ0Ô0ˆÝ
Œ�˜ÑÔÐð	LÝ•”—’˜e WÑ-Ô-¨s¸WÐEÑEÔE×KÒKÑMÔMÐMõ ŒKÐJÑKÔKÐKÐKøõ ð 	ð 	ð 	ØˆDð	øøøð ×"Ò"¥;Ð0LÑMÔMð 	,ð 	,ÝÔ)Ñ+Ô+ˆEð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,å�Š�˜tÑ$Ô$Ð$Ð$Ð$s%   Â1AD Ä
DÄDÄ3EÅEÅEN)rc   rd   re   Údecr   Úwith_environmentr®   r   r   r   rž   rž     s:   € € € € € à„^Øð%ð %ñ Ôñ „^ð%ð %ð %r   rž   c                  ó   — t          j        t          ¦  «         t          d¦  «        5  t	          j        d¦  «        dk    sJ ‚t	          j        d¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          d¦  «        5  t	          j        d¦  «        dk    sJ ‚t          j        t          t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          t          j        d¦  «         t          j        t          t          j        d¦  «         d} t          | ¦  «        5  t	          j        d¦  «        | k    sJ ‚t	          j        d¦  «        | k    sJ ‚t          j        t          t          j        d¦  «         t          j        t          t          j        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzfoo.pyÚfoozfoo with spaces.pyzfoo with spacesz"foo with spaces.py"z'foo with spaces.py')	r   r/   r   r   r   Úget_py_filenamerL   rM   rª   )Útrue_fns    r   Útest_get_py_filenamerµ   6  sm  € å„H�\ÑÔÐÝ	�xÑ	 Ô	 ð 7ð 7ÝÔ# HÑ-Ô-°Ò9Ð9Ð9Ð9ÝÔ# EÑ*Ô*¨hÒ6Ð6Ð6Ð6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ 
�uÑ	Ô	ð ?ð ?ÝÔ# EÑ*Ô*¨eÒ3Ð3Ð3Ð3ÝŒ•g�tÔ3°XÑ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?õ „M•'�4Ô/°Ñ7Ô7Ð7Ý
„M•'�4Ô/°Ñ:Ô:Ð:Ø"€GÝ	�wÑ	Ô	ð Mð MÝÔ#Ð$5Ñ6Ô6¸'ÒAÐAÐAÐAÝÔ#Ð$8Ñ9Ô9¸WÒDÐDÐDÐDÝŒ•g�tÔ3Ð5KÑLÔLÐLÝŒ•g�tÔ3Ð5KÑLÔLÐLð	Mð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms7   ©5A+Á+A/Á2A/ÂA CÃCÃCÄ7A?GÇGÇ
Gc                  ó~   — 	 t          j        d¦  «         dS # t          $ r} t          | ¦  «         Y d} ~ dS d} ~ ww xY w)zÂWhen a file doesn't exist, the exception raised should be safe to call
    str() on - i.e. in Python 2 it must only have ASCII characters.

    https://github.com/ipython/ipython/issues/875
    u
   fooÃ©Ã¨.pyN)r   r³   rª   Ústr)Úexs    r   Útest_unicode_in_filenamer¹   H  sT   € ðåÔ˜\Ñ*Ô*Ð*Ð*Ð*øÝð ð ð ÝˆB‰Œˆˆˆˆˆˆˆøøøøðøøøs   ‚ ˜
<¢7·<c                   ó˜   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zeed„ ¦   «         ¦   «         Zd„ Zd„ Z	e
d„ ¦   «         Zed„ ¦   «         ZdS )	ÚTestShellGlobc                 ó„  — g d¢| _         g d¢| _        | j         | j        z   | _        t          ¦   «         | _        | j        j        }|                      ¦   «         5  | j        D ]D}t          t          j	         
                    ||¦  «        dd¬¦  «                             ¦   «          ŒE	 d d d ¦  «         d S # 1 swxY w Y   d S )N)Úa0Úa1Úa2)Ú0bÚ1bÚ2br¡   r¢   r£   )Úfilenames_start_with_aÚfilenames_end_with_bÚ	filenamesr   Útempdirr$   Ú
in_tempdirr§   r   r   r   r¨   )ÚclsÚtdÚfnames      r   Ú
setUpClasszTestShellGlob.setUpClassX  s  € à%7Ð%7Ð%7ˆÔ"Ø#5Ð#5Ð#5ˆÔ ØÔ2°SÔ5MÑMˆŒÝ(Ñ*Ô*ˆŒØŒ[Ôˆà�^Š^ÑÔð 	Mð 	Màœð Mð M�Ý•R”W—\’\ " eÑ,Ô,¨c¸GÐDÑDÔD×JÒJÑLÔLÐLÐLðMð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mð 	Mð 	Ms   ÁAB5Â5B9Â<B9c                 ó8   — | j                              ¦   «          d S r8   ©rÆ   Úcleanup)rÈ   s    r   ÚtearDownClasszTestShellGlob.tearDownClasse  s   € àŒ×ÒÑÔÐÐÐr   c              #   óÐ   K  — t          j        ¦   «         }	 t          j        | j        j        ¦  «         d V — t          j        |¦  «         d S # t          j        |¦  «         w xY wr8   )r   r*   r/   rÆ   r$   )rÈ   Úsaves     r   rÇ   zTestShellGlob.in_tempdiri  sY   è è € õ Œy‰{Œ{ˆð	ÝŒH�S”[Ô%Ñ&Ô&Ð&ØˆEˆEˆEåŒH�T‰NŒNˆNˆNˆNø�BŒH�T‰NŒNˆNˆNøøøs   —"A ÁA%c                 óÊ   — |                       ¦   «         5  t          t          j        |¦  «        ¦  «        t          |¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S r8   )rÇ   Úsortedr   Ú	shellglob©rZ   ÚpatternsÚmatchess      r   Úcheck_matchzTestShellGlob.check_matchs  s¶   € Ø�_Š_ÑÔð 	Gð 	Gå�$œ.¨Ñ2Ô2Ñ3Ô3µv¸g±´ÒFÐFÐFÐFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   •5AÁAÁAc                 ó‚   — dg| j         fdg| j        fdgdgfg d¢| j         | j        z   | j        z   dgz   fdg| j        fgS )NÚ*úa*ú*c)rÚ   rÛ   z*brÜ   úa[012])rÅ   rÃ   rÄ   rY   s    r   Úcommon_caseszTestShellGlob.common_casesx  sv   € àˆU�D”NÐ#ØˆV�TÔ0Ð1ØˆV�d�VÐØ$Ð$Ð$ d¤nØ(,Ô(Cñ'Dà(,Ô(Añ'Bð *.¨ñ'/ð 0ð ˆZ˜Ô4Ð5ð	
ð 		
r   c                 óœ   — |                       ¦   «         dgdgfddgdg| j        z   fdgdgfgz   D ]\  }}|                      ||¦  «         Œd S )Nú\*rÚ   úa\*rÛ   úa\[012]rÝ   ©rÞ   rÃ   rØ   rÕ   s      r   Útest_match_posixzTestShellGlob.test_match_posix„  s   € à#'×#4Ò#4Ñ#6Ô#6Ø�˜3˜%Ð Ø˜$� $ ¨$Ô*EÑ!EÐFØ� ˜zÐ*ð:ñ $ð 	0ð 	0ÑˆX�wð
 ×Ò˜X wÑ/Ô/Ð/Ð/ð	0ð 	0r   c                 ó’   — |                       ¦   «         ddgdg| j        z   fdgdgfgz   D ]\  }}|                      ||¦  «         Œd S )Nrá   rÛ   râ   rã   rÕ   s      r   Útest_match_windowsz TestShellGlob.test_match_windows�  su   € à#'×#4Ò#4Ñ#6Ô#6ð ˜$� & ¨DÔ,GÑ!GÐHØ� 
˜|Ð,ð:ñ $ð 	0ð 	0ÑˆX�wð ×Ò˜X wÑ/Ô/Ð/Ð/ð	0ð 	0r   N)rc   rd   re   ÚclassmethodrË   rÏ   r   rÇ   rØ   rÞ   r   rä   r   ræ   r   r   r   r»   r»   V  sÈ   € € € € € àð
Mð 
Mñ „[ð
Mð ðð ñ „[ðð Øðð ñ „^ñ „[ððGð Gð Gð


ð 

ð 

ð ð0ð 0ñ „Zð0ð ð0ð 0ñ Ôð0ð 0ð 0r   r»   zglobstr, unescaped_globstr))z
\*\[\!\]\?z*[!]?)z\\*rà   )z\\\*rà   )z\\aú\a)rè   rè   c                 ó:   — t          j        | ¦  «        |k    sJ ‚d S r8   )r   Úunescape_glob)ÚglobstrÚunescaped_globstrs     r   Útest_unescape_globrí   ™  s'   € õ Ô˜gÑ&Ô&Ð*;Ò;Ð;Ð;Ð;Ð;Ð;r   c                  ó8  — t          ¦   «         5 } t          j                             | d¦  «        }t          j        |¦  «         t          j                             |¦  «        sJ ‚t          j        |¦  «         t          j                             | d¦  «        }t          |dd¬¦  «                             ¦   «          t          j	        t          ¦  «        5  t          j        |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nu   âˆ‚iru   Æ’iler¡   r¢   r£   )r   r   r   r   Úensure_dir_existsÚisdirr§   r¨   rL   rM   rª   )rÉ   Údr�   s      r   Útest_ensure_dir_existsrò   §  sl  € å	Ñ	Ô	ð & ÝŒG�LŠL˜˜WÑ%Ô%ˆÝÔ˜qÑ!Ô!Ð!ÝŒw�}Š}˜QÑÔÐÐÐÝÔ˜qÑ!Ô!Ð!ÝŒG�LŠL˜˜WÑ%Ô%ˆÝˆQ�˜gÐ&Ñ&Ô&×,Ò,Ñ.Ô.Ð.ÝŒ]�7Ñ#Ô#ð 	&ð 	&ÝÔ" 1Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s6   �CDÃC7Ã+DÃ7C;	Ã;DÃ>C;	Ã?DÄDÄDc                   ó¦   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	d„ ¦   «         Z
e	d„ ¦   «         Ze	d	„ ¦   «         Ze	d
„ ¦   «         Zed„ ¦   «         Zd„ ZdS )ÚTestLinkOrCopyc                 óê   — t          ¦   «         | _        |                      d¦  «        | _        t	          | j        dd¬¦  «        5 }|                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚsrcr¡   r¢   r£   zHello, world!)r   rÆ   Údströ   r§   Úwrite)rZ   r�   s     r   ÚsetUpzTestLinkOrCopy.setUp´  sª   € Ý)Ñ+Ô+ˆŒØ—8’8˜E‘?”?ˆŒÝ�$”(˜C¨'Ð2Ñ2Ô2ð 	%°aØ�GŠG�OÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   ÁA(Á(A,Á/A,c                 ó8   — | j                              ¦   «          d S r8   rÍ   rY   s    r   ÚtearDownzTestLinkOrCopy.tearDownº  s   € ØŒ×ÒÑÔÐÐÐr   c                 óD   — t          j        j        | j        j        g|¢R Ž S r8   )r   r   r   rÆ   r$   )rZ   r`   s     r   r÷   zTestLinkOrCopy.dst½  s!   € ÝŒwŒ|˜DœLÔ-Ð5°Ð5Ð5Ð5Ð5r   c                 óŽ   — t          j        |¦  «        j        t          j        |¦  «        j        k    sJ |›d|›d�¦   «         ‚d S )Nú and z do reference the same indoes©r   ÚstatÚst_ino©rZ   ÚaÚbs      r   Úassert_inode_not_equalz%TestLinkOrCopy.assert_inode_not_equalÀ  sG   € åŒG�A‰JŒJÔ¥¤¨¡¤Ô!2Ò2Ð2Ð2Ø78°q°q¸!¸!¸!Ð<ñ 3Ô2Ð2Ð2Ð2r   c                 óŽ   — t          j        |¦  «        j        t          j        |¦  «        j        k    sJ |›d|›d�¦   «         ‚d S )Nrþ   z! do not reference the same indoesrÿ   r  s      r   Úassert_inode_equalz!TestLinkOrCopy.assert_inode_equalÅ  sG   € åŒG�A‰JŒJÔ¥¤¨¡¤Ô!2Ò2Ð2Ð2Ø;<¸1¸1¸a¸a¸aÐ@ñ 3Ô2Ð2Ð2Ð2r   c                 ó  — t          |d¦  «        5 }t          |d¦  «        5 }|                     ¦   «         |                     ¦   «         k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NÚrb)r§   Úread)rZ   r  r  Úa_fÚb_fs        r   Úassert_content_equalz#TestLinkOrCopy.assert_content_equalÊ  sõ   € Ý�!�T‰]Œ]ð 	0˜cÝ�a˜‘”ð 0 #Ø—x’x‘z”z S§X¢X¡Z¤ZÒ/Ð/Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0s4   ‘A4¢-AÁA4ÁA 	Á A4Á#A 	Á$A4Á4A8Á;A8c                 óš   — |                       d¦  «        }t          j        | j        |¦  «         |                      | j        |¦  «         d S ©NÚtarget)r÷   r   Úlink_or_copyrö   r  ©rZ   r÷   s     r   Útest_link_successfulz#TestLinkOrCopy.test_link_successfulÏ  sF   € à�hŠh�xÑ Ô ˆÝÔ˜$œ( CÑ(Ô(Ð(Ø×Ò ¤¨#Ñ.Ô.Ð.Ð.Ð.r   c                 ó2  — |                       d¦  «        }t          j        |¦  «         t          j        | j        |¦  «         |                       dt          j                             | j        ¦  «        ¦  «        }|                      | j        |¦  «         d S )NÚsome_dir)r÷   r   r¦   r   r  rö   Úbasenamer  )rZ   r÷   Úexpected_dsts      r   Útest_link_into_dirz!TestLinkOrCopy.test_link_into_dirÕ  sx   € à�hŠh�zÑ"Ô"ˆÝ
Œ�‰ŒˆÝÔ˜$œ( CÑ(Ô(Ð(Ø—x’x 
­B¬G×,<Ò,<¸T¼XÑ,FÔ,FÑGÔGˆØ×Ò ¤¨,Ñ7Ô7Ð7Ð7Ð7r   c                 óâ   — |                       d¦  «        }t          |dd¬¦  «                             ¦   «          t          j        | j        |¦  «         |                      | j        |¦  «         d S )Nr  r¡   r¢   r£   )r÷   r§   r¨   r   r  rö   r  r  s     r   Útest_target_existsz!TestLinkOrCopy.test_target_existsÝ  sg   € à�hŠh�xÑ Ô ˆÝˆS�# Ð(Ñ(Ô(×.Ò.Ñ0Ô0Ð0ÝÔ˜$œ( CÑ(Ô(Ð(Ø×Ò ¤¨#Ñ.Ô.Ð.Ð.Ð.r   c                 ó2  — t           j        }	 t           `|                      d¦  «        }t          j        | j        |¦  «         |                      | j        |¦  «         |                      | j        |¦  «         |t           _        d S # |t           _        w xY wr  )r   Úlinkr÷   r   r  rö   r  r  )rZ   Ú	real_linkr÷   s      r   Útest_no_linkzTestLinkOrCopy.test_no_linkä  s‡   € å”Gˆ	ð	 Ý�Ø—(’(˜8Ñ$Ô$ˆCÝÔ˜dœh¨Ñ,Ô,Ð,Ø×%Ò% d¤h°Ñ4Ô4Ð4Ø×'Ò'¨¬°#Ñ6Ô6Ð6à�BŒGˆGˆGø�i�BŒGÐÐÐÐs   ŽA,B ÂBc                 óš   — |                       d¦  «        }t          j        | j        |¦  «         |                      | j        |¦  «         d S r  )r÷   r   r  rö   r  r  s     r   Útest_windowszTestLinkOrCopy.test_windowsð  sF   € à�hŠh�xÑ Ô ˆÝÔ˜$œ( CÑ(Ô(Ð(Ø×!Ò! $¤(¨CÑ0Ô0Ð0Ð0Ð0r   c                 ó4  — |                       d¦  «        }t          j        | j        |¦  «         t          j        | j        |¦  «         |                      | j        |¦  «         t          t          j        | j        j	        ¦  «        ¦  «        ddgk    sJ ‚d S )Nr  rö   )
r÷   r   r  rö   r  rÓ   r   ÚlistdirrÆ   r$   r  s     r   Útest_link_twicezTestLinkOrCopy.test_link_twiceö  sŠ   € ð �hŠh�xÑ Ô ˆÝÔ˜$œ( CÑ(Ô(Ð(ÝÔ˜$œ( CÑ(Ô(Ð(Ø×Ò ¤¨#Ñ.Ô.Ð.Ý•b”j ¤Ô!2Ñ3Ô3Ñ4Ô4¸ÀÐ8IÒIÐIÐIÐIÐIÐIr   N)rc   rd   re   rù   rû   r÷   r  r  r  r   r  r  r  r  r   r   r#  r   r   r   rô   rô   ³  s  € € € € € ð%ð %ð %ðð ð ð6ð 6ð 6ð=ð =ð =ð
Að Að Að
0ð 0ð 0ð
 ð/ð /ñ „Zð/ð
 ð8ð 8ñ „Zð8ð ð/ð /ñ „Zð/ð ð	 ð 	 ñ „Zð	 ð ð1ð 1ñ Ôð1ð
Jð Jð Jð Jð Jr   rô   )LÚ__doc__r   r   r%   r‹   ÚunittestÚ
contextlibr   Ú	importlibr   Úos.pathr   r   Úunittest.mockr   rL   r   r(   r	   ÚIPython.testingr
   r¯   ÚIPython.testing.decoratorsr   r   r   ÚIPython.testing.toolsr   ÚIPython.utilsr   r   rk   ÚImportErrorÚtypesÚwr_nameÚ
ModuleTypeÚmodulesÚ_winregrf   rh   Úenvironr"   r¥   r   r   r   r    r,   r6   Úfixturer9   ÚmarkÚusefixturesr°   r>   rA   rE   rH   rO   rl   ry   r~   r„   r‰   r’   r™   rœ   ÚTestCaserž   rµ   r¹   r»   Úparametrizerí   rò   rô   r   r   r   ú<module>r:     sR  ðà %Ð %ð
 
€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð
 0Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð ð:ØÐÐÐÐøØð :ð :ð :à€L€L€LØ€GØ+˜5Ô+¨GÑ4Ô4€C„K�Ñð:ØÐÐÐÐøØð :ð :ð :ØÐÐÐð .:Ñ*ˆŒ�tÔ(Ð(Ð(ð	:øøøøøð:øøøð  	„j€ØˆxÔÑ!Ô!€Ø��\ ?Ñ3Ô3€ð
8ð 8ð 8ð ð  ð  ðeð eð eðð ð ð  „ðð ñ „ðð ”;×*Ò*¨=Ñ9Ô9Ð ð Øð
 ð 
 ñ Ôñ Ôð
 ð Øð	 ð 	 ñ Ôñ Ôð	 ð Øð5ð 5ñ Ôñ „ð5ð ð$ð $ñ Ôð$ð Øð>ð >ñ Ôñ „ð>ð Øð.ð .ñ Ôñ Ôð.ð. ðFð Fñ ÔðFð ð	&ð 	&ñ Ôð	&ð ð(ð (ñ Ôð(ð ð&ð &ñ Ôð&ð(ð (ð (ð Ôð;ð ;ñ Ôð;ð „ðð ñ „ðð
%ð %ð %ð %ð %˜8Ô,ñ %ô %ð %ð4 ðMð Mñ ÔðMð" ð
ð 
ñ Ôð
ð@0ð @0ð @0ð @0ð @0�HÔ%ñ @0ô @0ð @0ðF „×ÒØ ðð ð ñ	ô 	ð<ð <ñ	ô 	ð<ð ð	&ð 	&ñ Ôð	&ðJJð JJð JJð JJð JJ�XÔ&ñ JJô JJð JJð JJð JJs6   Á"A' Á'#B1ÂBÂB1ÂB+Â(B1Â*B+Â+B1Â0B1