o
    5‘ði’  ã                   @   s  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Zejdd�dd„ ƒZ	dd	„ Z
d
d„ Zejjddd�ejjeƒ  dd�ej ddejdejjddd�d�ejdejjddd�d�ejdejjddd�d�ejdejjddd�d�ejdejjdd�d�g¡dd„ ƒƒƒZdd„ ZdS )é    N)ÚURLError)ÚurlopenT)Úautousec                 C   s.   |   g d¢¡ ¡ }|tjkrt d¡ dS dS )zY
    pytest_virtualenv may not work. if it doesn't, skip these
    tests. See #1284.
    )Úpythonú-czimport sys; print(sys.prefix)z/virtualenv is broken (see pypa/setuptools#1284)N)ÚrunÚstripÚsysÚprefixÚpytestÚskip)ÚvenvÚvenv_prefix© r   ú_/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/tests/test_virtualenv.pyÚpytest_virtualenv_works
   s   
ÿr   c                 C   s    ddddt |ƒg}|  |¡ dS )zC
    Check setuptools can be installed in a clean environment.
    r   ú-mÚpipÚinstallN)Ústrr   )Úvenv_without_setuptoolsÚsetuptools_wheelÚcmdr   r   r   Útest_clean_env_install   s   r   c                   C   s:   t j dd¡sz	tddd� W dS  ty   Y dS w dS )NÚNETWORK_REQUIREDFzhttps://pypi.orgé   )ÚtimeoutT)ÚosÚenvironÚgetr   r   r   r   r   r   Úaccess_pypi   s   üþr    z*platform.python_implementation() == "PyPy"zChttps://github.com/pypa/setuptools/pull/2865#issuecomment-965834995)Úreasonz
no networkÚpip_versionzpip<20.1zsys.version_info >= (3, 12)z-pip 23.1.2 required for Python 3.12 and later)Úmarkszpip<21zpip<22zpip<23z,https://github.com/pypa/pip/archive/main.zipz#2975c              	   C   sœ   |}|  g d¢¡ | dur|  ddddd| dg¡ t tj¡� |  g d	¢¡ W d  ƒ n1 s1w   Y  |  ddt|ƒg¡ |  ddd
dt|ƒg¡ dS )z7
    Check pip can upgrade setuptools from source.
    )r   r   ú-UÚwheelNr   r   r   r   r$   z--retries=1)r   r   zimport setuptoolsz--no-cache-dirz	--upgrade)r   r   ÚraisesÚ
subprocessÚCalledProcessErrorr   )r"   r   r   Úsetuptools_sdistr   r   r   r   Útest_pip_upgrade_from_source)   s   5þr*   c                 C   s   |j j}| jg d¢|d� dS )zP
    Quick and dirty test to ensure all external dependencies are vendored.
    )r   zsetup.pyz--help)ÚcwdN)ÚconfigÚrootdirr   )Ú	bare_venvÚrequestÚsetuptools_dirr   r   r   Útest_no_missing_dependenciesl   s   r1   )r   r'   r	   Úurllib.errorr   Úurllib.requestr   r   Úfixturer   r   r    ÚmarkÚskipifÚparametrizeÚparamÚxfailr*   r1   r   r   r   r   Ú<module>   sl    


þþþþþþþþþþâþ&