B
    v9a9
  ã               @   sh   d dl Z d dlZd dlmZ d dlmZmZ d dlmZm	Z	 e	ƒ  G dd„ dej
ƒZedkrde ¡  dS )é    N)Úsupport)Úassert_python_okÚassert_python_failure)Ú
scriptsdirÚskip_if_missingc               @   s\   e Zd Zedd„ ƒZedd„ ƒZdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚMD5SumTestsc          	   C   s`   t j td¡| _t  tj¡ t j tjd¡| _t	| jdƒ}| 
d¡ W d Q R X d| _d| _d S )Nz	md5sum.pyzmd5sum.fodderÚwbs   md5sum
test file
s    d38dae2eb1ab346a292ef6850f9e1a0ds    a8b07894e2ca3f2a4c3094065fa6e0a5)ÚosÚpathÚjoinr   ÚscriptÚmkdirr   ÚTESTFNÚfodderÚopenÚwriteÚ
fodder_md5Úfodder_textmode_md5)ÚclsÚf© r   ú!/usr/lib/python3.7/test_md5sum.pyÚ
setUpClass   s    zMD5SumTests.setUpClassc             C   s   t  t j¡ d S )N)r   Zrmtreer   )r   r   r   r   ÚtearDownClass   s    zMD5SumTests.tearDownClassc             C   s:   t | jƒ\}}}|  |d¡ |  | d¡¡ |  |¡ d S )Nr   s(   d41d8cd98f00b204e9800998ecf8427e <stdin>)r   r   ÚassertEqualÚ
assertTrueÚ
startswithÚassertFalse)ÚselfÚrcÚoutÚerrr   r   r   Útest_noargs   s
    zMD5SumTests.test_noargsc             C   sj   t | j| jƒ\}}}|  |d¡ |  | | j¡¡ x(| j tj	j
¡D ]}|  | ¡ |¡ qDW |  |¡ d S )Nr   )r   r   r   r   r   r   r   Úsplitr	   r
   ÚsepÚassertInÚencoder   )r   r   r    r!   Úpartr   r   r   Útest_checksum_fodder"   s    z MD5SumTests.test_checksum_fodderc             C   sl   t | jd| jƒ\}}}|  |d¡ |  | j|¡ | j tjj	¡}|  |d  
¡ |¡ |  |d  
¡ |¡ d S )Nz-lr   éÿÿÿÿéþÿÿÿ)r   r   r   r   r%   r   r#   r	   r
   r$   r&   ÚassertNotIn)r   r   r    r!   Úpartsr   r   r   Útest_dash_l*   s    zMD5SumTests.test_dash_lc             C   sF   t | jd| jƒ\}}}|  |d¡ |  | | j¡¡ |  | j|¡ d S )Nz-tr   )	r   r   r   r   r   r   r   r+   r   )r   r   r    r!   r   r   r   Útest_dash_t2   s    zMD5SumTests.test_dash_tc             C   s6   t | jdd| jƒ\}}}|  |d¡ |  | j|¡ d S )Nz-sZ512r   )r   r   r   r   r%   r   )r   r   r    r!   r   r   r   Útest_dash_s8   s    zMD5SumTests.test_dash_sc             C   sJ   t | j| j| jƒ\}}}|  |d¡ | ¡ }|  t|ƒd¡ | j|Ž  d S )Nr   é   )r   r   r   r   Ú
splitlinesÚlen)r   r   r    r!   Úlinesr   r   r   Útest_multiple_files=   s
    zMD5SumTests.test_multiple_filesc             C   s:   t | jdƒ\}}}|  |d¡ |  |d¡ |  |d¡ d S )Nz-hr0   ó    )r   r   r   ZassertGreater)r   r   r    r!   r   r   r   Ú
test_usageD   s    zMD5SumTests.test_usageN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r   r"   r(   r-   r.   r/   r4   r6   r   r   r   r   r      s   
r   Ú__main__)r	   ZunittestZtestr   Ztest.support.script_helperr   r   Ztest.test_toolsr   r   ZTestCaser   r7   Úmainr   r   r   r   Ú<module>   s   ?