add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
B

�/g^N:c@sxddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
Gdd�d�ZGdd�dej�Z
d	d
�ZdS)�N)�
HTTPException)�support)�BytesIOc@s�eZdZdZdZdZdZdZdZdZ	dZ
dd�Zdd	�Zd
d�Z
dd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�ZdS),�TestBase�N�ru���cCsX|jdkrt�|j�|_|jj|_|jj|_|jj|_|jj|_	|jj
|_
|jj|_dS�N)�codec�codecsZlookup�encoding�encode�decodeZstreamreader�readerZstreamwriter�writer�incrementalencoder�incrementaldecoder��self�r�3/usr/lib64/python3.7/test/multibytecodec_support.py�setUps





zTestBase.setUpcCs�g}x8|jD].}|�d�}|��}dd�|D�}|�|�qWxPt|�D]D\}}|�|�d}|�||�d��|jrH|�||�|�d�qHWdS)N�
cSsg|]}|d�qS)rr)Z.0�linerrrz
<listcomp>*sz-TestBase.test_chunkcoding.<locals>.<listcomp>r�utf-8)	�tstring�splitZpop�appendZzipr�assertEqual�
roundtriptestr)rZ
tstring_linesZbZlinesZlastZnative�utf8�urrr�test_chunkcoding$s
zTestBase.test_chunkcodingcCs�x�|jD]�\}}}t|t�r$|j}n|j}|r�|||�d}||jkr~|�t|�tkt|��|�||d||j	|||f�q�|�t|�tkt|��|�||d||j	|||f�q|�
t|||�qWdS)Nr�%a.decode(%r, %r)=%a != %a�%a.encode(%r, %r)=%a != %a)�
codectests�
isinstance�bytesrr�
assertTrue�type�strrr
�assertRaises�UnicodeError�rZsourceZschemeZexpected�funcZresultrrr�test_errorhandle2s$



zTestBase.test_errorhandlecCs0|jr|�d�d}|�|�|d�dd�dS)N�$encoding contains full ISO 10646 mapuଓଣୠ nd eggsZxmlcharrefreplacers&#2835;&#2851;&#2912; nd eggs)�has_iso10646�skipTestrr)r�srrr�test_xmlcharrefreplaceIs
zTestBase.test_xmlcharrefreplacecsj|jr|�d�ddlm��fdd�}t�d|�|jrF|j\}}nd}d}|�|�|d�d|�dS)	Nr.r��codepoint2namecs|t|t�std|��g}xP|j|j|j�D]:}t|��krV|�d�t|��q.|�dt|��q.Wd�|�|jfS)Nzdon't know how to handle %rz&%s;z&#%d;r)	r$�UnicodeEncodeError�	TypeError�objectZstart�end�ordr�join)�excZlZcr3rr�xmlcharnamereplaceYs
z>TestBase.test_customreplace_encode.<locals>.xmlcharnamereplaceztest.xmlcharnamereplaceu«ℜ» = 〈ሴ〉s*&laquo;&real;&raquo; = &lang;&#4660;&rang;)	r/r0Z
html.entitiesr4r	�register_error�xmlcharnametestrr)rr<ZsinZsoutrr3r�test_customreplace_encodeSs

z"TestBase.test_customreplace_encodecCs>dd�}t�d|�|�d|jdd�d}|�|d�dS)NcS�
d|jfS)Ns1234�r8�r;rrr�	myreplaceo�z7TestBase.test_callback_returns_bytes.<locals>.myreplace�test.cjktestZabcZdefrs
abc1234def)r	r=r�unmappedunicoder)rrCZencrrr�test_callback_returns_bytesnsz$TestBase.test_callback_returns_bytescsN�fdd�}t�d|�x0dddggdt�fD]�|�t|j|jd�q.WdS)Ncs
�|jfSrrArB�ZretrrrCvrDz7TestBase.test_callback_wrong_objects.<locals>.myreplacerEr��)r	r=r7r)r6rrF�rrCrrHr�test_callback_wrong_objectsus
z$TestBase.test_callback_wrong_objectscCs^dd�}t�d|�|�|�d|jdd�d�dd�}t�d|�|�t|j|jd�dS)NcSsdt|j�fS)N�x)�intr8rBrrrrCrDz4TestBase.test_callback_long_index.<locals>.myreplacerE�abcd�efgh)s	abcdxefgh�	cSsdtjdfS)NrMr)�sysZmaxsizerBrrrrC�rD)r	r=rrrFr)�
IndexErrorrKrrr�test_callback_long_index~s
z!TestBase.test_callback_long_indexcC�,dd�}t�d|�|�t|j|jd�dS)NcS�dS)N)rMNrrBrrrrC�rDz4TestBase.test_callback_None_index.<locals>.myreplacerE)r	r=r)r6rrFrKrrr�test_callback_None_index��z!TestBase.test_callback_None_indexcs@�fdd��d�_t�d��|�|�d|jdd�d�dS)Ncs*�jdkr�jd8_dSd|jfSdS)Nrr)�REPLACEDrZTERMINAL)�limitr8rB�rCrrrC�s
z8TestBase.test_callback_backward_index.<locals>.myreplacerJrErOrP)s4abcdREPLACEDabcdREPLACEDabcdREPLACEDabcdTERMINALefghrQ)rZr	r=rrrFrrr[r�test_callback_backward_index�sz%TestBase.test_callback_backward_indexcCs6dd�}t�d|�|�|�d|jdd�d�dS)NcSsd|jdfS)NrYrIrArBrrrrC�rDz7TestBase.test_callback_forward_index.<locals>.myreplacerErOrP)sabcdREPLACEDghrQ)r	r=rrrFrKrrr�test_callback_forward_index�sz$TestBase.test_callback_forward_indexcCrU)NcSrV)N)ZTERMidrrBrrrrC�rDz:TestBase.test_callback_index_outofbound.<locals>.myreplacerE)r	r=r)rSrrFrKrrr�test_callback_index_outofbound�rXz'TestBase.test_callback_index_outofboundcCs�t�d�}x�dgttdd��dddddgD]v}|t|jd��}t�}|��}x:|dk	rh|�|�}n|��}|svP|�|�}|�	|�qTW|�
|��|jd	�q.WdS)
Nrr�!�@����r)r	�	getreader�list�rangerrr�readr�writer�getvalue)r�
UTF8Reader�sizehint�istream�ostreamZencoder�data�errr�test_incrementalencoder�s

z TestBase.test_incrementalencodercCs�t�d�}x�ddgttdd��ddddd	gD]f}t|jd
�}|t��}|��}x*|�|�}|shPqV|�|�}|�	|�qVW|�
|��|jd�q0WdS)Nr�����rr_r`rarbrcrdr)r	�	getwriterrfrgrrrrhrrirrj)r�
UTF8WriterrlrmrnZdecoderrorrrr�test_incrementaldecoder�s



z TestBase.test_incrementaldecodercCs�|j}|��}|�t|j|d�d|_|�|�|d�d�|��dd�}t�	d|�d|_|�|�|d�d�d|_|�|�|d�d�dS)NTZignore�cSr@)NZcalledrArBrrr�tempreplace�rDzDTestBase.test_incrementalencoder_error_callback.<locals>.tempreplaceztest.incremental_error_callbackscalled)
rFrr)r5r�errorsr�resetr	r=)rZinvrprwrrr�&test_incrementalencoder_error_callback�sz/TestBase.test_incrementalencoder_error_callbackcCs�t�d�}x�dD]�}x�ddgttdd��dddd	d
gD]t}|�t|jd��}|t��}t||�}x0||�}|svP|dkr�|�|�qh|�	|�qhW|�
|��|jd�q:WqWdS)
Nr�rhZreadline�	readlinesrrrr_r`rarbrcrdrr|)r	rsrfrgr
rr�getattr�
writelinesrirrj)rrt�namerlrmrnr,rorrr�test_streamreader�s



zTestBase.test_streamreaderc	Cs�d}t�d�}x�|D]�}x�dgttdd��ddddd	gD]�}|t|jd��}|�t��}t||�}x@|dk	r|||�}n|�}|s�P|d
kr�|�|�qj|�	|�qjW|�
|��|jd�q<WqWdS)Nr{rrr_r`rarbrcrdr|r)r	rerfrgrrrr}r~rirrj)	rZ	readfuncsrkrrlrmrnr,rorrr�test_streamwriter�s$



zTestBase.test_streamwritercCst�}|�|�}|��dSr)rrry)rZstreamrrrr�"test_streamwriter_reset_no_pendings
z+TestBase.test_streamwriter_reset_no_pendingc	Cs&|��}|�t��
|`WdQRXdSr)rr)ZAttributeErrorrx)rrprrr�$test_incrementalencoder_del_segfaultsz-TestBase.test_incrementalencoder_del_segfault)�__name__�
__module__�__qualname__r
rrr#rr/r>rFrr r-r2r?rGrLrTrWr\r]r^rqrurzr�r�r�r�rrrrrs6

	

rc@s\eZdZgZgZgZgZdd�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�Zd
d�Z
dd�ZdS)�TestBase_Mappingc	Cs>y|����Wn(ttfk
r8|�d|j�YnXdS)NzCould not retrieve )�open_mapping_fileZcloseZOSErrorrr0�
mapfileurlrrrrr$szTestBase_Mapping.setUpcCst�|j�Sr)rZopen_urlresourcer�rrrrr�*rDz"TestBase_Mapping.open_mapping_filecCs"|j�d�r|��n|��dS)Nz.xml)r�Zendswith�_test_mapping_file_ucm�_test_mapping_file_plainrrrr�test_mapping_file-s
z"TestBase_Mapping.test_mapping_filec		Cs8dd�}i}|����}�x|D�]}|s,P|�d�d����}t|�dkrPq t|d�}|dkrtt|d@g�}nz|dkr�t|d	?|d
?d@|d?d@|d@g�}nH|dkr�t|d
?|d?d@|d@g�}n |d
kr t|d?|d@g�}nq ||d�}t|�dks ||k�rq |||<|�||�q WWdQRXdS)Nc	Ssd�tttt|�d����S)Nrz+)r:Zmap�chr�evalr)r1rrrZ<lambda>4rvz;TestBase_Mapping._test_mapping_file_plain.<locals>.<lambda>z#rrIii�ii�iirbri��)r�rZstripZlenr�r%r9�
_testpoint)	rZunichrsZurt_wa�frroZcsetval�csetch�unichrrrr�3s4z)TestBase_Mapping._test_mapping_file_plainc	Csb|���}|��}WdQRXt�d|�}x4|D],\}}tt|d��}t�|�}|�||�q.WdS)Nz'<a u="([A-F0-9]{4})" b="([0-9A-F ]+)"/>r�)	r�rh�reZfindallr�rNr%Zfromhexr�)rr�ZucmdataZucZuniZcodedr�Zcodechrrrr�Ts

z'TestBase_Mapping._test_mapping_file_ucmcCsx|jD]}|j|�qWdSr)�supmapsr�)rZmappingrrr�test_mapping_supplemental]sz*TestBase_Mapping.test_mapping_supplementalcCsH||f|jkr"|�|�|j�|�||f|jkrD|�t||j�|�dSr)�pass_enctestrrr
�pass_dectestr()rr�r�rrrr�aszTestBase_Mapping._testpointcCs�x�|jD]�\}}}t|t�r$|j}n|j}|r�t|t�r|||j|�}|�t|�tkt|��|�	||d||j|||f�q�||j|�}|�t|�tkt|��|�	||d||j|||f�q|�
t||j|�qWdS)Nr!r")r#r$r%rrr
r&r'r(rr)r*r+rrrr-gs&



z!TestBase_Mapping.test_errorhandleN)r�r�r�r�r�r�r#rr�r�r�r�r�r�r-rrrrr�s!	r�c	Csvtj�tj�t�d�}ttj�||d�d��}|��}WdQRXttj�||d�d��}|��}WdQRX||fS)NZcjkencodingsz.txtZrbz	-utf8.txt)�osZpathr:ZdirnameZ__file__Zopenrh)rZdirr�Zencodedrrrr�load_teststringsr�)r	r�r�rRZunittestZhttp.clientrZtestrZiorrZTestCaser�r�rrrrZ<module>sa