B
    18\	                 @   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re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_cmdassertFalseforceassertIsNone	build_dirfinalize_options
assertTrueassertEqual)selfcmd r   f/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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
   
executablebuild)sysr   scriptsr   DummyCommandr'   command_objr   )r   r!   r*   r)   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   r0   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 ]}| || qW 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>VERSION   )r   r   r   r   r   get_config_varsget_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/   r=   r   r   r   r   r      s   
r   c               C   s
   t tS )N)unittest	makeSuiter   r   r   r   r   
test_suitel   s    rC   __main__)__doc__r   rA   Zdistutils.command.build_scriptsr   distutils.corer   	distutilsr   distutils.testsr   Ztest.supportr   TempdirManagerLoggingSilencerTestCaser   rC   r>   r   r   r   r   <module>   s   \