U
    ui                     @   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   D/tmp/pip-unpacked-wheel-9osl9suo/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   


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