HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_uuid.cpython-37.pyc
B

��g���@sddlZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZej
ddgd�Zej
ddgd�Zdd�ZGd	d
�d
�ZGdd�deej�Ze�ed
�Gdd�deej��ZGdd�d�ZGdd�deej�Ze�ed
�Gdd�deej��Zedk�re��dS)�N)�support�uuid�_uuid)Zblocked)ZfreshcCsyt|�dSdSdS)NTF)�
__import__)�name�r�*/usr/local/lib/python3.7/test/test_uuid.py�
importables
r	c@seZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
e�dd�e
�ejdkd�dd���Zejdd��Ze
�ejdkd�dd��Ze
�ejdkd�dd��Ze
�ejdkd�dd��Ze
�ejdkd�dd��Zd d!�Zd"d#�Zd$d%�Ze
�ejdkd&�d'd(��ZdS))�BaseTestUUIDNcCs�|j}g}�x�dddddddddd|jjdfdd	d
ddd
dddd|jjdfdddddddddd|jjdfdddd d!d"d#d$d%d&|jjdfd'd(d)d*d+d,d-d.d/d0|jjd1fd2d3d4d5d6d7d8d9d:d0|jjd1fd;d<d=d>d?d@dAdBdCd0|jjd1fdDdEdFdGdHdIdJdKdLd0|jjd1fdMdNdOdPdQdRdSdTdUdV|jjd1fdWdXdYdZd[d\d]d^d_d`|jjdfdadbdcdddedfdgdhdidj|jjdkfdldmdndodpdqdrdsdtdu|jjd1fdvdwdxdydzd{d|d}d~d|jjdfd�d�d�d�d�d�d�d�d�d�|jjdfgD�]�\}}}}}}}	}
}}}
}g}�xf|j�|�|j�|�|j�|�|jj|d��|jj|d��|jj|d��|jj|	d��|j�|
�gD�]}|t|�|�|t|�|	�||j|�||j	|�||j
|�||j|d�||j|d1�||j
|d��||j|d�||j|dk�||j|d��||j|�||j|	�||j|
�||j|�||j|�||j|
�||j|�|�|��q8Wx(|D] }x|D]}|||��qRW�qHW|t|j�tj�|t|j	�tj�|�|��q�Wx�tt|��D]�}x�tt|��D]�}|||k||||k�|||k||||k�|||k||||k�|||k||||k�|||k||||k�|||k||||k��q�W�q�W|dd�}|��|��|||�dS)�Nz$00000000-0000-0000-0000-000000000000z&{00000000-0000-0000-0000-000000000000}� 00000000000000000000000000000000s)rrrrrrrz-urn:uuid:00000000-0000-0000-0000-000000000000z$00010203-0405-0607-0809-0a0b0c0d0e0fz&{00010203-0405-0607-0809-0a0b0c0d0e0f}Z 000102030405060708090a0b0c0d0e0fs	

s	

)iii��	l,(l,(H@p`���z-urn:uuid:00010203-0405-0607-0809-0a0b0c0d0e0fl80i	z$02d9e6d5-9467-382e-8f9b-9300a64ac3cdz&{02d9e6d5-9467-382e-8f9b-9300a64ac3cd}Z 02d9e6d59467382e8f9b9300a64ac3cds��Քg8.����J��s���g�.8����J��)i���ig�i.8��l�C�LLl	�C�LL�|��e5�lz-urn:uuid:02d9e6d5-9467-382e-8f9b-9300a64ac3cdl�f��QtAi��z$12345678-1234-5678-1234-567812345678z&{12345678-1234-5678-1234-567812345678}Z 12345678123456781234567812345678s4Vx4Vx4Vx4VxsxV44xV4Vx4Vx)ixV4i4ixV��4lxVh$�Yl	xVh$�Y��g�F+z-urn:uuid:12345678-1234-5678-1234-567812345678lxVh$�H�3i4z$6ba7b810-9dad-11d1-80b4-00c04fd430c8z&{6ba7b810-9dad-11d1-80b4-00c04fd430c8}Z 6ba7b8109dad11d180b400c04fd430c8sk����р��O�0�s��k������O�0�)i��ki��i���l�0�l	�0���5'�Skz-urn:uuid:6ba7b810-9dad-11d1-80b4-00c04fd430c8l8OW�v�r�z$6ba7b811-9dad-11d1-80b4-00c04fd430c8z&{6ba7b811-9dad-11d1-80b4-00c04fd430c8}Z 6ba7b8119dad11d180b400c04fd430c8sk����р��O�0�s��k������O�0�)i��ki��i�rrl�0�l	�0���5g�Skz-urn:uuid:6ba7b811-9dad-11d1-80b4-00c04fd430c8l8OW�v�z$6ba7b812-9dad-11d1-80b4-00c04fd430c8z&{6ba7b812-9dad-11d1-80b4-00c04fd430c8}Z 6ba7b8129dad11d180b400c04fd430c8sk����р��O�0�s��k������O�0�)i��ki��i�rrl�0�l	�0���5��Skz-urn:uuid:6ba7b812-9dad-11d1-80b4-00c04fd430c8l8OW�v�z$6ba7b814-9dad-11d1-80b4-00c04fd430c8z&{6ba7b814-9dad-11d1-80b4-00c04fd430c8}Z 6ba7b8149dad11d180b400c04fd430c8sk����р��O�0�s��k������O�0�)i��ki��i�rrl�0�l	�0���5'�Skz-urn:uuid:6ba7b814-9dad-11d1-80b4-00c04fd430c8l8OW�v�z$7d444840-9dc0-11d1-b245-5ffdce74fad2z&{7d444840-9dc0-11d1-b245-5ffdce74fad2}Z 7d4448409dc011d1b2455ffdce74fad2s}DH@��ѲE_��t��s@HD}����E_��t��)i@HD}i��i���El�z��l	�z��*8'$"}z-urn:uuid:7d444840-9dc0-11d1-b245-5ffdce74fad2l@H�zw�iE2z$e902893a-9d22-3c7e-a7b8-d6e313b71d9fz&{e902893a-9d22-3c7e-a7b8-d6e313b71d9f}Z e902893a9d223c7ea7b8d6e313b71d9fs��:�"<~������s:��"�~<������)l:	Ri"�i~<��l�n'�[l	�n'�[�=�GG$�ND�z-urn:uuid:e902893a-9d22-3c7e-a7b8-d6e313b71d9fl:	R�t�ci�'z$eb424026-6f54-4ef8-a4d0-bb658a1fc6cfz&{eb424026-6f54-4ef8-a4d0-bb658a1fc6cf}Z eb4240266f544ef8a4d0bb658a1fc6cfs�B@&oTN��лe���s&@B�To�N�лe���)l&@�ViToi�N���l�F?�ml	�F?�m�&�o�j�	 !�z-urn:uuid:eb424026-6f54-4ef8-a4d0-bb658a1fc6cfl&@�VS=�wi�$�z$f81d4fae-7dec-11d0-a765-00a0c91e6bf6z&{f81d4fae-7dec-11d0-a765-00a0c91e6bf6}Z f81d4fae7dec11d0a76500a0c91e6bf6s�O�}�Чe��k�s�O��}��e��k�)l�O:pi�}i�r�el�k<�l	�k<�(;
�=�k��z-urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6l�O:p�w�ie'z$fffefdfc-fffe-fffe-fffe-fffefdfcfbfaz&{fffefdfc-fffe-fffe-fffe-fffefdfcfbfa}Z fffefdfcfffefffefffefffefdfcfbfas����������������s����������������)l�}�i��i����l�{�{�l	�{�{����?~�z-urn:uuid:fffefdfc-fffe-fffe-fffe-fffefdfcfbfal�}���i�?z$ffffffff-ffff-ffff-ffff-ffffffffffffz&{ffffffff-ffff-ffff-ffff-ffffffffffff}Z ffffffffffffffffffffffffffffffffs����������������)l��i��i��rrl���l	���������z-urn:uuid:ffffffff-ffff-ffff-ffff-ffffffffffffl����i�?)�bytes)�bytes_le)�fields)�int��)�assertEqualrZRESERVED_NCS�RFC_4122ZRESERVED_FUTURE�UUID�strr#r r!r"�time_low�time_mid�time_hi_version�clock_seq_hi_variant�
clock_seq_low�node�hex�urn�time�	clock_seq�variant�version�append�type�builtins�range�len�reverse�sort)�self�equalZ	ascending�stringZcurlyr0r r!r"Zintegerr1r2r3r4r5Zequivalents�u�v�i�jZresortedrrr�	test_UUIDsV0"

&zBaseTestUUID.test_UUIDc	s��fdd�}�fdd�}|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fd	d��|�fd
d��|�fdd��|�fdd��|�fd
d��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fdd��|�fd d��|�fd!d��d"\�����j����jj�d#��jj�d$��jj�d%��jj�d&��jj�d'�|�fd(d��|���fd)d��|���fd*d��|����fd+d��|�����fd,d��x�gd-�fggD]�}x�gd.�fggD]�}x�gd/�fggD]�}x�gd0�fggD]z}xrgd1�fggD]`}t|||||��t��d2k�rZ|���fd3d��t��d4k�r|��fd5d���qW�qW�q�W�q�W�q�W�j����|��fd6d��|��fd7d��|��fd8d��|��fd9d��|��fd:d��|�fd;d��|�fd<d��|�fd=d��|�fd>d��|�fd?d��|�fd@d��|�fdAd��|�fdBd��|�fdCd��dS)DNcs��t|�S)N)�assertRaises�
ValueError)�f)r=rr�<lambda>��z.BaseTestUUID.test_exceptions.<locals>.<lambda>cs��t|�S)N)rE�	TypeError)rG)r=rrrH�rIcs�j�d�S)N�)rr(r)r=rrrH�rIcs�j�d�S)N�abc)rr(r)r=rrrH�rIcs�j�d�S)NZ1234567812345678123456781234567)rr(r)r=rrrH�rIcs�j�d�S)NZ!123456781234567812345678123456789)rr(r)r=rrrH�rIcs�j�d�S)NZ 123456781234567812345678z2345678)rr(r)r=rrrH�rIcs�jjdd�S)NrL)r )rr(r)r=rrrH�rIcs�jjdd�S)Nz)r )rr(r)r=rrrH�rIcs�jjdd�S)Nz)r )rr(r)r=rrrH�rIcs�jjdd�S)NrL)r!)rr(r)r=rrrH�rIcs�jjdd�S)Nz)r!)rr(r)r=rrrH�rIcs�jjdd�S)Nz)r!)rr(r)r=rrrH�rIcs�jjdd�S)N)r)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rr$rrr%)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rr$rrr%��)r")rr(r)r=rrrH�rIcs�jjdd�S)N)���rrrrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)lrrrrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrOrrrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rirrrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrrOrrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrirrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrrrOrr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrr�rr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrrrrOr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrrrrPr)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrrrrrO)r")rr(r)r=rrrH�rIcs�jjdd�S)N)rrrrrl)r")rr(r)r=rrrH�rIcs�jjddd�S)Nrr)r5)rr(r)r=rrrH�rIcs�jjddd�S)NrrM)r5)rr(r)r=rrrHrIcs�jjdd�S)NrO)r#)rr(r)r=rrrHrIcs�jjdd>d�S)Nrr)r#)rr(r)r=rrrHrI)rs)rrrrrrr)r0)r )r!)r")r#cs
�j��S)N)rr(r)r=rrrHrIcs�j����S)N)rr(r)�b�hr=rrrHrIcs�j�����S)N)rr(r)rQrRr=rrrHrIcs�j������S)N)rr(r)rQrGrRr=rrrHrIcs�j�������S)N)rr(r)rQrGrRrBr=rrrHrIr0r r!r#r"rcs�jj�f��S)N)rr(r)�argsrRr=rrrHrIrcs�jjf��S)N)rr(r)rSr=rrrH rIcst�d��S)Nr0)�setattrr)rRr@rrrH$rIcst�d��S)Nr )rTr)rQr@rrrH%rIcst�d��S)Nr!)rTr)rQr@rrrH&rIcst�d��S)Nr")rTr)rGr@rrrH'rIcst�d��S)Nr#)rTr)rBr@rrrH(rIcst�dd�S)Nr*r)rTr)r@rrrH)rIcst�dd�S)Nr+r)rTr)r@rrrH*rIcst�dd�S)Nr,r)rTr)r@rrrH+rIcst�dd�S)Nr,r)rTr)r@rrrH,rIcst�dd�S)Nr-r)rTr)r@rrrH-rIcst�dd�S)Nr.r)rTr)r@rrrH.rIcst�dd�S)Nr/r)rTr)r@rrrH/rIcs
�t�kS)N)�objectr)r@rrrH2rIcs
�t�kS)N)rUr)r@rrrH3rI)rr(�dictr:)r=ZbadvalueZbadtypeZhhZbbZbble�iiZffr)rSrQrGrRrBr=r@r�test_exceptions�s�0zBaseTestUUID.test_exceptionscCsR|j��}|�d|ko dknd|�|j��}|�||d||f�dS)Nrlz%012xz%012x != %012x)r�getnode�
assertTruer&)r=Znode1�node2rrr�test_getnode5s
$
zBaseTestUUID.test_getnodecs��fdd�}t�tjd�j���x��jjD]|}�jjd|d�}|t�|�|�|t�|�|�xFt	t
jd�D]4}�j|d��|t
�
t
�||��|�WdQRXqnWq*WWdQRXdS)Ncs ��||���|j|j�dS)N)r&�is_safe)�actual�expected)r=rr�check>sz1BaseTestUUID.test_pickle_roundtrip.<locals>.checkr� d82579ce6642a0de7ddf490a7aec7aa5)r]r)Zprotocol)r�	swap_item�sys�modulesr�SafeUUIDr(�copyZdeepcopyr9�pickleZHIGHEST_PROTOCOLZsubTest�loads�dumps)r=r`r]r@�protor)r=r�test_pickle_roundtrip=sz"BaseTestUUID.test_pickle_roundtripc	
s��fdd�}ddddddd	d
ddd
ddg
}dddddg}dddddg}�j�d�}�jjd�jjjd�}�jjd�jjjd�}t�tjd�j��`x|D]}|t	�
|�|�q�Wx|D]}|t	�
|�|�q�Wx|D]}|t	�
|�|�q�WWdQRXdS)Ncs ��||���|j|j�dS)N)r&r])r^r_)r=rrr`MszBBaseTestUUID.test_unpickle_previous_python_versions.<locals>.checksrccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR(dS'int'
L287307832597519156748809049798316161701L
sb.soccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR}UintL287307832597519156748809049798316161701L
sb.s+�cuuid
UUID
)�}Uint��z�z
I�}ޠBf�y%�sb.spccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR(dVint
L287307832597519156748809049798316161701L
sb.srccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR}XintL287307832597519156748809049798316161701L
sb.s.�cuuid
UUID
)�}Xint��z�z
I�}ޠBf�y%�sb.s.�cuuid
UUID
)�}Xint��z�z
I�}ޠBf�y%�sb.s6��+�uuid�UUID�)�}�int��z�z
I�}ޠBf�y%�sb.s�ccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR(dVint
L287307832597519156748809049798316161701L
sVis_safe
cuuid
SafeUUID
(NtRsb.s�ccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR}(XintL287307832597519156748809049798316161701L
Xis_safecuuid
SafeUUID
(NtRub.sM�cuuid
UUID
)�}(Xint��z�z
I�}ޠBf�y%�Xis_safecuuid
SafeUUID
N�Rub.sM�cuuid
UUID
)�}(Xint��z�z
I�}ޠBf�y%�Xis_safecuuid
SafeUUID
N�Rub.sQ��F�uuid��UUID�)�}(�int��z�z
I�}ޠBf�y%��is_safeh�SafeUUID�N�Rub.s�ccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR(dVint
L287307832597519156748809049798316161701L
sVis_safe
cuuid
SafeUUID
(I0
tRsb.s�ccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR}(XintL287307832597519156748809049798316161701L
Xis_safecuuid
SafeUUID
(KtRub.sN�cuuid
UUID
)�}(Xint��z�z
I�}ޠBf�y%�Xis_safecuuid
SafeUUID
K�Rub.sN�cuuid
UUID
)�}(Xint��z�z
I�}ޠBf�y%�Xis_safecuuid
SafeUUID
K�Rub.sR��G�uuid��UUID�)�}(�int��z�z
I�}ޠBf�y%��is_safeh�SafeUUID�K�Rub.s�ccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR(dVint
L287307832597519156748809049798316161701L
sVis_safe
cuuid
SafeUUID
(I-1
tRsb.s�ccopy_reg
_reconstructor
(cuuid
UUID
c__builtin__
object
NtR}(XintL287307832597519156748809049798316161701L
Xis_safecuuid
SafeUUID
(J����tRub.sQ�cuuid
UUID
)�}(Xint��z�z
I�}ޠBf�y%�Xis_safecuuid
SafeUUID
J�����Rub.sQ�cuuid
UUID
)�}(Xint��z�z
I�}ޠBf�y%�Xis_safecuuid
SafeUUID
J�����Rub.sU��J�uuid��UUID�)�}(�int��z�z
I�}ޠBf�y%��is_safeh�SafeUUID�J�����Rub.ra)r]r)rr(re�safe�unsaferrbrcrdrgrh)	r=r`Z
pickled_uuidsZpickled_uuids_safeZpickled_uuids_unsafer@Zu_safeZu_unsafeZpickledr)r=r�&test_unpickle_previous_python_versionsLsH


z3BaseTestUUID.test_unpickle_previous_python_versionsc
Cs�dd�}tjjj|jd|g|gd��|j��}WdQRX|�d|koPdknd|�y|jj|d�Wn,tk
r�}z|�	d�Wdd}~XYnXdS)	NcSsdS)NlrrrrrrH�rIz/BaseTestUUID.test_uuid1_eui64.<locals>.<lambda>)Z_nodeZ_NODE_GETTERS_WIN32Z_NODE_GETTERS_UNIXrlz%012x)r/z"uuid1 was given an invalid node ID)
�unittest�mock�patchZmultiplerrYrZ�uuid1rFZfail)r=Ztoo_large_getterr/�errr�test_uuid1_eui64�s$zBaseTestUUID.test_uuid1_eui64cs��j}x`�fdd�td�D�D]F}||j�jj�||jd���|j�jjj	�jjj
�jjjh�qWi}x&�fdd�td�D�D]}d||<q�W|t|�
��d��j�d�}||jd��j�d�}||jd��j�d	�}||jd	��j�dd�}||jd�||jd
@d>|jBd��j�dd�}||jd�||jd
@d>|jBd��j�dd
�}||jd�||jd
@d>|jBd
�dS)Ncsg|]}�j���qSr)rrr)�.0rB)r=rr�
<listcomp>�sz+BaseTestUUID.test_uuid1.<locals>.<listcomp>�
rcsg|]}�j���qSr)rrr)rurB)r=rrrv�si�rl��,�Hl����?ri4i�?)r&r9r4rr'r5ZassertInr]rerlrm�unknownr:�keysrrr/r-r.)r=r>r@�uuidsr)r=r�
test_uuid1�s8zBaseTestUUID.test_uuid1rwr%�posixzPOSIX-only testcCs4|jjs|�d�|j��}|�|j|jjj�dS)Nz#requires uuid_generate_time_safe(3))rZ_has_uuid_generate_time_safe�skipTestrr�assertNotEqualr]rery)r=r@rrr�test_uuid1_safes

zBaseTestUUID.test_uuid1_safec	#sltjdkr|�d�|j��|jj��dkr8|�d�tjj�	|jd��fdd���dVWdQRXdS)zQ
        Mock uuid._generate_time_safe() to return a given *safe_value*.
        r}zPOSIX-only testNzneed uuid._generate_time_safe�_generate_time_safecs��d�fS)Nrrr)rG�
safe_valuerrrHrIz6BaseTestUUID.mock_generate_time_safe.<locals>.<lambda>)
�osrr~rZ_load_system_functionsr�rorprqrU)r=r�r)rGr�r�mock_generate_time_safes



z$BaseTestUUID.mock_generate_time_safec	Cs8|�d��$|j��}|�|j|jjj�WdQRXdS)N)r�rrrr&r]rery)r=r@rrr�test_uuid1_unknown s
zBaseTestUUID.test_uuid1_unknownc	Cs8|�d��$|j��}|�|j|jjj�WdQRXdS)Nr)r�rrrr&r]rerl)r=r@rrr�test_uuid1_is_safe(s
zBaseTestUUID.test_uuid1_is_safec	Cs8|�d��$|j��}|�|j|jjj�WdQRXdS)NrO)r�rrrr&r]rerm)r=r@rrr�test_uuid1_is_unsafe.s
z!BaseTestUUID.test_uuid1_is_unsafec	Cs8|�d��$|j��}|�|j|jjj�WdQRXdS)Nr)r�rrrr&r]rery)r=r@rrr�test_uuid1_bogus_return_value4s
z*BaseTestUUID.test_uuid1_bogus_return_valuecCs�|j}x�|j�|jjd�df|j�|jjd�df|j�|jjd�df|j�|jjd�dfgD]D\}}||j|jj�||j	d	�|||j�
|��|t|�|�q\WdS)
Nz
python.orgz$6fa459ea-ee8a-3ca4-894e-db77e160355ezhttp://python.org/z$9fe8e8c4-aaa8-32a9-a55c-4535a88b748dz1.3.6.1z$dd1a1cef-13d5-368a-ad82-eca71acd4cd1zc=caz$658d3002-db6b-3040-a1d1-8ddd7d189a4dr)r&rZuuid3�
NAMESPACE_DNS�
NAMESPACE_URL�
NAMESPACE_OID�NAMESPACE_X500r4r'r5r(r))r=r>r@rArrr�
test_uuid3:szBaseTestUUID.test_uuid3cs��j}x:�fdd�td�D�D] }||j�jj�||jd�qWi}x&�fdd�td�D�D]}d||<q^W|t|���d�dS)Ncsg|]}�j���qSr)r�uuid4)rurB)r=rrrvPsz+BaseTestUUID.test_uuid4.<locals>.<listcomp>rwrcsg|]}�j���qSr)rr�)rurB)r=rrrvVsi�r)r&r9r4rr'r5r:rz)r=r>r@r{r)r=r�
test_uuid4LszBaseTestUUID.test_uuid4cCs�|j}x�|j�|jjd�df|j�|jjd�df|j�|jjd�df|j�|jjd�dfgD]D\}}||j|jj�||j	d	�|||j�
|��|t|�|�q\WdS)
Nz
python.orgz$886313e1-3b8a-5372-9b90-0c9aee199e5dzhttp://python.org/z$4c565f0d-3f5a-5890-b41b-20cf47701c5ez1.3.6.1z$1447fa61-5277-5fef-a9b3-fbc6e44f4af3zc=caz$cc957dd1-a972-5349-98cd-874190002798r%)r&rZuuid5r�r�r�r�r4r'r5r(r))r=r>r@rArrr�
test_uuid5ZszBaseTestUUID.test_uuid5zrequires PosixcCs�t��}t��}|dkrTt�|d�|j��}t�|d|j�d��t�	d�nZt�|d�|�
tj|d�|j��j}t�|d�t�|dd��
d�}|�||�dS)Nrrzlatin-1�d)r��pipe�fork�closerr��writer0�encode�_exitZ
addCleanup�waitpid�read�decoder)r=Zfds�pid�valueZparent_valueZchild_valuerrr�
testIssue8621ls
zBaseTestUUID.testIssue8621)�__name__�
__module__�__qualname__rrDrXr\rkrnrtr|rZrequires_mac_verro�
skipUnlessr�rr��
contextlib�contextmanagerr�r�r�r�r�r�r�r�r�rrrrr
s(;_y(
r
c@seZdZeZdS)�TestUUIDWithoutExtModuleN)r�r�r��py_uuidrrrrrr��sr�zrequires the C _uuid modulec@seZdZeZdS)�TestUUIDWithExtModuleN)r�r�r��c_uuidrrrrrr��sr�c@sDeZdZdZe�ejdkd�dd��Zd$dd�Z	e�ejdkd�dd	��Z
e�ejdkd�d
d��Ze�ejdkd�dd
��Ze�ejdkd�dd��Z
e�ejdkd�dd��Ze�ejdkd�dd��Ze�ed�d�e�ed�d�dd���Zdd�Ze�ejdkd�dd��Ze�ejdkd�e�ed �d!�d"d#���ZdS)%�BaseTestInternalsNr}zrequires Posixc
Cs�d}tj��}t�|���|_tjjjt	ddd��@tjjjt
d|d�� |jjdddgd	d
�d�}WdQRXWdQRX|�
|d�dS)
Nz�
fake hwaddr
cscotun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
eth0      Link encap:Ethernet  HWaddr 12:34:56:78:90:ab
Zwhichz/sbin/ifconfig)Zreturn_value�Popen�ifconfigrKshwaddrcSs|dS)Nrr)�xrrrrH�rIz1BaseTestInternals.test_find_mac.<locals>.<lambda>)ZcommandrSZhw_identifiersZ	get_indexl��,�H)rorpZ	MagicMock�io�BytesIOr��stdoutrqrU�shutil�
subprocessrZ	_find_macr&)r=�data�popenZmacrrr�
test_find_mac�s


 zBaseTestInternals.test_find_maccCs`|r|dkr|�d|�d|}tjdkr8t|dd�|�d|koNdknd|�dS)	Nz	requires z%012xr$� )�endrlz%s is not an RFC 4122 node ID)r~r�verbose�printrZ)r=r/Zrequiresr0rrr�
check_node�s
zBaseTestInternals.check_nodecCs|j��}|�|d�dS)Nr�)rZ_ifconfig_getnoder�)r=r/rrr�test_ifconfig_getnode�s
z'BaseTestInternals.test_ifconfig_getnodecCs|j��}|�|d�dS)NZip)rZ_ip_getnoder�)r=r/rrr�test_ip_getnode�s
z!BaseTestInternals.test_ip_getnodecCs|j��}|�|d�dS)NZarp)rZ_arp_getnoder�)r=r/rrr�test_arp_getnode�s
z"BaseTestInternals.test_arp_getnodecCs|j��}|�|d�dS)NZlanscan)rZ_lanscan_getnoder�)r=r/rrr�test_lanscan_getnode�s
z&BaseTestInternals.test_lanscan_getnodecCs|j��}|�|d�dS)NZnetstat)rZ_netstat_getnoder�)r=r/rrr�test_netstat_getnode�s
z&BaseTestInternals.test_netstat_getnode�ntzrequires WindowscCs|j��}|�|d�dS)NZipconfig)rZ_ipconfig_getnoder�)r=r/rrr�test_ipconfig_getnode�s
z'BaseTestInternals.test_ipconfig_getnodeZ	win32wnetzrequires win32wnetZnetbioszrequires netbioscCs|j��}|�|�dS)N)rZ_netbios_getnoder�)r=r/rrr�test_netbios_getnode�s
z&BaseTestInternals.test_netbios_getnodecCsH|j��}|�|d@d|�|�|�|j��}|�||d|�dS)Nlz%012x)rZ_random_getnoderZr�r)r=r/r[rrr�test_random_getnode�s



z%BaseTestInternals.test_random_getnodecCsXtd�std�s|�d�y|j��}Wntk
rF|�d�YnX|�|d�dS)Nr�ctypesz,neither _uuid extension nor ctypes availablezrequires uuid_generate_timeZunix)r	r~rZ
_unix_getnoderJr�)r=r/rrr�test_unix_getnode�s
z#BaseTestInternals.test_unix_getnoder�zrequires ctypescCs|j��}|�|�dS)N)rZ_windll_getnoder�)r=r/rrr�test_windll_getnode�s
z%BaseTestInternals.test_windll_getnode)N)r�r�r�rror�r�rr�r�r�r�r�r�r�r�r	r�r�r�r�rrrrr��s
	
r�c@seZdZeZdS)�TestInternalsWithoutExtModuleN)r�r�r�r�rrrrrr��sr�c@seZdZeZdS)�TestInternalsWithExtModuleN)r�r�r�r�rrrrrr��sr��__main__)Z
unittest.mockroZtestrr8r�rfr�r�rgr�r�rcZimport_fresh_moduler�r�r	r
ZTestCaser�r�r�r�r�r�r��mainrrrr�<module>s6nd