
    <e
                         	 d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ  e              ej        dd           G d	 d
ej                              Zedk    r ej                     dS dS )    N)	os_helper)hashlib_helper)assert_python_okassert_python_failure)
scriptsdirskip_if_missingmd5T)opensslc                   d    e Zd Zed             Zed             Zd Zd Zd Zd Z	d Z
d Zd	 Zd
S )MD5SumTestsc                    t           j                            t          d          | _        t          j        t          j                   t           j                            t          j        d          | _        t          | j        d          5 }|
                    d           d d d            n# 1 swxY w Y   d| _        d| _        d S )Nz	md5sum.pyzmd5sum.fodderwbs   md5sum
test file
s    d38dae2eb1ab346a292ef6850f9e1a0ds    a8b07894e2ca3f2a4c3094065fa6e0a5)ospathjoinr   scriptmkdirr   TESTFN_ASCIIfodderopenwrite
fodder_md5fodder_textmode_md5)clsfs     2/usr/lib/python3.11/test/test_tools/test_md5sum.py
setUpClasszMD5SumTests.setUpClass   s    W\\*k::

'(((W\\)"8/JJ
#*d## 	0qGG.///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0<"Es   B//B36B3c                 B    t          j        t           j                   d S )N)r   rmtreer   )r   s    r   tearDownClasszMD5SumTests.tearDownClass   s    /00000    c                     t          | j                  \  }}}|                     |d           |                     |                    d                     |                     |           d S )Nr   s(   d41d8cd98f00b204e9800998ecf8427e <stdin>)r   r   assertEqual
assertTrue
startswithassertFalseselfrcouterrs       r   test_noargszMD5SumTests.test_noargs   sp    '44CQNNFGG	I 	I 	Ir!   c                    t          | j        | j                  \  }}}|                     |d           |                     |                    | j                             | j                            t          j	        j
                  D ]*}|                     |                                |           +|                     |           d S )Nr   )r   r   r   r#   r$   r%   r   splitr   r   sepassertInencoder&   )r(   r)   r*   r+   parts        r   test_checksum_fodderz MD5SumTests.test_checksum_fodder%   s    'T[AACQt77888K%%bgk22 	. 	.DMM$++------r!   c                    t          | j        d| j                  \  }}}|                     |d           |                     | j        |           | j                            t          j        j	                  }|                     |d         
                                |           |                     |d         
                                |           d S )Nz-lr   )r   r   r   r#   r0   r   r.   r   r   r/   r1   assertNotIn)r(   r)   r*   r+   partss        r   test_dash_lzMD5SumTests.test_dash_l-   s    'T4;GGCQdos+++!!"'+..eBi&&((#...r))++S11111r!   c                     t          | j        d| j                  \  }}}|                     |d           |                     |                    | j                             |                     | j        |           d S )Nz-tr   )	r   r   r   r#   r$   r%   r   r7   r   r'   s       r   test_dash_tzMD5SumTests.test_dash_t5   sr    'T4;GGCQt'?@@AAA#.....r!   c                     t          | j        dd| j                  \  }}}|                     |d           |                     | j        |           d S )Nz-s512r   )r   r   r   r#   r0   r   r'   s       r   test_dash_szMD5SumTests.test_dash_s;   sQ    'T5$+NNCQdos+++++r!   c                     t          | j        | j        | j                  \  }}}|                     |d           |                                }|                     t          |          d            | j        |  d S )Nr      )r   r   r   r#   
splitlineslen)r(   r)   r*   r+   liness        r   test_multiple_fileszMD5SumTests.test_multiple_files@   sv    'T[$+NNCQ  UQ'''%    r!   c                     t          | j        d          \  }}}|                     |d           |                     |d           |                     |d           d S )Nz-hr@   r!   )r   r   r#   assertGreaterr'   s       r   
test_usagezMD5SumTests.test_usageG   sa    ,T[$??CQc"""3$$$$$r!   N)__name__
__module____qualname__classmethodr   r    r,   r3   r9   r;   r>   rD   rG    r!   r   r   r      s        F F [F 1 1 [1    2 2 2/ / /, , ,
! ! !% % % % %r!   r   __main__)sysr   unittesttest.supportr   r   test.support.script_helperr   r   test.test_toolsr   r   requires_hashdigestTestCaser   rH   mainrL   r!   r   <module>rV      s    9 



 				  " " " " " " ' ' ' ' ' ' N N N N N N N N 7 7 7 7 7 7 7 7    ##E4888<% <% <% <% <%(# <% <% 98<%~ zHMOOOOO r!   