U
    aÊ¹j’  ã                   @   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)Zautousec                 C   s,   |   dddg¡ ¡ }|tjkr(t d¡ 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)ÚvenvZvenv_prefix© r   ú_/var/www/html/bwave/python/venv/lib/python3.8/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¡s6ztddd� W n tk
r4   Y dS X dS )NZ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)Zmarkszpip<21zpip<22zpip<23z,https://github.com/pypa/pip/archive/main.zipz#2975c              	   C   sŽ   |}|  ddddg¡ | dk	r6|  ddddd| dg¡ t tj¡� |  dd	d
g¡ W 5 Q R X |  ddt|ƒg¡ |  ddddt|ƒg¡ dS )z7
    Check pip can upgrade setuptools from source.
    r   r   z-UÚwheelNr   r   z--retries=1r   zimport setuptoolsz--no-cache-dirz	--upgrade)r   r
   ZraisesÚ
subprocessÚCalledProcessErrorr   )r   r   r   Zsetuptools_sdistr   r   r   r   Útest_pip_upgrade_from_source)   s    5r#   c                 C   s    |j j}| jdddg|d� dS )zP
    Quick and dirty test to ensure all external dependencies are vendored.
    r   zsetup.pyz--help)ÚcwdN)ÚconfigÚrootdirr   )Z	bare_venvÚrequestZsetuptools_dirr   r   r   Útest_no_missing_dependenciesl   s    r(   )r   r!   r   Úurllib.errorr   Úurllib.requestr   r
   Zfixturer   r   r   ÚmarkZskipifZparametrizeÚparamZxfailr#   r(   r   r   r   r   Ú<module>   sj   


þþþþþþþþþþâþ&