o
    JAf	                     @   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rDee  dS 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   9/usr/lib/python3.10/distutils/tests/test_build_scripts.pytest_default_settings   s   z*BuildScriptsTestCase.test_default_settingsc                    sh   |    |   }|  }| | fdd|D }|  |  t|}|D ]}| || q)d S )Nc                       g | ]	}t j |qS r   ospathjoin.0fnsourcer   r   
<listcomp>"       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   s8   t tj||d}z|| W |  d S |  w )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r9|tjd< n
|d urC|tjd< w t	
|}|D ]}| || qKd S )Nc                    r   r   r   r   r   r   r   r   W   r   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,   r8   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__)__doc__r   r<   Zdistutils.command.build_scriptsr   Zdistutils.corer   Z	distutilsr   Zdistutils.testsr   Ztest.supportr   ZTempdirManagerZLoggingSilencerZTestCaser   r=   r9   r   r   r   r   <module>   s     ^