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

�Ke~P����ddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZdZdZ
dZGd�d	ej��Zed
krej��dSdS)�N)�mock)�support)�	os_helpera�NAME=Fedora
VERSION="32 (Thirty Two)"
ID=fedora
VERSION_ID=32
VERSION_CODENAME=""
PLATFORM_ID="platform:f32"
PRETTY_NAME="Fedora 32 (Thirty Two)"
ANSI_COLOR="0;34"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:32"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=32
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=32
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
a~NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
a
# test data
ID_LIKE="egg spam viking"
EMPTY=
# comments and empty lines are ignored

SINGLE_QUOTE='single'
EMPTY_SINGLE=''
DOUBLE_QUOTE="double"
EMPTY_DOUBLE=""
QUOTES="double\'s"
SPECIALS="\$\`\\\'\""
# invalid lines
=invalid
=
INVALID
IN-VALID=value
IN VALID=value
c�n�eZdZd�Zd�Zejej��d�����Z	d�Z
d�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zejej dvd��ej��d�����Z!ej"ej �#d��d��d���Z$d�Z%d�Z&d�Z'ej"ej d kd!��d"���Z(ejej)d#��d$���Z*ej+d%���Z,d&�Z-d'�Z.d(�Z/d)S)*�PlatformTestc��tj���tj���dt_dt_dS�N)�platform�_platform_cache�clear�_sys_version_cache�_uname_cache�_os_release_cache��selfs �</usr/local/apps/python3/lib/python3.11/test/test_platform.py�clear_cacheszPlatformTest.clear_cachesHsB��� �&�&�(�(�(��#�)�)�+�+�+� $���%)��"�"�"�c�,�tj��}dSr	)r
�architecture�r�ress  r�test_architecturezPlatformTest.test_architectureNs���#�%�%���rc��tj��5}d}|�|j|�|j|���ddd��dS#1swxYwYdS)N)z-cz/import platform; print(platform.architecture()))r�
PythonSymlink�assertEqual�	call_real�	call_link)r�py�cmds   r�test_architecture_via_symlinkz*PlatformTest.test_architecture_via_symlinkQs����
"�
$�
$�	E��I�C����\�R�\�3�/����s�1C�D�D�D�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E�	E����	E�	E�	E�	E�	E�	Es�)A
�
A�Ac�D�dD]}dD]}tj||��}��dS)N)FT)r
)r�aliased�tersers    r�
test_platformzPlatformTest.test_platformXsC��$�	8�	8�G�&�
8�
8���'���7�7���
8�	8�	8rc�,�tj��}dSr	)r
�systemrs  r�test_systemzPlatformTest.test_system]s���o�����rc�,�tj��}dSr	)r
�noders  r�	test_nodezPlatformTest.test_node`s���m�o�o���rc�,�tj��}dSr	)r
�releasers  r�test_releasezPlatformTest.test_releasec����� � ���rc�,�tj��}dSr	)r
�versionrs  r�test_versionzPlatformTest.test_versionfr/rc�,�tj��}dSr	)r
�machiners  r�test_machinezPlatformTest.test_machineir/rc�,�tj��}dSr	)r
�	processorrs  r�test_processorzPlatformTest.test_processorl���� �"�"���rc�l�tj|_tj|_tj|_dSr	)�sysr1�save_version�_git�save_gitr
�
save_platformrs r�setUpzPlatformTest.setUpos%���K������
� �\����rc�l�|jt_|jt_|jt_dSr	)r<r;r1r>r=r?r
rs r�tearDownzPlatformTest.tearDownts#���'����=����)����rc
��dD]>\}}tj|��\}}}}}}}	|�||dd|||	f|���?dd|jfddddd	d
ddd
dd|jfdi}
|
���D�]]\\}}}
}|t
_|�tt
d��rt
`n|t
_|
�|
t
_|�tj	��|d��|�tj
��|d��|�tj��|d��|�tj��|d��|�tj
��|d��|�tj��|d����_dS)N))zC2.4.3 (#1, Jun 21 2006, 13:54:21) 
[GCC 3.3.4 (pre 3.3.5 20040809)])�CPython�2.4.3�rF�1zJun 21 2006 13:54:21zGCC 3.3.4 (pre 3.3.5 20040809))z)IronPython 1.0.60816 on .NET 2.0.50727.42)�
IronPythonz	1.0.60816rFrFrFrF�.NET 2.0.50727.42)z4IronPython 1.0 (1.0.61005.1977) on .NET 2.0.50727.42)rHz1.0.0rFrFrFrFrI)z"2.4.3 (truncation, date, t) 
[GCC])rDrErFrF�
truncationzdate t�GCC)z!2.4.3 (truncation, date, ) 
[GCC]�rDrErFrFrJ�daterK)z 2.4.3 (truncation, date,) 
[GCC]rL)z2.4.3 (truncation, date) 
[GCC]rL)z2.4.3 (truncation, d) 
[GCC])rDrErFrFrJ�drK)z2.4.3 (truncation, ) 
[GCC]�rDrErFrFrJrFrK)z2.4.3 (truncation,) 
[GCC]rO)z2.4.3 (truncation) 
[GCC]rOrFzX2.6.1 (r261:67515, Dec  6 2008, 15:26:00) 
[GCC 4.0.1 (Apple Computer, Inc. build 5370)])rD�	tags/r261�67515)rD�2.6.1rPrQ)z
r261:67515zDec  6 2008 15:26:00z+GCC 4.0.1 (Apple Computer, Inc. build 5370))z/IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3053N�cli)rHz2.0.0rFrF�rFrFz.NET 2.0.50727.3053)z=2.6.1 (IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433)NrS)rHrRrFrFrTz.NET 2.0.50727.1433)z@2.7.4 (IronPython 2.7.4 (2.7.0.40) on Mono 4.0.30319.1 (32-bit))NrS)rHz2.7.4rFrFrTzMono 4.0.30319.1 (32-bit))z^2.5 (trunk:6107, Mar 26 2009, 13:02:18) 
[Java HotSpot(TM) Client VM ("Apple Computer, Inc.")])�Jython�trunk�6107�java1.5.0_16)rUz2.5.0rVrW)z
trunk:6107�Mar 26 2009rXz12.5.2 (63378, Mar 26 2009, 18:03:29)
[PyPy 1.0.0])�PyPyrV�63378)rZz2.5.2rVr[)r[rYrFr=r�����)r
�_sys_versionrr?�itemsr;r1�hasattrr=�python_implementation�python_version�
python_branch�python_revision�python_build�python_compiler)r�input�output�namer1�branch�revision�buildno�	builddate�compiler�sys_versions�version_tag�scm�sys_platform�infos               r�test_sys_versionzPlatformTest.test_sys_versionys���	O�	O�M�E�6�6�*�5�1�1�
L�T�7�F�H�g�y�(�����w��B���H�E�v�
O�
O�
O�
O�i�
.��0B�
D�@�
M�(�
[�(�
^�.�
9�@�B�
'��);�
=��A"��H�"�"�$�$�	B�	B�2�,�[�#�|�d�%�C�K��{��3��'�'�!��������'�+������X�;�=�=�t�A�w�G�G�G����X�4�6�6��Q��@�@�@����X�3�5�5�t�A�w�?�?�?����X�5�7�7��a��A�A�A����X�2�4�4�d�1�g�>�>�>����X�5�7�7��a��A�A�A�A�	B�	Brc��tjtj��tj��tj����}dSr	)r
�system_aliasr'r-r1rs  r�test_system_aliaszPlatformTest.test_system_alias�s;���#��O�����������
�
���rc���tj��}|�t|����|�|d|j��|�|d|j��|�|d|j��|�|d|j��|�|d|j��|�|d|j��|�|d|j��|�|d|j��|�|d	|j	��|�|d
|j	��|�|d|j
��|�|d|j
��|�t|��d
��dS)Nri����r\���r]���r^���r_���r`����)r
�uname�
assertTrue�anyrr'r*r-r1r4r7�lenrs  r�
test_unamezPlatformTest.test_uname�s����n��������C���!�!�!�����Q����,�,�,�����R��#�*�-�-�-�����Q����*�*�*�����R��#�(�+�+�+�����Q����-�-�-�����R��#�+�.�.�.�����Q����-�-�-�����R��#�+�.�.�.�����Q����-�-�-�����R��#�+�.�.�.�����Q����/�/�/�����R��#�-�0�0�0�����S���1�%�%�%�%�%rc��tj��}|j|j|j|j|j|jf}|�t|��|��dSr	)
r
r�r'r*r-r1r4r7r�tuple�rr�expecteds   r�test_uname_cast_to_tuplez%PlatformTest.test_uname_cast_to_tuple�sT���n�����J���#�+�s�{�C�K��M�
��	
����s���X�.�.�.�.�.rc��tj��}|�ddddd���}|�|jd��|�|jd��|�|jd��|�|jd��|�|jd��|�|j	|j	��dS)Nr'r*r-r1r4)r'r*r-r1r4)
r
r��_replacerr'r*r-r1r4r7)rr�news   r�test_uname_replacezPlatformTest.test_uname_replace�s����n�����l�l��&�)��y��2�2��	
�����X�.�.�.������6�*�*�*������i�0�0�0������i�0�0�0������i�0�0�0�������
�6�6�6�6�6rc���tj��}|�tj|��|��|�tj|��|��dSr	)r
r�r�copy�deepcopy)rr�s  r�test_uname_copyzPlatformTest.test_uname_copy�sU���� � �������5�)�)�5�1�1�1������u�-�-�u�5�5�5�5�5rc�D�tj��}ttjdz��D]o}|�|���5tj||��}tj|��}|�||��ddd��n#1swxYwY�pdS)Nr\)�protocol)	r
r��range�pickle�HIGHEST_PROTOCOL�subTest�dumps�loadsr)r�orig�proto�pickled�restoreds     r�test_uname_picklezPlatformTest.test_uname_pickles����~�����6�2�Q�6�7�7�	1�	1�E����u��-�-�
1�
1� �,�t�U�3�3��!�<��0�0��� � ��4�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1��	1�	1s�AB�B	�B	c���tj��}t|��}|�|dd�|��|�|dd�|dd���dS)Nr`)r
r�r�rr�s   r�test_uname_sliceszPlatformTest.test_uname_slices
sd���n������:�:������Q�Q�Q���*�*�*�����R�a�R��(�2�A�2�,�/�/�/�/�/rc�^�|�dtj��j��dS)Nr7)�assertInr
r��_fieldsrs r�test_uname_fieldszPlatformTest.test_uname_fieldss'���
�
�k�8�>�#3�#3�#;�<�<�<�<�<rc���tj�����}|�t	|��d��|�d|��dS)Nr�r7)r
r��_asdictrr�r�rs  r�test_uname_asdictzPlatformTest.test_uname_asdictsQ���n���&�&�(�(������S���1�%�%�%��
�
�k�3�'�'�'�'�'r)�win32�OpenVMSzuname -p not usedc��	tjddgd������}tj|��}n#t
tjf$rd}YnwxYw|�tj��j	|��dS)z|
        On some systems, the processor must match the output
        of 'uname -p'. See Issue 35967 for rationale.
        r�z-pT��textrFN)
�
subprocess�check_output�stripr
�_unknown_as_blank�OSError�CalledProcessErrorrr�r7)r�proc_res�expects   r�test_uname_processorz!PlatformTest.test_uname_processors���	�!�.����T�J�J�J�P�P�R�R�H��/��9�9�F�F����6�7�	�	�	��F�F�F�	���������)�)�3�V�<�<�<�<�<s�>A�A�A�winzwindows only testc��	tj��5}d|vr|d=d|d<dt_tj��\}}}}}}|�|d��d|d<dt_tj��\}}}}}}|�|d��ddd��n#1swxYwYdt_dS#dt_wxYw)N�PROCESSOR_ARCHITEW6432�foo�PROCESSOR_ARCHITECTURE�bar)r�EnvironmentVarGuardr
rr�r)r�environr'r*r-r1r4r7s        r�test_uname_win32_ARCHITEW6432z*PlatformTest.test_uname_win32_ARCHITEW6432&s&��
	)��.�0�0�

1�G�+�w�6�6�� 8�9�49��0�1�(,��%�EM�^�EU�EU�B���g�w���� � ��%�0�0�0�49��0�1�(,��%�EM�^�EU�EU�B���g�w���� � ��%�0�0�0�

1�

1�

1�

1�

1�

1�

1�

1�

1�

1�

1����

1�

1�

1�

1�%)�H�!�!�!��D�H�!�(�(�(�(s/�C�B
B+�C�+B/�/C�2B/�3C�Cc��tj��}tjdkr$|�t	|����dSdS)N�java)r
�java_verr;r��allrs  r�
test_java_verzPlatformTest.test_java_ver;sC����!�!���<�6�!�!��O�O�C��H�H�%�%�%�%�%�"�!rc�,�tj��}dSr	)r
�	win32_verrs  r�test_win32_verzPlatformTest.test_win32_ver@r9rc�`�tj��}tj��jdk�r}t	jdgd���}|���D]E}|�d��r.|����	��d}n�F|�
d|����|d�	d	��}|�	d	��}t|��t|��z
}|dkr|�d
g|z��|ddgkr|�
||��|�
|d
d��tjdkr|�|dd��dS|�
|dd��dSdS)N�Darwin�sw_versTr�zProductVersion:r�z failed to parse sw_vers output: r�.�0�10�16r\�rFrFrF�littler])�i386�x86_64�arm64�PowerPC)r
�mac_verr�r'r�r��
splitlines�
startswithr��split�failr��extendrr;�	byteorderr�)rrrk�line�real_ver�result_list�expect_list�len_diffs        r�test_mac_verzPlatformTest.test_mac_verCs����� � ���>���"�h�.�.� �,�i�[�t�D�D�D�F��)�)�+�+�
I�
I���?�?�#4�5�5��#�z�z�|�|�1�1�3�3�B�7�H��E���	�	�G�V�G�G�H�H�H��a�&�,�,�s�+�+�K�"�.�.��-�-�K��;�'�'�#�k�*:�*:�:�H��!�|�|��"�"�C�5�8�#3�4�4�4��t�T�l�*�*�� � ��k�:�:�:�

���S��V�\�2�2�2��}��(�(��
�
�c�!�f�&A�B�B�B�B�B�� � ��Q���3�3�3�3�3�=/�.r�darwinz
OSX only testc��tj��}|dkr)tj��}tjd��dStj|d���dS)Nr)�exitcode)�os�forkr
r��_exitr�wait_process)r�pidrvs   r�test_mac_ver_with_forkz#PlatformTest.test_mac_ver_with_forkgsU���g�i�i���!�8�8��#�%�%�D��H�Q�K�K�K�K�K�
� ��q�1�1�1�1�1�1rzDoes not apply to Emscriptenc���tj�tj��r<tj�tjdz��rtjdz}n_tjdkrCtj�tj��sddl}|�d��}ntj}t
j	|��tj}|�tj
|��tjddd���5|�t
j	��d��d	D]�\}}t#|d
��5}|�d|z��|���ddd��n#1swxYwY|�t
j	|���|����	ddd��n#1swxYwYd
}t#|d
��5}|�d|dz
z��|�d��ddd��n#1swxYwY|�t
j	||���d��dS)Nz.exer�rz
os.confstrTzmock 1.0)�create�return_value)rz1.0))s__libc_init)�libcrF)s	GLIBC_2.9)�glibcz2.9)s
libc.so.1.2.5)r�z1.2.5)slibc_pthread.so.1.2.5)r�z
1.2.5_pthread)rrT�wbs
[xxx%sxxx])�
executablei@�x�
s"GLIBC_1.23.4GLIBC_1.9GLIBC_1.21)�	chunksize)r�z1.23.4)r��path�isdirr;r��existsr
�_winapi�GetModuleFileName�libc_verr�TESTFN�
addCleanup�unlinkr�patchr�open�write�flush)	rr�r��filename�datar��fpr��fs	         r�
test_libc_verzPlatformTest.test_libc_verws����7�=�=���(�(�
	(�
�7�>�>�#�.��/�0�0�
	(���&�0�J�J�
�\�W�
$�
$�R�W�^�^�C�N�-K�-K�
$�
�N�N�N� �2�2�1�5�5�J�J���J���*�%�%�%��#�����	�(�(�3�3�3�
�Z��T�
�
K�
K�
K�	+�	+����X�.�0�0�/�B�B�B�#�

+�

+���h��(�D�)�)��R��H�H�]�T�1�2�2�2��H�H�J�J�J�������������������
� � ��!2�h�!G�!G�!G�!)�+�+�+�+�

+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�,�	�
�(�D�
!�
!�	>�Q�
�G�G�D�)�b�.�)�*�*�*�
�G�G�<�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�	
����*�8�y�I�I�I�,�	.�	.�	.�	.�	.sH�?G�-F�G�F�G�F�-G�G�G�31H0�0H4�7H4c��	�ddlm}|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d	����|�|d��|d
����|�|d	��|d����|�|d
��|d����|�|d��|d
����|�|d��|d
����|�|d
��|d����|�|d
��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d��|d����|�|d ��|d!����|�|d"��|d#����|�|d"��|d ����|�|d!��|d#����|�|d ��|d#����|�|d$��|d%����|�|d&��|d'����|�|d(��|d)����dS)*Nr)�_comparable_versionz1.2.3z1.2.10z1.2.3.4z1_2-3+4z1.2spamz1.2devz1.2alphaz1.2az1.2betaz1.2bz1.2cz1.2RCz1.2rcz1.2.0z1.2plz1.2pz1.5.1z1.5.2b2z3.10a�161z8.02z3.4jz
1996.07.12z3.1.1.6z3.2.pl0�2g6�11gz0.9z2.2z1.2z1.2.1z1.1z1.2.2z0.4z0.4.0z1.13++z5.5.kwz0.960923z	2.2beta29)r
r	r�
assertLess)r�Vs  r�test__comparable_versionz%PlatformTest.test__comparable_version�s|��5�5�5�5�5�5������7���Q�Q�w�Z�Z�0�0�0������'�
�
�A�A�h�K�K�0�0�0������9���q�q��|�|�4�4�4������)���a�a��k�k�2�2�2������(���Q�Q�z�]�]�3�3�3������(���Q�Q�v�Y�Y�/�/�/������*�
�
�q�q��|�|�4�4�4������&�	�	�1�1�V�9�9�-�-�-������)���a�a��i�i�0�0�0������&�	�	�1�1�V�9�9�-�-�-������&�	�	�1�1�W�:�:�.�.�.������&�	�	�1�1�W�:�:�.�.�.������'�
�
�A�A�g�J�J�/�/�/������'�
�
�A�A�g�J�J�/�/�/������'�
�
�A�A�g�J�J�/�/�/������'�
�
�A�A�f�I�I�.�.�.������'�
�
�A�A�i�L�L�1�1�1������'�
�
�A�A�e�H�H�-�-�-������6���A�A�f�I�I�.�.�.������&�	�	�1�1�\�?�?�3�3�3������)���a�a�	�l�l�3�3�3������%���!�!�E�(�(�+�+�+������%���!�!�E�(�(�+�+�+������%���!�!�G�*�*�-�-�-������%���!�!�G�*�*�-�-�-������%���!�!�E�(�(�+�+�+������'�
�
�A�A�g�J�J�/�/�/������%���!�!�G�*�*�-�-�-������%���!�!�G�*�*�-�-�-������(���Q�Q�x�[�[�1�1�1������*�
�
�q�q��~�~�6�6�6�6�6rc	��|�|j��d}d}tj�t
d|���5tj�t
d|���5dD]�\}}}tj�t
d|���5|���|�tjd�	��|��|�tj��|��ddd��n#1swxYwY��	ddd��n#1swxYwYddd��dS#1swxYwYdS)
N)r��hostnamez17.7.0z_Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64r�r�)�64bitrFr�)r�r))r�z
Darwin-17.7.0zDarwin-17.7.0-x86_64-i386-64bit))z10.13.6r�r�z
macOS-10.13.6zmacOS-10.13.6-x86_64-i386-64bitr�r\)r$)r�rrr��objectr
r)rr��archr��expected_terser�s      r�
test_macoszPlatformTest.test_macos�s?������)�*�*�*�#��
��
�Z�
�
�x��u�
�
E�
E�	D�	D�
�Z�
�
�x��d�
�
K�
K�	D�	D�	6�
D�
D�1�����Z�&�&�x��4;�'�=�=�D�D��%�%�'�'�'��$�$�X�%6�Q�%?�%?�%?��P�P�P��$�$�X�%6�%8�%8�(�C�C�C�	D�D�D�D�D�D�D�D�D�D�D����D�D�D�D��
D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�	D�	Ds[�(E�.0D(�A%D	�D(�D
�D(�D
�D(�E�(D,	�,E�/D,	�0E�E�Ec��|�|j��|���td�tjD����rmtj��}|�d|��|�d|��d|d<|�dtj����dS|�t��5tj��ddd��dS#1swxYwYdS)Nc3�TK�|]#}tj�|��V��$dSr	)r�r��isfile)�.0�fns  r�	<genexpr>z;PlatformTest.test_freedesktop_os_release.<locals>.<genexpr>�s0����L�L�b�r�w�~�~�b�!�!�L�L�L�L�L�Lr�NAME�ID�test�CPYTHON_TEST)
r�rr�r
�_os_release_candidates�freedesktop_os_releaser��assertNotIn�assertRaisesr�)rrvs  r�test_freedesktop_os_releasez(PlatformTest.test_freedesktop_os_release�sE������)�*�*�*��������L�L�H�,K�L�L�L�L�L�	2��2�4�4�D��M�M�&�$�'�'�'��M�M�$��%�%�%�#)�D�� ������/�1�1�
�
�
�
�
�
�"�"�7�+�+�
2�
2��/�1�1�1�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2�
2����
2�
2�
2�
2�
2�
2s�C:�:C>�C>c�V�tjt�����}|�|dd��|�|dd��|�d|��|�|dd��tjt�����}|�|dd��|�|dd	��|�|dd
��|�|dd��tjt�����}dd
d
ddddddddd�}|�||��|�t|d��d��dS)Nr�Fedorar�fedora�ID_LIKE�VERSION_CODENAMErF�Ubuntu�ubuntu�debian�focal�linux�Linuxzegg spam viking�double�singlezdouble'sz$`\'")rr�PRETTY_NAMEr)�EMPTY�DOUBLE_QUOTE�EMPTY_DOUBLE�SINGLE_QUOTE�EMPTY_SINGLE�QUOTES�SPECIALSr:r`)	r
�_parse_os_release�FEDORA_OS_RELEASEr�rr#�UBUNTU_OS_RELEASE�TEST_OS_RELEASEr�)rrvr�s   r�test_parse_os_releasez"PlatformTest.test_parse_os_release�s����)�*;�*F�*F�*H�*H�I�I������f��x�0�0�0�����d��X�.�.�.�����D�)�)�)�����0�1�2�6�6�6��)�*;�*F�*F�*H�*H�I�I������f��x�0�0�0�����d��X�.�.�.�����i��(�3�3�3�����0�1�7�;�;�;��)�/�*D�*D�*F�*F�G�G����"�(��$��$�� �!�
�
��	
����x�(�(�(�����T�*�-�.�.��2�2�2�2�2rN)0�__name__�
__module__�__qualname__rrr�skip_unless_symlinkr�requires_subprocessr!r%r(r+r.r2r5r8r@rBrwrzr�r�r�r�r�r�r�r��unittest�skipIfr;r
r��
skipUnlessr�r�r�r�r�r��
is_emscriptenr�cpython_onlyrrr%r?�rrrrGs�������*�*�*�&�&�&��"� �W� �"�"�E�E�#�"�#�"�E�
8�8�8�
 � � ����!�!�!�!�!�!�!�!�!�#�#�#�*�*�*�
*�*�*�
UB�UB�UB�n
�
�
�&�&�&�"/�/�/�7�7�7�6�6�6�
1�1�1�0�0�0�=�=�=�(�(�(�
�X�_�S�\�%9�9�;N�O�O� �W� �"�"�
=�
=�#�"�P�O�
=��X����0�0��7�7�9L�M�M�)�)�N�M�)�(&�&�&�
#�#�#�!4�!4�!4�H�X�����1�?�C�C�
2�
2�D�C�
2��X�_�W�*�,J�K�K�..�..�L�K�..�`
��!7�!7���!7�HD�D�D�62�2�2�$3�3�3�3�3rr�__main__)r�r�r�r
r�r;rErrr�test.supportrr<r=r>�TestCaserr@�mainrJrr�<module>rOs���	�	�	�	�����
�
�
�
���������
�
�
�
�����������������"�"�"�"�"�"���,
����*O3�O3�O3�O3�O3�8�$�O3�O3�O3�d�z����H�M�O�O�O�O�O��r