add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
U

��_�c@s�ddlZddlmZmZmZmZmZmZddlZddl	Z	ddl
Z
ddlZddlZGdd�dej
�ZGdd�d�ZGdd�deej
�ZGd	d
�d
eej
�Zedkr�e��dS)�N)�TESTFN�unlink�unload�rmtree�
script_helper�captured_stdoutc@s|eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�MiscSourceEncodingTestcCs(|�d�d�d�|�d�d�d�dS)Nu
Питон�utf-8s
Питонu\Пs\П)�assertEqual�encode��self�r
�1/usr/lib64/python3.8/test/test_source_encoding.py�test_pep263
s��z"MiscSourceEncodingTest.test_pep263cCs.tddd�}i}t||�|�|dd�dS)Ns
# coding: utf-8
u = 'ó'
�dummy�execZuuó��compilerr	�r�c�dr
r
r�test_compilestrings
z)MiscSourceEncodingTest.test_compilestringc
CsTztddd�Wn6tk
rF}z|�|j�d�d�W5d}~XYn
X|��dS)Ns# coding: cp932
print '�N'rrZ
uprint '年')r�SyntaxErrorr	Ztext�rstripZfail)rZvr
r
r�test_issue2301s
&z%MiscSourceEncodingTest.test_issue2301cCs.tddd�}i}t||�|�|dd�dS)Nu# coding=latin-1
Æ = 'Æ'rruÆrrr
r
r�test_issue4626&s
z%MiscSourceEncodingTest.test_issue4626cCsjtddd�}i}t||�|�|d|d�|�t|d�t|d��|�t|d�t|d��dS)Nua, b = '𐄏', '\U0001010F'rr�aZb)rrr	ZlenZasciirr
r
r�test_issue3297,s
z%MiscSourceEncodingTest.test_issue3297cCs |�ttd�|�ttd�dS)Ns� s� )�assertRaisesrZevalrr
r
r�test_issue78204sz%MiscSourceEncodingTest.test_issue7820cCsRtjtjtj�tj�t�d�gtj	d�}|�
�d}|�|jd�|�
d|�dS)Nzcoding20731.py)ZstderrirsSyntaxError)�
subprocessZPopen�sysZ
executable�os�path�join�dirname�__file__ZPIPEZcommunicater	Z
returncodeZassertNotIn)rZsubZerrr
r
r�
test_20731?s���z!MiscSourceEncodingTest.test_20731c	Cs�tddd�tddd�tddd�|�td��tddd�W5QRX|�td��td	dd�W5QRX|�td
��td	dd�W5QRX|�td��tddd�W5QRX|�td
��tddd�W5QRXdS)Ns# -*- coding: iso-8859-15 -*-
rrs
s# -*- coding: utf-8 -*-
Zfakes# -*- coding: fake -*-
ziso-8859-15s!# -*- coding: iso-8859-15 -*-
ZBOMs# -*- coding: fake -*-
)rZassertRaisesRegexrrr
r
r�test_error_messageHs&��z)MiscSourceEncodingTest.test_error_messagecC�d}|�|�dS)NZ
bad_coding��verify_bad_module�r�module_namer
r
r�test_bad_codingY�z&MiscSourceEncodingTest.test_bad_codingcCr))NZbad_coding2r*r,r
r
r�test_bad_coding2]r/z'MiscSourceEncodingTest.test_bad_coding2c	Csd|�ttd|�tj�t�}tj�||d�}t|d��}|�	�}W5QRX|�tt
||d�dS)Nztest.�.pyZrbr)rr�
__import__r"r#r%r&r$�openZreadr)rr-r#�filename�fpZbytesr
r
rr+asz(MiscSourceEncodingTest.verify_bad_modulecCs"i}td|�|�|dd�dS)Ns# coding: cp949
a = "��"
ruぇ)rr	)rrr
r
r�test_exec_valid_codingjs
z-MiscSourceEncodingTest.test_exec_valid_codingc	Cs�tt�td}t|ddd�}tj�dtj�zP|�2|�
d	�|�
d
�|�
d�|�
dd
�W5QRXt��t
t�W5tjd=t|�t|d�t|d�tt�t	d�XdS)Nr1ZwZcp1252)ZencodingrrZoZ__pycache__z# -*- coding: cp1252 -*-
z'''A short string
z'''
z'A very long string %s'
A�XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)rrr3r!r#Zinsertr"Zcurdirrr�write�	importlibZinvalidate_cachesr2)rr4Zfr
r
r�test_file_parseos$


z&MiscSourceEncodingTest.test_file_parsec	CsXd�d�}|�t��}t|dd�W5QRXd}|j|jjd�|�|jjdd�dS)Nu# coding: ascii
☃rz<string>rzN'ascii' codec can't decode byte 0xe2 in position 16: ordinal not in range(128)r)Zmsg)r
rrrZ
assertTrueZ	exceptionZargsZ
startswith)rZinputr�expectedr
r
r�test_error_from_string�s

�z-MiscSourceEncodingTest.test_error_from_stringN)�__name__�
__module__�__qualname__rrrrrrr'r(r.r0r+r6r9r;r
r
r
rrs
		rc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�AbstractSourceEncodingTestcC�d}|�|d�dS)Nsprint(ascii("ä"))
�'\xe4'��check_script_output�r�srcr
r
r�test_default_coding�r/z.AbstractSourceEncodingTest.test_default_codingcCr@)Ns&#coding:iso8859-15
print(ascii("ä"))
�'\xc3\u20ac'rBrDr
r
r�test_first_coding_line��z1AbstractSourceEncodingTest.test_first_coding_linecCr@)Ns(#
#coding:iso8859-15
print(ascii("ä"))
rGrBrDr
r
r�test_second_coding_line��z2AbstractSourceEncodingTest.test_second_coding_linecCr@)Ns*#
#
#coding:iso8859-15
print(ascii("ä"))
rArBrDr
r
r�test_third_coding_line�sz1AbstractSourceEncodingTest.test_third_coding_linecCr@)Ns5#coding:iso8859-15
#coding:latin1
print(ascii("ä"))
rGrBrDr
r
r�test_double_coding_line�sz2AbstractSourceEncodingTest.test_double_coding_linecCr@)Ns4#coding:iso8859-15 coding:latin1
print(ascii("ä"))
rGrBrDr
r
r�test_double_coding_same_line�rIz7AbstractSourceEncodingTest.test_double_coding_same_linecCr@)Ns)#coding:iso-8859-15 �
print(ascii("ä"))
rGrBrDr
r
r�test_first_non_utf8_coding_line�rIz:AbstractSourceEncodingTest.test_first_non_utf8_coding_linecCr@)Ns*
#coding:iso-8859-15 �
print(ascii("ä"))
rGrBrDr
r
r� test_second_non_utf8_coding_line�rKz;AbstractSourceEncodingTest.test_second_non_utf8_coding_linecCr@)Nsprint(ascii("ä"))
rArBrDr
r
r�
test_utf8_bom�r/z(AbstractSourceEncodingTest.test_utf8_bomcCr@)Ns$#coding:utf-8
print(ascii("ä"))
rArBrDr
r
r�"test_utf8_bom_and_utf8_coding_line�rIz=AbstractSourceEncodingTest.test_utf8_bom_and_utf8_coding_lineN)
r<r=r>rFrHrJrLrMrNrOrPrQrRr
r
r
rr?�sr?c@�eZdZdd�ZdS)�BytesSourceEncodingTestc	Cs<t��}t|�W5QRX|���d�}|�|��|�dS)NZlatin1)rrZgetvaluer
r	r)rrEr:Zstdout�outr
r
rrC�sz+BytesSourceEncodingTest.check_script_outputN�r<r=r>rCr
r
r
rrT��rTc@rS)�FileSourceEncodingTestc
Csbt���>}tj�|d�}t|d��}|�|�W5QRXt�|�}W5QRX|�	|j
��|�dS)Nztest.pyZwb)�tempfileZTemporaryDirectoryr"r#r$r3r7rZassert_python_okr	rUr)rrEr:ZtmpdZfnr5Zresr
r
rrC�s
z*FileSourceEncodingTest.check_script_outputNrVr
r
r
rrX�rWrXZ__main__)ZunittestZtest.supportrrrrrrr8r"r!r rYZTestCaserr?rTrXr<Zmainr
r
r
rZ<module>s :