add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

�Wc�4cs��dZddlZddlmZddlmZdZd�ZGd�d	e�ZGd
�de�Z	Gd�de�Z
d
�ZGd�de�ZdS)�	TestSuite�N�)�case)�utilTcs6�t||d��}|�dS)Nc��dS�N�r��'/usr/lib64/python3.12/unittest/suite.pyz<lambda>z!_call_if_exists.<locals>.<lambda>s���r)�getattr)�parentZattrZfunc�   r	�_call_if_existsr
s���6�4���.�D��D�F�F�F�FrcsZ�eZdZdZdZdd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�ZdS)�
BaseTestSuitezNA simple test suite that doesn't provide class or module shared fixtures.
    TrcsF�g|_d|_|j|�dS�Nr)�_tests�_removed_tests�addTests)�self�tests�  r	�__init__zBaseTestSuite.__init__s&���������
�
�e����rcsh�dtj|j��dt|��d�S)Nz<z tests=�>)r�strclass�	__class__�list�r� r	�__repr__zBaseTestSuite.__repr__s*���"&�-�-����"?�"?�"?��d����L�Lrcsx�t||j�stSt|�t|�kSr)�
isinstancerZNotImplementedr)rZotherrr	�__eq__zBaseTestSuite.__eq__s,���%����0�0�!�!��D�z�T�%�[�(�(rcs0�t|j�Sr)�iterrrrr	�__iter__zBaseTestSuite.__iter__"s���D�K�K� � rcsX�|j}|D]}|s�||j�z
}�|Sr)r�countTestCases)rZcases�testrr	r"zBaseTestSuite.countTestCases%s<���#�#���	/�	/�D��t����,�,�.�.����rcs0�t|�s(tdjt|����t	|t
�r1t
|tjtf�r
td��|jj|�dS)Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest())Zcallable�	TypeErrorZformatZreprrZtypeZ
issubclassrZTestCaserrZappend�rr#rr	�addTestzBaseTestSuite.addTest,s~����~�~��0�7�7��T�
�C�D�D��d�D�!�!�j��26�-�-��1K�'M�'M��?�@�
@������4� � � � rcsv�t|t�r
td��|D]}|j|��dS)Nz0tests must be an iterable of tests, not a string)r�strr$r&)rrr#rr	rzBaseTestSuite.addTests6sF���e�S�!�!��N�O�O��	�	�D��L�L�����	�	rcs��t|�D]<\}}|jr|S||�|js�+|j|��>|Sr)�	enumerate�
shouldStop�_cleanup�_removeTestAtIndex)r�result�indexr#�    r	�runzBaseTestSuite.run<s_��$�T�?�	/�	/�K�E�4�� � � ���
�
�D��L�L��}�}�}���'�'��.�.�.��
rcs��	|j|}t|d�r$|xj|j�z
c_d|j|<dS#t$rYdSwxYw)z2Stop holding a reference to the TestCase at index.r"N)rZhasattrrr"r$)rr-r#rr	r+z BaseTestSuite._removeTestAtIndexEs}��
	&��;�;�u�%�D��t�-�.�.��#�#�#�t�':�':�'<�<�#�#�!%�D�K�K�������	�	�	��D�D�	���s�A�
A%�$A%cs&�|j|i|��Sr�r/)rZargsZkwdsrr	�__call__zBaseTestSuite.__call__Ss���t�x�x��&��&�&�&rcs4�|D]}|j��dS)�7Run the tests without collecting errors in a TestResultN)�debugr%rr	r3zBaseTestSuite.debugVs(���	�	�D��J�J�L�L�L�	�	rN)r)�__name__�
__module__�__qualname__�__doc__r*rrrr!r"r&rr/r+r1r3rrr	rrs����������H�����
M�M�M�)�)�)�
!�!�!����!�!�!�������&�&�&�'�'�'�����rrcsR�eZdZdZd
d�Zd�Zd�Zd�Zd�Z	dd	�Z		dd
�Z
d�Zd�ZdS)ra�A test suite is a composite test consisting of a number of TestCases.

    For use, create an instance of TestSuite, then add test case instances.
    When all tests have been added, the suite can be passed to a test
    runner, such as TextTestRunner. It will run the individual test cases
    in the order in which they were added, aggregating the results. When
    subclassing, do not forget to call the base class constructor.
    FcsV�d}t|dd�dur	dx|_}t|�D]�\}}|jrn�t	|�rs|j||�|j
||�|j||�|j|_	t|jdd�st|dd�r��|s
||�n|j�|js��|j|���|r,|jd|�|j|�d|_|S)NF�_testRunEnteredT�_classSetupFailed�_moduleSetUpFailed)r
r8r(r)�_isnotsuite�_tearDownPreviousClass�_handleModuleFixture�_handleClassSetUpr�_previousTestClassr3r*r+�_handleModuleTearDown)rr,r3ZtopLevelr-r#�      r	r/z
TestSuite.runfs9�����6�,�e�4��=�=�04�4�F�"�X�$�T�?�	/�	/�K�E�4�� � � ����4� � ��+�+�D�&�9�9��)�)�$��7�7��&�&�t�V�4�4�,0�N�N��)��D�N�N�,?��G�G��F�$8�%�@�@���5���V�����
�
����}�}�}���'�'��.�.�.��8��'�'��f�5�5��&�&�v�.�.�%*�F�"��
rcsD�t�}|j|d�dS)r2TN)�_DebugResultr/)rr3rr	r3zTestSuite.debug�s �������������rcs��t|dd�}|j}||krdS|jrdSt|dd�rdSd}	d|_t|dd�}t|dd�}|�at|d�		|�|r7|�5|�|jD]}
|j||
dd	|
�	��!t|d
�dSdS#t$rY��wxYw#t$re}t|t�r�d}	d|_n#t$rYnwxYwtj|�}	|j||d|	�Yd}~��d}~wwxYw#t|d
�wxYw)Nr?�__unittest_skip__F�
setUpClass�doClassCleanups�_setupStdoutTr��info�_restoreStdout)
r
rr:r9r$r
�	ExceptionrrBrr�"_createClassOrModuleLevelException�tearDown_exceptions)rr#r,�
previousClass�currentClassZfailedrDrE�e�	className�exc_infos           r	r>zTestSuite._handleClassSetUp�s����(<�d�C�
��~�~���=�(�(��F��$�$�$��F��<�!4�e�<�<��F���	�-2�L�*��\�<��>�
�!�,�0A�4�H���!��F�N�3�3�
:�
G��J�L�L��6�o�9�#�O�%�%�$0�$D�$D�/�/���?�?� &����\�9�%-�@�/�/�/� ��(8�9�9�9�9�1"�!���	�	�	�
�D�	�����!�G�G�G�!�&�,�7�7��!�F��9=��6�6��$���������� $�
�
�l� ;�I��;�;�F�A�<H�<E�G�G�G�G�G�G�G�����G�����& ��(8�9�9�9�9�9�9sf�C�=C �9E�
C�C� 
E�*E
�D	�E
�	
D�E
�D�/E
�E�
E�E�E"csD�d}t|dd�}|�|j}|S)Nr?)r
r5)rr,�previousModulerMr.r	�_get_previous_modulezTestSuite._get_previous_module�s-������(<�d�C�
��$�*�5�5�N��rcs��|j|�}|jj}||krdS|j|�d|_	t
j|}t|dd�}|�Kt|d�		|�|jr	tj�t|d�dSdS#t$rYdSwxYw#t$r:}t|t�r�d|_|j||d|�Yd}~��d}~wwxYw#t$r}|j||d|�Yd}~��d}~wwxYw#t|d�wxYw)NF�setUpModulerFTrI)rSrr5r@r:�sys�modules�KeyErrorr
r
rJrrBrKr�doModuleCleanups)rr#r,rRZ
currentModule�modulerTrOs        r	r=zTestSuite._handleModuleFixture�s����2�2�6�:�����1�1�
��N�*�*��F��"�"�6�*�*�%*��!�	��[�[��/�F��f�m�T�:���"��F�N�3�3�
:�K��K�M�M��,�,�,�O��-�-�/�/� ��(8�9�9�9�9�)#�"���	�	�	��F�F�	�����!�K�K�K�!�&�,�7�7��04�F�-��;�;�F�A�<I�<I�K�K�K�K�K�K�K�����	K�����%�O�O�O��?�?���@M�@M�O�O�O�O�O�O�O�����O�����
 ��(8�9�9�9�9�9�9sf�C�C�E�D�
C�
C�
D�0D�E�D�E�
E�"D<�7E�<E�E�ENcs@�|�d|�d�}|j||||�dS)Nz (z))�_addClassOrModuleLevelException)rr,ZexcZmethod_namerrH�	errorName�       r	rKz,TestSuite._createClassOrModuleLevelException�s5��"�/�/�f�/�/�/�	��,�,�V�S�)�T�J�J�J�Jrcs&�t|�}t|dd�}|�4t|tj�r||t|��dS|s)|j
|tj��dS|j
||�dS)N�addSkip)	�_ErrorHolderr
rrZSkipTestr'ZaddErrorrUrQ)rr,Z	exceptionr[rHZerrorr]r\r	rZz)TestSuite._addClassOrModuleLevelException�s����Y�'���&�)�T�2����:�i����#G�#G��G�E�3�y�>�*�*�*�*��4�����s�|�|�~�6�6�6�6�����t�,�,�,�,rcsb�|j|�}|�dS|jrdS	tj|}t|d�	t
|dd�}|�		|�	tj�t|d�dS#t$rYdSwxYw#t$r3}t|t�r�|j||d|�Yd}~�pd}~wwxYw#t$r3}t|t�r�|j||d|�Yd}~��d}~wwxYw#t|d�wxYw)NrF�tearDownModulerI)
rSr:rUrVrWr
r
rJrrBrKrrX)rr,rRrYr_rOrAr	r@zTestSuite._handleModuleTearDown�s����2�2�6�:���!��F��$�$�$��F�	��[�[��0�F�	���/�/�	6�$�V�-=�t�D�N��)�L�"�N�$�$�
H��%�%�'�'�
�F�$4�5�5�5�5��1�	�	�	��F�F�	�����!�L�L�L�!�&�,�7�7���;�;�F�A�<L�<J�L�L�L�L�L�L�L�����L������
H�
H�
H��f�l�3�3���7�7���8H�8F�H�H�H�H�H�H�H�����
H�����
�F�$4�5�5�5�5�5�5se�B
�D�B�'C�
B�B�
C�()C�D�C�D�
D�()D�D�D�D�D.cs��t|dd�}|j}||ks|�dSt|dd�rdSt|dd�rdSt|dd�rdSt|dd�}t|dd�}|�|�dSt|d�	|�		|�|�g|�|jD]Q}	t	|t
�r|	d	�t
j|�}|j||	d	d||	�
��St|d�dS#t$rJ}t	|t
�r�t
j|�}|j||d|�Yd}~��d}~wwxYw#t|d�wxYw)Nr?r9Fr:rC�
tearDownClassrErFrrGrI)
r
rr
rJrrBrrrKrL)
rr#r,rMrNr`rErOrPrQs
          r	r<z TestSuite._tearDownPreviousClasss�����(<�d�C�
��~�~���=�(�(�M�,A��F��=�"5�u�=�=��F��6�/��7�7��F��=�"5�u�=�=��F��
���E�
�!�-�1B�D�I��� �_�%<��F����/�/�	6��(�G�!�M�O�O��*���!�!� -� A� A�K�K�H�!�&�,�7�7�&�q�k�)� $�
�
�m� <�I��;�;�F�H�Q�K�<K�<E�AI�<�K�K�K�

�F�$4�5�5�5�5��%!�G�G�G�!�&�,�7�7�� $�
�
�m� <�I��;�;�F�A�<K�<E�G�G�G�G�G�G�G�����	G�����$
�F�$4�5�5�5�5�5�5s8�E'�D�A)E'�
E$�AE�E'�E$�$E'�'E7)Fr)
r4r5r6r7r/r3r>rSr=rKrZr@r<rrr	rr\s�������������B���,:�,:�,:�\���#:�#:�#:�L9=�K�K�K�K�.2�
-�
-�
-�
-�!6�!6�!6�F(6�(6�(6�(6�(6rcsF�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)r^z�
    Placeholder for a TestCase inside a result. As far as a TestResult
    is concerned, this looks exactly like a unit test. Used to insert
    arbitrary errors into a test suite run.
    Ncs�||_dSr��description)rrbrr	rz_ErrorHolder.__init__Ts��&����rcs�|jSrrarrr	�idz_ErrorHolder.idWs�����rcrrrrrr	�shortDescriptionz_ErrorHolder.shortDescriptionZs���trcs"�d|j�d�S)Nz<ErrorHolder description=rrarrr	rz_ErrorHolder.__repr__]s���15�1A�1A�1A�1A�C�Crcs$�|j�Sr)rcrrr	�__str__z_ErrorHolder.__str__`s���w�w�y�rcrrr�rr,rr	r/z_ErrorHolder.runcs	��	
�rcs&�|j|�Srr0rfrr	r1z_ErrorHolder.__call__hs���x�x���rcs�dSrrrrr	r"z_ErrorHolder.countTestCasesks���qr)
r4r5r6r7ZfailureExceptionrrcrdrrer/r1r"rrr	r^r^Hs�����������'�'�'� � � ����D�D�D����
�
�
�
 � � �����rr^csD�	t|�dS#t$rYdSwxYw)z?A crude way to tell apart testcases and suites with duck-typingTF)r r$)r#rr	r;r;ns;����T�
�
��5�������t�t����s�
�
�cs�eZdZdZdZdZdZdS)rBzCUsed by the TestSuite to hold previous class when running in debug.NF)r4r5r6r7r?r:r)rrr	rBrBws%������I�I������J�J�JrrB)
r7rUZrrZ
__unittestr
Zobjectrrr^r;rBrrr	�<module>rgs	����
�
�
�
�������������
�
����
I�I�I�I�I�F�I�I�Xi6�i6�i6�i6�i6�
�i6�i6�X$�$�$�$�$�6�$�$�L��������6����r