
#þîh’  ã               @   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 j d d e j d d e j j d d d ƒƒe j d d e j j d d d ƒƒe j d d e j j d d d ƒƒe j d d e j j d d d ƒƒe j d d e j j d d ƒ ƒg ƒ d d „  ƒ ƒ ƒ Z d d „  Z d S)é    N)ÚURLError)ÚurlopenZautouseTc             C   s>   |  j  d d d g ƒ j ƒ  } | t j k r: t j d ƒ d S)zY
    pytest_virtualenv may not work. if it doesn't, skip these
    tests. See #1284.
    Úpythonz-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   úF/tmp/pip-build-zijwfla7/setuptools/setuptools/tests/test_virtualenv.pyÚpytest_virtualenv_works
   s    r   c             C   s,   d d d d t  | ƒ g } |  j | ƒ d S)zC
    Check setuptools can be installed in a clean environment.
    r   z-mÚpipÚinstallN)Ústrr   )Úvenv_without_setuptoolsÚsetuptools_wheelÚcmdr   r   r   Útest_clean_env_install   s    r   c               C   sF   t  j j d d ƒ sB y t d d d ƒWn t k
 rA d SYn Xd S)NZNETWORK_REQUIREDFzhttps://pypi.orgÚtimeouté   T)ÚosÚenvironÚgetr   r   r   r   r   r   Úaccess_pypi   s    	r   z*platform.python_implementation() == "PyPy"ÚreasonzChttps://github.com/pypa/setuptools/pull/2865#issuecomment-965834995z
no networkÚpip_versionzpip<20.1Zmarkszsys.version_info >= (3, 12)z-pip 23.1.2 required for Python 3.12 and laterzpip<21zpip<22zpip<23z,https://github.com/pypa/pip/archive/main.zipz#2975c             C   s¿   | } | j  d d d d g ƒ |  d k	 rM | j  d d d d d |  d g ƒ t j t j ƒ � | j  d d	 d
 g ƒ Wd QRX| j  d d t | ƒ g ƒ | j  d d d d t | ƒ g ƒ d S)z7
    Check pip can upgrade setuptools from source.
    r   r   z-UÚwheelNr   z-mz--retries=1z-cz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)ÚconfigZ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>   sN   										0