Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_glob.cpython-311.opt-1.pyc
�

�Ke�?����ddlZddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
Gd�dej��ZeGd�dej����Z
edkrej��dSdS)�N)�TESTFN�skip_unless_symlink�can_symlink�create_empty_file�
change_cwdc�H�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zed���Zed���Zejejdkd��d���Zd�Zd�Zejejdkd��d���Zd�Zd�Zd�Zd�Z d�Z!dS)�	GlobTestsNc�t�tj�tjj|jg|�R���S�N)�os�path�normpath�join�tempdir)�self�partss  �8/usr/local/apps/python3/lib/python3.11/test/test_glob.py�normzGlobTests.norms.���w������T�\� B�E� B� B� B�C�C�C�c� ���fd�|D��S)Nc�H��g|]}tjj�jg|�R���S��rr
rr)�.0rrs  �r�
<listcomp>z#GlobTests.joins.<locals>.<listcomp>s/���G�G�G�u����T�\�2�E�2�2�2�G�G�Grr)r�tupless` r�joinszGlobTests.joinss���G�G�G�G��G�G�G�Grc���|j|�}tj�|��\}}tj�|��stj|��t
|��dSr)rrr
�split�exists�makedirsr)rr�filename�base�files     r�mktempzGlobTests.mktempsa���4�9�e�$���W�]�]�8�,�,�
��d��w�~�~�d�#�#�	��K������(�#�#�#�#�#rc�F�tdz|_|�dd��|�dd��|�dd��|�dd	��|�dd
��|�dd��|�d
��|�d��|�ddd��|�dddd��t��r�t	j|�d��|�d����t	jd|�d����t	jtj�dd��|�d����tj	tj
htjkrPtjtj
vr8t	j	|jtjtjz��|_dSd|_dS)N�_dir�a�D�aab�F�.aa�G�.bb�H�.J�aaa�zzzF�ZZZ�EF�bcd�efg�ha�broken�sym1�sym2�sym3)rrr%rr�symlinkrr
r�open�stat�supports_dir_fd�scandir�supports_fd�O_RDONLY�O_DIRECTORY�dir_fd�rs r�setUpzGlobTests.setUps�����������C��������E�3�������E�3�������E�3�������E�4� � � ����E�6�"�"�"����E�������D�������C���%�%�%����C���t�,�,�,��=�=�	D��J�t�y�y��*�*�D�I�I�f�,=�,=�>�>�>��J�x����6�!2�!2�3�3�3��J�r�w�|�|�C��/�/����6�1B�1B�C�C�C��G�R�W���!3�3�3��
�b�n�8T�8T��'�$�,���b�n�0L�M�M�D�K�K�K��D�K�K�Krc�x�|j�tj|j��tj|j��dSr)rDr�close�shutil�rmtreerrEs r�tearDownzGlobTests.tearDown0s4���;�"��H�T�[�!�!�!��
�d�l�#�#�#�#�#rc����t|��dkr	|d}ntjj|�}tj��j|��}tj|fi|��}tj|fi|��}��tj|fi|��|��d�|D��}��tjtj|��fi|��|����tjtj|��fi|��|��t�j��5tj|fi|��}|D]5}��
tj�|��|���6|dks|dtjzkr|dd�}	n|}	���fd�|D��|	����tj|fi|��|��tj|��}
d�|D��}��tj|
fi|��|����tj|
fi|��|��ddd��n#1swxYwY��tj|fd�ji|��|����tj|fd�ji|��|��tj�j��}��tj|
fd|i|��|����tj|
fd|i|��|���j
����tj|fd�j
i|��|����tj|fd�j
i|��|����tj|
fd�j
i|��|����tj|
fd�j
i|��|��|S)	N�rc�6�g|]}tj|����Sr�r�fsencode�r�xs  rrz"GlobTests.glob.<locals>.<listcomp>?s ��,�,�,�1���A���,�,�,r�**c�Z��g|]'}tj��j|����(Srr)rrRrs  �rrz"GlobTests.glob.<locals>.<listcomp>Ks+���"O�"O�"O�Q�2�7�<�<���a�#@�#@�"O�"O�"Orc�6�g|]}tj|����SrrOrQs  rrz"GlobTests.glob.<locals>.<listcomp>Os ��2�2�2��R�[��^�^�2�2�2r�root_dirrD)�lenrr
rr�glob�iglob�assertCountEqualrPr�assertFalse�isabs�seprD)
rr�kwargs�pattern�p�res�res2�bresrR�expected�bpattern�bres2�btempdirs
`            rrXzGlobTests.glob5s�����u�:�:��?�?��A�h�G�G��g�l�E�*�G��G�L�L���w�/�/���i��$�$�V�$�$���z�!�&�&�v�&�&�����d�j��5�5�f�5�5�s�;�;�;�,�,��,�,�,�����d�i���A���A�A�&�A�A�4�H�H�H����d�j���Q���B�B�6�B�B�D�I�I�I�
���
%�
%�	I�	I��9�W�/�/��/�/�D��
6�
6��� � �����q�!1�!1�1�5�5�5�5��$���'�T�B�F�]�":�":��q�r�r�7������!�!�"O�"O�"O�"O�$�"O�"O�"O�"*�
,�
,�
,��!�!�$�*�W�"?�"?��"?�"?��F�F�F��{�7�+�+�H�2�2�T�2�2�2�E��!�!�$�)�H�"?�"?��"?�"?��G�G�G��!�!�$�*�X�"@�"@��"@�"@�%�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I� 	
���d�i��Q�Q�$�,�Q�&�Q�Q�SW�X�X�X����d�j��R�R�4�<�R�6�R�R�TX�Y�Y�Y��;�t�|�,�,������I�h�<�<��<�V�<�<�e�	E�	E�	E�����J�x�=�=�(�=�f�=�=�u�	F�	F�	F��;�"��!�!��	�'�@�@�$�+�@��@�@�$�
H�
H�
H��!�!��
�7�A�A�4�;�A�&�A�A�4�
I�
I�
I��!�!��	�(�A�A�4�;�A�&�A�A�5�
J�
J�
J��!�!��
�8�B�B�D�K�B�6�B�B�E�
K�
K�
K��
s�0D%I!�!I%�(I%c��t|��}t|��}|�t|��t|����|�t|��t|����dSr)�list�assertEqual�set�sorted)r�l1�l2s   r�assertSequencesEqual_noorderz&GlobTests.assertSequencesEqual_noordergsb��
�"�X�X��
�"�X�X������R���#�b�'�'�*�*�*��������V�B�Z�Z�0�0�0�0�0rc��|j}||�d��|�d��g��||�dd��|�dd��g��||�d��|�d��g��||�d��g��tjd��}|�d�|D��th��tjt
j�t
jd����}|�d�|D��th��tjd��}|�d	�|D��th��tjt
j�tj
t
j��d����}|�d
�|D��th��dS)Nr(r)r*�zymurgy�*c�,�h|]}t|����Sr��type�r�rs  r�	<setcomp>z.GlobTests.test_glob_literal.<locals>.<setcomp>u���/�/�/�a�$�q�'�'�/�/�/rc�,�h|]}t|����Srrtrvs  rrxz.GlobTests.test_glob_literal.<locals>.<setcomp>wryr�*c�,�h|]}t|����Srrtrvs  rrxz.GlobTests.test_glob_literal.<locals>.<setcomp>zryrc�,�h|]}t|����Srrtrvs  rrxz.GlobTests.test_glob_literal.<locals>.<setcomp>|ryr)rorXrrj�strrr
r�curdir�bytesrP)r�eqras   r�test_glob_literalzGlobTests.test_glob_literalms���
�
.��
��4�9�9�S�>�>�D�I�I�c�N�N�+�,�,�,�
��4�9�9�S�#������3��!4�!4� 5�6�6�6�
��4�9�9�U���d�i�i��.�.�/�0�0�0�
��4�9�9�Y����$�$�$��i��n�n�����/�/�3�/�/�/�#��7�7�7��i�����R�Y��4�4�5�5�����/�/�3�/�/�/�#��7�7�7��i��o�o�����/�/�3�/�/�/�%��9�9�9��i�����R�[���%;�%;�T�B�B�C�C�����/�/�3�/�/�/�%��9�9�9�9�9rc�B�|�tjd��g��|�tjd��g��|�tjd|j���g��|�tjdtj|j�����g��|�tjd|j���g��|�tjd|j���g��dS)N�r)rV)rD)rjrXrrrPrDrEs r�test_glob_empty_patternz!GlobTests.test_glob_empty_pattern~s��������2����+�+�+������3����,�,�,������2���=�=�=�r�B�B�B������3���T�\�1J�1J�K�K�K�R�P�P�P������2�d�k�:�:�:�B�?�?�?������3�t�{�;�;�;�R�@�@�@�@�@rc��|j}||�d��t|jgd�����||�d��t|jddg����||�d��t|jddg����||�d	��t|jdg����||�d
��t|jddg����||�d��t|jddg����||�d
��g��dS)Nza*)r(r*r1�*ar(r1z.*r,r.�?aazaa?r*zaa[ab]z*q)rorX�mapr�rr�s  r�test_glob_one_directoryz!GlobTests.test_glob_one_directory�s;��
�
.��
��4�9�9�T�?�?�C��	�+>�+>�+>�?�?�@�@�@�
��4�9�9�T�?�?�C��	�C��<�8�8�9�9�9�
��4�9�9�T�?�?�C��	�E�5�>�:�:�;�;�;�
��4�9�9�U���S���U�G�4�4�5�5�5�
��4�9�9�U���S���U�E�N�;�;�<�<�<�
��4�9�9�X����D�I��u�~� >� >�?�?�?�
��4�9�9�T�?�?�B�����rc	���|j}tj�d��dkr8||�ddd��|�ddd��g��nM||�ddd��|�ddd��|�ddd��g��||�ddd��|�ddd��g��dS)N�abCDr(r5zE*r4r6z*g)rorr
�normcaserXrr�s  r�test_glob_nested_directoryz$GlobTests.test_glob_nested_directory�s���
�
.��
�7���F�#�#�v�-�-��B�t�y�y��e�T�*�*�T�Y�Y�s�E�4�-H�-H�,I�J�J�J�J�
�B�t�y�y��e�T�*�*�T�Y�Y�s�E�4�-H�-H�-1�Y�Y�s�E�5�-I�-I�-K�
L�
L�
L�
��4�9�9�S�%��&�&����3��u�)E�)E�(F�G�G�G�G�Grc	���|j}||�dd��|�dd��g��||�dd��g��||�dddd��|�dddd��g��||�dd	��|�d
d��|�dd
��g��dS)Nrrr)r(r�r5r6r7z?a?�*Fr1r2r*r+�rorXrr�s  r�test_glob_directory_namesz#GlobTests.test_glob_directory_names�s���
�
.��
��4�9�9�S�#������3��!4�!4� 5�6�6�6�
��4�9�9�S�$����$�$�$�
��4�9�9�S�#�s�D�)�)��I�I�c�5�%��.�.�/�	1�	1�	1�
��4�9�9�U�D�!�!�D�I�I�e�V�$<�$<�$(�I�I�e�S�$9�$9�$;�	<�	<�	<�	<�	<rc��tj|�d��tjz��}|�|g��tj|�d��tjz��}|�|g��tj|�d��tjz��}|�t|��d��|�t|��|�d��|�d��h|�d��tjz|�d��tjzhg��dS�NzZ*Zr3zaa*�r1r*)rXrrr]rjrW�assertInrk�rras  r�'test_glob_directory_with_trailing_slashz1GlobTests.test_glob_directory_with_trailing_slash�s-���i��	�	�%�(�(�2�6�1�2�2������b�!�!�!��i��	�	�%�(�(�2�6�1�2�2������b�!�!�!��i��	�	�%�(�(�2�6�1�2�2������S���1�%�%�%��
�
�c�#�h�h��y�y��'�'����5�)9�)9�:��y�y��'�'�"�&�0�$�)�)�E�2B�2B�R�V�2K�L�!�	�	�	�	�	rc
��tjtj|�d��tjz����}|�|g��tjtj|�d��tjz����}|�|g��tjtj|�d��tjz����}|�t
|��d��|�t|��tj|�d����tj|�d����htj|�d��tjz��tj|�d��tjz��hg��dSr�)	rXrrPrr]rjrWr�rkr�s  r�-test_glob_bytes_directory_with_trailing_slashz7GlobTests.test_glob_bytes_directory_with_trailing_slash�sy���i���D�I�I�e�$4�$4�r�v�$=�>�>�?�?������b�!�!�!��i���D�I�I�e�$4�$4�r�v�$=�>�>�?�?������b�!�!�!��i���D�I�I�e�$4�$4�r�v�$=�>�>�?�?������S���1�%�%�%��
�
�c�#�h�h��{�4�9�9�U�#3�#3�4�4��{�4�9�9�U�#3�#3�4�4�6��{�4�9�9�U�#3�#3�b�f�#<�=�=��{�4�9�9�U�#3�#3�b�f�#<�=�=�?�!�	�	�	�	�	rc	��|j}||�d��|�d��g��||�dd��|�dd��|�dd��g��|�|�dtjz��|�d��g|�d��tjzgg��||�dd��|�dd��|�dd	��|�dd��g��dS)
Nr;rrr4r6r�r1r2r*r+)rorXrr�rr]r�s  r�test_glob_symlinkszGlobTests.test_glob_symlinks�s@��
�
.��
��4�9�9�V���t�y�y��0�0�1�2�2�2�
��4�9�9�V�S�!�!�D�I�I�f�d�$;�$;�$(�I�I�f�e�$<�$<�$>�	?�	?�	?��
�
�d�i�i�����0�0��	�	�&�)�)�*�T�Y�Y�v�->�->���-G�,H�I�	K�	K�	K�
��4�9�9�S�$����I�I�e�V�$�$��I�I�e�S�!�!�4�9�9�V�T�#:�#:�<�	=�	=�	=�	=�	=rc��|j}||�d��|�d��|�d��|�d��g��||�d��|�d��g��||�d��|�d��g��dS)Nzsym*r9r:r;r�r�s  r�test_glob_broken_symlinksz#GlobTests.test_glob_broken_symlinks�s���
�
.��
��4�9�9�V���t�y�y��0�0�$�)�)�F�2C�2C�#�y�y��0�0�2�	3�	3�	3�
��4�9�9�V���t�y�y��0�0�1�2�2�2�
��4�9�9�V���t�y�y��0�0�1�2�2�2�2�2r�win32zWin32 specific testc��|j}|tjd��g��|tjd��g��|tjd��g��|tjd��g��|tjd��dg��|tjd��dg��|tjd��g��|tjd��g��dS)	Nz*:s*:z?:s?:z\\?\c:\s\\?\c:\z\\*\*\s\\*\*\)rorXr�s  r�test_glob_magic_in_drivez"GlobTests.test_glob_magic_in_drive�s���
�
.��
��4�9�T�?�?�B����
��4�9�U���R� � � �
��4�9�T�?�?�B����
��4�9�U���R� � � �
��4�9�]�#�#�m�_�5�5�5�
��4�9�^�$�$�~�&6�7�7�7�
��4�9�\�"�"�B�'�'�'�
��4�9�]�#�#�R�(�(�(�(�(rc���|�tj|��|��|�tjtj|����tj|����dSr)rjrX�escaperrP)r�argrds   r�check_escapezGlobTests.check_escape�s\�������S�)�)�8�4�4�4������R�[��%5�%5�6�6���H�8M�8M�N�N�N�N�Nrc��|j}|dd��|dd��|dd��|dd��|dd	��|d
d��dS)N�abc�[z[[]�?z[?]rrz[*]z[[_/*?*/_]]z[[][[]_/[*][?][*]/_]]z
/[[_/*?*/_]]/z/[[][[]_/[*][?][*]/_]]/�r��r�checks  r�test_escapezGlobTests.test_escape�s~���!��
��e�U����
��c�5����
��c�5����
��c�5����
��m�4�5�5�5�
��o�8�9�9�9�9�9rc��|j}|dd��|dd��|dd��|dd��|d	d
��|dd��dS)
Nz?:?z?:[?]z*:*z*:[*]z\\?\c:\?z
\\?\c:\[?]z\\*\*\*z	\\*\*\[*]z//?/c:/?z
//?/c:/[?]z//*/*/*z	//*/*/[*]r�r�s  r�test_escape_windowszGlobTests.test_escape_windows�s|���!��
��e�W����
��e�W����
��k�=�)�)�)�
��j�,�'�'�'�
��j�,�'�'�'�
��i��%�%�%�%�%rc� �|j|ddi|��S)N�	recursiveT�rX�rrr^s   r�rglobzGlobTests.rglob�s���t�y�%�:�4�:�6�:�:�:rc� �|j|ddi|��S)N�include_hiddenTr�r�s   r�hglobzGlobTests.hglob�s���t�y�%�?��?��?�?�?rc��|j}ddg}||�d��|j|���||�d��|j|���dg}||�dd��|j|���dS)N�r1�r,r�z*aa�r,r-rSr-)ror�r)rr��lrns    r�test_hidden_globzGlobTests.test_hidden_globs���
�
.��
�x� ��
��4�:�:�e���j�d�j�!�n�-�-�-�
��4�:�:�e���j�d�j�!�n�-�-�-��^��
��4�:�:�d�C� � �*�$�*�b�/�2�2�2�2�2rc�	��|j}gd�}t��r|gd�z
}||�d��|jdg|�R���||�tjd��|jtjdfgd�|D���R���gd�}t��r|dd	gz
}||�dd��|jdg|�R���||�d
d��|�ddd
ddd����||�d��|�ddd����ddg}t��r|dgz
}||�dd��|j|���gd�}t��r|dgz
}||�dd��|j|���||�ddd��g��||�ddd��|�dd����||�d
dd��|�d
����t
|j��5tjj	�|tj
dd����fd�|D����|tj
�dd��d����fd�|D����|tj
�dd��d����fd �|D����|tj
�tjd��d����tjd��g�fd!�|D��z��|tj
�tjdd��d����tjd��g�fd"�|D��z��|tj
�tjdd��d����fd#�|D����|tj
�dd$��d����d%d&��g��|tj
d'd���g���d
dd��dg}t��r|�d(d��gz
}|tj
�dd��d���|��gd)�}|tj
ddd�*���fd+�||zD����ddd��dS#1swxYwYdS),N)�r4)r3�r(�r(r)�r(r5�r(r5r4�r(r5r6�r(r5r6r7r��r1r2�r*�r*r+))r9)r:)r;�r;r4)r;r6)r;r6r7rS)r�r�c3�6K�|]}tjf|zV��dSr�rr)r�is  r�	<genexpr>z0GlobTests.test_recursive_glob.<locals>.<genexpr>s+����)I�)I�q�2�9�,��*:�)I�)I�)I�)I�)I�)Ir)�r(r�)r(r5r�)r(r5r6r�)r1r�)r*r�)r;r�)r;r6r�r(r�r�r�r�r�r�za**r�r�r�r�r�r4)r�r�r�r�r�r5rrT�r�c���g|]}�|���Srr�rr�rs  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp>8s���0H�0H�0H�a���q��0H�0H�0Hrc���g|]}�|���Srrr�s  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp>:����(�(�(�a���q��(�(�(rc���g|]}�|���Srrr�s  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp><r�rc�6��g|]}�tjg|�R���Srr�r�s  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp>>�-���(K�(K�(K����b�i�)<�!�)<�)<�)<�(K�(K�(Krc�6��g|]}�tjg|�R���Srr�r�s  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp>@r�rc�6��g|]}�tjg|�R���Srr�r�s  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp>Bs-���3�3�3����b�i�$�!�$�$�$�3�3�3rzzz*Fr1r2z**zz*Fr;))r.r/)r.r0r�r�)r.)r�r�c���g|]}�|���Srrr�s  �rrz1GlobTests.test_recursive_glob.<locals>.<listcomp>Ms���+�+�+�Q���a��+�+�+r)rorr�rrrrrr
rrX)rr��full�dirs�expect�recrs      @r�test_recursive_globzGlobTests.test_recursive_glob
s6���
�
.�������=�=�	�����
�D�	��4�:�:�d���Z�T�Z��5��5�5�5�6�6�6�
��4�:�:�b�i��&�&��D�J��	�2��J�)I�)I�D�)I�)I�)I�J�J�J�	L�	L�	L�*�*�*���=�=�	8��\�#6�7�7�D�
��4�:�:�d�B������E�!9�D�!9�!9�!9�:�:�:�
��4�:�:�c�4� � �$�*�*��z�<�1C��!:�#<�#<�	=�	=�	=�	��4�:�:�e���d�j�j���8�D�D�E�E�E�$�g�.���=�=�	'��~�&�&�F�
��4�:�:�d�D�!�!�:�4�:�v�#6�7�7�7�M�M�M���=�=�	'��~�&�&�F�
��4�:�:�d�D�!�!�:�4�:�v�#6�7�7�7�
��4�:�:�d�D�"�%�%�r�*�*�*�
��4�:�:�d�E�3�'�'����� 3�*5�*5�	6�	6�	6�
��4�:�:�c�4��'�'����L�)A�)A�B�B�B�
���
%�
%�	-�	-��7�<�D��B�t�y���.�.�.�0H�0H�0H�0H�4�0H�0H�0H�I�I�I��B�t�y���d�B���4�8�8�8�(�(�(�(�4�(�(�(�
*�
*�
*��B�t�y���d�C���D�9�9�9�(�(�(�(�4�(�(�(�
*�
*�
*��B�t�y���b�i��.�.�$�?�?�?���b�i��$�$�%�(K�(K�(K�(K�d�(K�(K�(K�K�
M�
M�
M��B�t�y���b�i��r�2�2�d�C�C�C���b�i��$�$�%�(K�(K�(K�(K�d�(K�(K�(K�K�
M�
M�
M��B�t�y���b�i��s�3�3�t�D�D�D�3�3�3�3�d�3�3�3�
5�
5�
5��B�t�y���d�6�*�*�d�;�;�;���e�V�$�$�%�
'�
'�
'��B�t�y��T�2�2�2�B�7�7�7��d�3��t�,�,�d�3�F��}�}�
/��4�4���-�-�.�.���B�t�y���d�D�)�)�T�:�:�:�F�C�C�C�N�N�N�C��B�t�y���d�C�C�C�+�+�+�+�$�s�(�+�+�+�
-�
-�
-�-	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�(I<S1�1S5�8S5c���d}tj�|jd��}tjj|gdg|z�R�}tj|��tjj|gdg|z�R���fd�td��D��}|D]%}|�t|��|���&tj�|dd����fd�td��D��}|}t|��D]J}tj�|d��}|D]%}|�t|��|���&�KdS)	N��deep�drrc�<��g|]}tj�d�����S�Tr��rXrY�r�jr_s  �rrz7GlobTests.test_glob_many_open_files.<locals>.<listcomp>U�(���I�I�I����G�t�4�4�4�I�I�Ir�drSc�<��g|]}tj�d�����Sr�r�r�s  �rrz7GlobTests.test_glob_many_open_files.<locals>.<listcomp>Yr�r)rr
rrr!�rangerj�next)r�depthr#r`�iters�itr�r_s       @r�test_glob_many_open_filesz#GlobTests.test_glob_many_open_filesOsY������w�|�|�D�L�&�1�1���G�L��.�#��u��.�.�.��
��A�����'�,�t�4��u�U�{�4�4�4��I�I�I�I�e�C�j�j�I�I�I���	*�	*�B����T�"�X�X�q�)�)�)�)��'�,�,�t�T�3�/�/��I�I�I�I�e�C�j�j�I�I�I�����u���	.�	.�A�����Q��$�$�A��
.�
.��� � ��b���1�-�-�-�-�
.�	.�	.r)"�__name__�
__module__�__qualname__rDrrr%rFrKrXror�r�r�r�r�r�r�rr�r��unittest�
skipUnless�sys�platformr�r�r�r�r�r�r�r�r�rrrr	r	s������
�F�D�D�D�H�H�H�$�$�$����*$�$�$�
0�0�0�d1�1�1�:�:�:�"A�A�A� � � �	H�	H�	H�<�<�<���� ���"�	=�	=���	=��3�3���3��X�����0�2G�H�H�	)�	)�I�H�	)�O�O�O�:�:�:��X�����0�2G�H�H�&�&�I�H�&�;�;�;�@�@�@�3�3�3�C-�C-�C-�J.�.�.�.�.rr	c��eZdZd�ZdS)�SymlinkLoopGlobTestsc	�$�tdz}tj|��|�tj|��t
|��5tjd��ttj�	dd����tj
tjtj�	dd����tjdd���}|�
t|��tt|������t|��}d}|r�tjj	dgdg|zz�}|�||��|�|��|snRtj�	|d��}|�||��|�|��|d	z
}|��tjtj�	dd��d���}|�
t|��tt|������t|��}d}|rQtjj	dgdg|zzdgz�}|�||��|�|��|d	z
}|�Qtjtj�	dd
��d���}|�
t|��tt|������t|��}d}|rQtjj	dgdg|zzd
gz�}|�||��|�|��|d	z
}|�Qddd��dS#1swxYwYdS)Nr'�dirr$�linkrSTr�rrMr�)rrr!�
addCleanuprIrJrrr
rr<rrXrjrWrkr��remove)rr�resultsr�r
s     r�
test_selflinkz"SymlinkLoopGlobTests.test_selflinkdso���6�/��
��G��������
�w�/�/�/�
��
 �
 �&	�&	��K������b�g�l�l�5�&�9�9�:�:�:��J�r�y�"�'�,�,�u�f�"=�"=�>�>�>��i���5�5�5�G����S��\�\�3�s�7�|�|�+<�+<�=�=�=��'�l�l�G��E��	
��w�|�u�g���5�0@�&@�B���
�
�d�G�,�,�,����t�$�$�$�����w�|�|�D�&�1�1���
�
�d�G�,�,�,����t�$�$�$���
���	
��i�����T�6� :� :�d�K�K�K�G����S��\�\�3�s�7�|�|�+<�+<�=�=�=��'�l�l�G��E��
��w�|�u�g���5�0@�&@�F�8�&K�M���
�
�d�G�,�,�,����t�$�$�$���
��	�
��i�����T�2� 6� 6�$�G�G�G�G����S��\�\�3�s�7�|�|�+<�+<�=�=�=��'�l�l�G��E��
��w�|�u�g���5�0@�&@�B�4�&G�I���
�
�d�G�,�,�,����t�$�$�$���
��	�
�E&	�&	�&	�&	�&	�&	�&	�&	�&	�&	�&	�&	����&	�&	�&	�&	�&	�&	s�L*N�N	�N	N)r�r�r�rrrrr�r�as#������*�*�*�*�*rr��__main__)rXrrIr�r��test.support.os_helperrrrrr�TestCaser	r�r��mainrrr�<module>rs������	�	�	�	�
�
�
�
�
�
�
�
�����P�P�P�P�P�P�P�P�P�P�P�P�P�P�S.�S.�S.�S.�S.��!�S.�S.�S.�l
�,�,�,�,�,�8�,�,�,���,�^�z����H�M�O�O�O�O�O��r