U
    aÊ¹jq  ã                   @   sJ   d Z ddlZddlZddlmZ ddlmZ ddlmZ G dd„ dƒZ	dS )	zinstall_scripts testsé    N)Úinstall_scripts)ÚDistributioné   )Úcontextsc                   @   s®   e Zd Zedddgidd�ZdZdZdZdd
d„Ze	j
jejdkdd�dd„ ƒZe	j
jejdkdd�dd„ ƒZe	j
jejdkdd�dd„ ƒZe	j
jejdkdd�dd„ ƒZd	S )ÚTestInstallScriptsÚfooÚconsole_scriptszfoo=foo:fooz0.0)ÚnameÚentry_pointsÚversionz%/usr/dummy-test-path/local/bin/pythonz/usr/bin/env dummy-test-pythonz6C:\Dummy Test Path\Program Files\Python 3.6\python.exeNc              	   C   s^   t | jƒ}d|_t|ƒ}||_|d k	r6| d¡}||_| ¡  t 	¡ � | 
¡  W 5 Q R X d S )Nzsetup.pyÚbuild_scripts)r   ÚsettingsÚscript_namer   Úinstall_dirÚget_finalized_commandÚ
executableÚensure_finalizedr   ÚquietÚrun)Úselfr   r   ÚdistÚcmdÚbs© r   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/setuptools/tests/test_install_scripts.pyÚ_run_install_scripts   s    


z'TestInstallScripts._run_install_scriptsÚwin32znon-Windows only)Úreasonc              
   C   sv   d| j  }| d| j ¡ | ¡ �@ |  t|ƒ¡ tt| d¡ƒddd��}| ¡ }W 5 Q R X W 5 Q R X ||ksrt‚dS )zt
        Ensure that shebang is not quoted on Unix when getting the Python exe
        from sys.executable.
        ú#!%s
úsys.executabler   Úrúutf-8©ÚencodingN)	Úunix_exeÚsetattrÚas_cwdr   ÚstrÚopenÚjoinÚreadlineÚAssertionError©r   ÚtmpdirZmonkeypatchÚexpectedÚfÚactualr   r   r   Ú!test_sys_executable_escaping_unix#   s    

z4TestInstallScripts.test_sys_executable_escaping_unixzWindows onlyc              
   C   sv   d| j  }| d| j ¡ | ¡ �@ |  t|ƒ¡ tt| d¡ƒddd��}| ¡ }W 5 Q R X W 5 Q R X ||ksrt‚dS )z‹
        Ensure that shebang is quoted on Windows when getting the Python exe
        from sys.executable and it contains a space.
        ú#!"%s"
r   úfoo-script.pyr    r!   r"   N)	Ú	win32_exer%   r&   r   r'   r(   r)   r*   r+   r,   r   r   r   Ú"test_sys_executable_escaping_win321   s    

z5TestInstallScripts.test_sys_executable_escaping_win32c              
   C   sl   d| j  }| ¡ �D |  t|ƒ| j ¡ tt| d¡ƒddd��}| ¡ }W 5 Q R X W 5 Q R X ||ksht‚dS )z‹
        Ensure that shebang on Unix is not quoted, even when
        a value with spaces
        is specified using --executable.
        r   r   r    r!   r"   N)Úunix_spaces_exer&   r   r'   r(   r)   r*   r+   ©r   r-   r.   r/   r0   r   r   r   Ú)test_executable_with_spaces_escaping_unix?   s    

z<TestInstallScripts.test_executable_with_spaces_escaping_unixc              
   C   st   d| j  }| ¡ �L |  t|ƒd| j  d ¡ tt| d¡ƒddd��}| ¡ }W 5 Q R X W 5 Q R X ||kspt‚dS )z�
        Ensure that shebang on Windows is quoted when
        getting a path with spaces
        from --executable, that is itself properly quoted.
        r2   ú"r3   r    r!   r"   N)r4   r&   r   r'   r(   r)   r*   r+   r7   r   r   r   Ú"test_executable_arg_escaping_win32M   s    

z5TestInstallScripts.test_executable_arg_escaping_win32)N)Ú__name__Ú
__module__Ú__qualname__Údictr   r$   r6   r4   r   ÚpytestÚmarkZskipifÚsysÚplatformr1   r5   r8   r:   r   r   r   r   r      s"   ý



r   )
Ú__doc__rA   r?   Z"setuptools.command.install_scriptsr   Zsetuptools.distr   Ú r   r   r   r   r   r   Ú<module>   s   