B
    Ûö›\	  ã               @   sˆ   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 ddl	m
Z
 ddlmZ G dd	„ d	e
je
jejƒZd
d„ Zedkr„eeƒ ƒ dS )z*Tests for distutils.command.build_scripts.é    N)Úbuild_scripts)ÚDistribution)Ú	sysconfig)Úsupport)Úrun_unittestc               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚBuildScriptsTestCasec             C   sJ   |   dg ¡}|  |j¡ |  |j¡ | ¡  |  |j¡ |  |jd¡ d S )Nz/foo/bar)Úget_build_scripts_cmdZassertFalseÚforceZassertIsNoneZ	build_dirÚfinalize_optionsZ
assertTrueZassertEqual)ÚselfÚcmd© r   ú3lib/python3.7/distutils/tests/test_build_scripts.pyÚtest_default_settings   s    z*BuildScriptsTestCase.test_default_settingsc                sl   |   ¡ ‰ |   ¡ }|  ˆ ¡}|  |‡ fdd„|D ƒ¡}| ¡  | ¡  t |¡}x|D ]}|  ||¡ qTW d S )Nc                s   g | ]}t j ˆ |¡‘qS r   )ÚosÚpathÚjoin)Ú.0Úfn)Úsourcer   r   ú
<listcomp>"   s   z3BuildScriptsTestCase.test_build.<locals>.<listcomp>)ÚmkdtempÚwrite_sample_scriptsr   r
   Úrunr   ÚlistdirÚassertIn)r   ÚtargetÚexpectedr   ÚbuiltÚnamer   )r   r   Ú
test_build   s    




zBuildScriptsTestCase.test_buildc             C   s4   dd l }tƒ }||_tj|d|jd|jd< t|ƒS )Nr   é   )r   r	   Ú
executableZbuild)Úsysr   Úscriptsr   ZDummyCommandr"   Zcommand_objr   )r   r   r$   r#   Zdistr   r   r   r   +   s    z*BuildScriptsTestCase.get_build_scripts_cmdc             C   sP   g }|  d¡ |  |dd¡ |  d¡ |  |dd¡ |  d¡ |  |dd¡ |S )Nz
script1.pyz@#! /usr/bin/env python2.3
# bogus script w/ Python sh-bang
pass
z
script2.pyz8#!/usr/bin/python
# bogus script w/ Python sh-bang
pass
zshell.shz1#!/bin/sh
# bogus shell script w/ sh-bang
exit 0
)ÚappendÚwrite_script)r   Údirr   r   r   r   r   6   s    


z)BuildScriptsTestCase.write_sample_scriptsc             C   s2   t tj ||¡dƒ}z| |¡ W d | ¡  X d S )NÚw)Úopenr   r   r   ÚwriteÚclose)r   r'   r   ÚtextÚfr   r   r   r&   I   s    z!BuildScriptsTestCase.write_scriptc          	      sž   |   ¡ ‰ |   ¡ }|  ˆ ¡}|  |‡ fdd„|D ƒ¡}| ¡  t ¡  d¡}dtjd< z| ¡  W d |d k	rt|tjd< X t	 
|¡}x|D ]}|  ||¡ q†W d S )Nc                s   g | ]}t j ˆ |¡‘qS r   )r   r   r   )r   r   )r   r   r   r   W   s   z9BuildScriptsTestCase.test_version_int.<locals>.<listcomp>ZVERSIONé   )r   r   r   r
   r   Zget_config_varsÚgetZ_config_varsr   r   r   r   )r   r   r   r   Úoldr   r   r   )r   r   Útest_version_intP   s     





z%BuildScriptsTestCase.test_version_intN)	Ú__name__Ú
__module__Ú__qualname__r   r    r   r   r&   r1   r   r   r   r   r      s   
r   c               C   s
   t  t¡S )N)ÚunittestZ	makeSuiter   r   r   r   r   Ú
test_suitel   s    r6   Ú__main__)Ú__doc__r   r5   Zdistutils.command.build_scriptsr   Zdistutils.corer   Z	distutilsr   Zdistutils.testsr   Ztest.supportr   ZTempdirManagerZLoggingSilencerZTestCaser   r6   r2   r   r   r   r   Ú<module>   s   \