Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/distutils/tests/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/distutils/tests/__pycache__/test_build_ext.cpython-34.pyc

�
i f�F�@s(ddlZddlZddlmZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZddlmZddlmZmZmZmZddlZdd	lmZd
aGdd�dee
ej�Zd
d�Zedkr$eje��ndS)�N)�StringIO)�Distribution)�	build_ext)�	sysconfig)�TempdirManager�LoggingSilencer�copy_xxmodule_c�fixup_build_ext)�	Extension)�CompileError�DistutilsPlatformError�DistutilsSetupError�UnknownFileError)�supportFcs-eZdZ�fdd�Zdd�Z�fdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zejejdkd�dd��Zejejdkd�dd��Zejejdkd�dd ��Zd!d"�Z�S)#�BuildExtTestCasecs�tt|�j�|j�|_tjtjdd�f|_tjj|j�ddl	}|j
|_|j�|_
ddlm
}|j
|_
dS)Nr)r)�superr�setUp�mkdtemp�tmp_dir�sys�path�sys_path�append�site�	USER_BASE�
old_user_base�distutils.commandr)�selfrr)�	__class__��C/opt/alt/python34/lib64/python3.4/distutils/tests/test_build_ext.pyrszBuildExtTestCase.setUpc	
Cs�t|j�tjj|jd�}td|g�}tidd6|gd6�}|j|_t|�}t	|�|j|_
|j|_tj
}tjs�t�t_
nz|j�|j�Wd|t_
Xtr�|jdt�nt|�jaddl}x$dD]}|jt||��qW|j|jdd�d
�|j|jdd�d�|j|j�j�d�tjr�d}|j|j|�n|j |j!�|j!�|j |j"�|j"�dS)Nz
xxmodule.c�xx�name�ext_moduleszAlready tested in %sr�error�foo�new�roj����
��z/This is a template module just for instruction.)zerrorzfooznewr')#rr�osr�joinr
r�package_dirrr	�	build_lib�
build_tempr�stdoutr�verboser�ensure_finalized�run�ALREADY_TESTEDZskipTest�type�__name__r!�
assertTrue�hasattr�assertEqualr%r&ZdemoZHAVE_DOCSTRINGS�__doc__�assertIsInstanceZNullZStr)	rZxx_cZxx_ext�dist�cmd�
old_stdoutr!�attr�docrrr �test_build_ext(s<

		


	zBuildExtTestCase.test_build_extcs�tjd�|jdt_|jdtjdd�<ddl}|j|_ddlm	}|j|_t
t|�j�dS)Nr!r�)r)
rZunloadrrrrrrrrrr�tearDown)rrr)rrr rFQs
zBuildExtTestCase.tearDowncCs�tidd6�}t|�}tj}dt_ddlm}|jd�}d|d<z|j�Wd|t_|dkr�|d=n
||d<X|jt	|j
�d�dS)Nr!r"�sunosr)�_config_vars�Py_ENABLE_SHAREDrE)rrr�platformZdistutils.sysconfigrH�getr5Z
assertGreater�len�library_dirs)rr?r@�oldrHZold_varrrr �test_solaris_enable_shared\s		
	
z+BuildExtTestCase.test_solaris_enable_sharedcCs�ddl}tidd6�}t|�}dd�|jD�}|jd|�d|_tjj|j	d�}tjj|j	d	�}tj
|�tj
|�|j�|j||j�|j||j
�|j||j�dS)
Nrr!r"cSsg|]\}}}|�qSrr)�.0r"ZshortZlablerrr �
<listcomp>ws	z3BuildExtTestCase.test_user_site.<locals>.<listcomp>�userrE�lib�include)rrrZuser_options�assertInrRr.rr/r�mkdirr5rM�rpath�include_dirs)rrr?r@ZoptionsrSZinclrrr �test_user_siteqs	
	


zBuildExtTestCase.test_user_sitecCs�tddgdd�g}tidd6|d6�}t|�}|j�|jttf|j�tddgdd�g}tidd6|d6�}t|�}|j�|j�dS)	Nr%�xxx�optionalFr!r"r#T)r
rrr5�assertRaisesrrr6)r�modulesr?r@rrr �test_optional_extension�s


z(BuildExtTestCase.test_optional_extensioncCsCtddgdd�g}tidd6|d6�}t|�}|j�dd	lm}|j�}|j||j�|jd
d�}|j||j�t|�}d|_	|j�|j
|j	d
ddg�t|�}dtj|_
|j�|jd|j
�|jd|j
�t|�}dtj|_|j�|j
|jddg�t|�}d|_|j�|j
|jddg�t|�}d|_|j�|j
|jddg�t|�}d|_|j�|j
|jg�t|�}d|_|j�|j
|jddg�dS)Nr%rZr[Fr!r"r#r)rZ
plat_specificrEzmy_lib, other_lib lastlibZmy_libZ	other_libZlastlibzmy_lib_dir%sother_lib_dirZ
my_lib_dirZ
other_lib_dirzone%stwo�one�twozone,two�1z1 2�2)r_ra)r`ra)r
rr�finalize_options�	distutilsrZget_python_incrUrX�	librariesr<r.�pathseprMrWZdefineZundefZ	swig_opts)rr]r?r@rZ
py_includeZplat_py_includerrr �test_finalize_options�sL
	


	
	
	
	
z&BuildExtTestCase.test_finalize_optionscCs�t�}t|�}|j�|jt|jd�ddg}|jt|j|�dg}|jt|j|�dg}|jt|j|�didgd6dd6dd6fg}|j|�|d	}|j|t�|j|j	d�|j
t|d��didgd6dd6dd6ddgd
6fg}|jt|j|�ddg|d	dd
<|j|�|j|d	jdg�|j|d	j
dg�dS)Nr%�bar�foo-bar��foo.barZsourcesreZsomerrarb�3ZmacrosrE)rhzfoorh)rirj)rkrj)rarbrl)rarb)rl)rarb)rrrcr\r
Zcheck_extensions_listr>r
r<reZassertFalser;Zundef_macrosZ
define_macros)rr?r@Zexts�extrrr �test_check_extensions_list�s2	
	
		


z+BuildExtTestCase.test_check_extensions_listcCshtddgdd�g}tidd6|d6�}t|�}|j�|j|j�dg�dS)Nr%rZr[Fr!r"r#)r
rrr5r<Zget_source_files)rr]r?r@rrr �test_get_source_filess

z&BuildExtTestCase.test_get_source_filescCsIt�}t|�}d|_|j�|j�|j|jd�dS)NZunix)rr�compilerr5r6r<)rr?r@rrr �test_compiler_options		

z%BuildExtTestCase.test_compiler_optioncCs|j�}tjj|d�}|j|d�td|gdd�}tidd6|gd6�}t|�}t|�|j	�|j
t|j��d	�tjj|j
d
�|_tjj|j
d�|_tjj|j��}tj�}tj|�z'd	|_|j�|j�d}Wdtj|�X|jtjj|��tjd
�}	|j|j|	��tjj|�}
|j
|
|�d|_d|_|j�|j�d}|jtjj|��|j|j|	��tjj|�}
|j
|
|j�|jd�}idd6|_|jd�}tjj|�d}|j
||j�d	|_tjj|j��}tj�}tj|�z|jd�}Wdtj|�Xtjj|�d}tjj|�d}
|j
|
d�dS)Nzfoo.czvoid PyInit_foo(void) {}
r%r[Fr!r"r#rEZbuildZtemptr�
EXT_SUFFIX�build_pyrhrj���) rr.rr/Z
write_filer
rrr	r5r<rLZget_outputsrr1r2�realpath�getcwd�chdir�inplacer6r:�existsr�get_config_var�endswith�dirnamerp�get_finalized_commandr0�get_ext_fullpath�split)rrZc_filermr?r@Z
other_tmp_dirZold_wdZso_fileZ
ext_suffixZso_dirrsrZlastdirrrr �test_get_outputs s`



	
		
	
z!BuildExtTestCase.test_get_outputscCs�tjd�}t�}t|�}d|_idd6|j_ddg|j_tj	�}tj
j|ddd|�}|jd�}|j
||�d	|_tj
j|d
�|_tj
j|d
dd|�}|jd�}|j
||�|jd�}i|_dd
g|j_|jd
�}tj
j|d
ddd|�}|j
||�d|_|jd
�}tj
j|ddd|�}|j
||�dS)NrrrE�srcrjZlxmlz	lxml.htmlZetreez
lxml.etreerZtmpdirrsZtwistedztwisted.runner.portmapZrunnerZportmap)rrzrrrxZdistributionr0Zpackagesr.rvrr/r~r<r1r})rrmr?r@�curdirZwantedrrsrrr �test_ext_fullpath_s4				
	z"BuildExtTestCase.test_ext_fullpath�darwinztest only relevant for MacOSXcCs|jdd�dS)Nz==)�_try_compile_deployment_target)rrrr �test_deployment_target_default�sz/BuildExtTestCase.test_deployment_target_defaultcCs|jt|jdd�dS)N�>z10.1)r\rr�)rrrr �test_deployment_target_too_low�s	z/BuildExtTestCase.test_deployment_target_too_lowcCsrtjd�}|rndd�|jd�D�}|d	d7<djdd�|D��}|jd|�ndS)
N�MACOSX_DEPLOYMENT_TARGETcSsg|]}t|��qSr)�int)rP�xrrr rQ�s	zEBuildExtTestCase.test_deployment_target_higher_ok.<locals>.<listcomp>�.rEcss|]}t|�VqdS)N)�str)rP�irrr �	<genexpr>�szDBuildExtTestCase.test_deployment_target_higher_ok.<locals>.<genexpr>�<rt)rrzrr/r�)r�	deptargetrrr � test_deployment_target_higher_ok�sz1BuildExtTestCase.test_deployment_target_higher_okc
Cs�tj}|j�t_|jttd|�|dkr\tjjd�ritjd=qin
|tjd<tjj|jd�}t	|d��!}|j
tjd|��WdQXt
jd�}ttt|jd�dd���}|d	d
krd|}n
d|}td
|gdd|fg�}tid
d6|gd6�}|j|_t|�}|j|_|j|_yJtj}	tjs�t�t_nz|j�|j�Wd|	t_XWnt k
r�|j!d�YnXdS)N�environr�zdeptargetmodule.c�wz�                #include <AvailabilityMacros.h>

                int dummy;

                #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED
                #else
                #error "Unexpected target"
                #endif

            r�rr(rE�
z	%02d%01d0z
%02d%02d00r�Zextra_compile_argsz-DTARGET=%sr"r#z*Wrong deployment target during compilation)"r.r��copyZ
addCleanup�setattrrKrr/r�open�write�textwrap�dedentrrz�tuple�mapr�rr
rr0rr1r2rr3rr4rr5r6rZfail)
r�operator�targetZorig_environZdeptarget_c�fpZ
deptarget_extr?r@rArrr r��sJ	

(

			

z/BuildExtTestCase._try_compile_deployment_target)r9�
__module__�__qualname__rrDrFrOrYr^rgrnrorqr�r��unittestZ
skipUnlessrrJr�r�r�r�rr)rr rs 
)@0?''''
rcCs
tjt�S)N)r�Z	makeSuiterrrrr �
test_suite�sr��__main__) rr.�iorr�Zdistutils.corerZdistutils.command.build_extrrdrZdistutils.tests.supportrrrr	Zdistutils.extensionr
Zdistutils.errorsrrr
rr�Ztestrr7ZTestCaserr�r9Zrun_unittestrrrr �<module>s&""��