a
    ze	                     @   s   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 )    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   8/usr/lib/python3.9/distutils/tests/test_build_scripts.pytest_default_settings   s    z*BuildScriptsTestCase.test_default_settingsc                    sh   |    |   }|  }| | fdd|D }|  |  t|}|D ]}| || qRd 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&   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   s:   t tj||d}z|| W |  n
|  0 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 ur|tjd< n|d ur|tjd< 0 t	
|}|D ]}| || qd S )Nc                    s   g | ]}t j |qS r   r   r   r   r   r   r   W   s   z9BuildScriptsTestCase.test_version_int.<locals>.<listcomp>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*   r6   r   r   r   r   r      s   
r   c                   C   s
   t tS )N)unittestZ	makeSuiter   r   r   r   r   
test_suitel   s    r;   __main__)r   r:   Zdistutils.command.build_scriptsr   Zdistutils.corer   Z	distutilsr   Zdistutils.testsr   Ztest.supportr   ZTempdirManagerZLoggingSilencerZTestCaser   r;   r7   r   r   r   r   <module>   s   ^