<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
2a$                 @   s   d dl mZ d dlZd dlmZ d dlmZ d dlZG dd dejZG dd de	Z
G d	d
 d
ZG dd dejZG dd dejZedkrejdd dS )    )runN)mock)captured_stderrc               @   s   e Zd Zdd ZdS )RunTestc             C   s   G dd dt }|d}|d}y
||W np |k
r   y|W nR |k
r   t 2}tjjtd}dd |_tj  W d Q R X W d Q R X Y nX Y nX |j j	 j
 }| jdt| | jd	|d
  | jd|d  d S )Nc               @   s   e Zd Zdd ZdS )zDRunTest.test_print_exception_unhashable.<locals>.UnhashableExceptionc             S   s   dS )NT )selfotherr   r   -/opt/alt/python36/lib64/python3.6/test_run.py__eq__   s    zKRunTest.test_print_exception_unhashable.<locals>.UnhashableException.__eq__N)__name__
__module____qualname__r
   r   r   r   r	   UnhashableException   s   r   ex1ex2Zcleanup_tracebackc             S   s   | S )Nr   )ter   r   r	   <lambda>   s    z9RunTest.test_print_exception_unhashable.<locals>.<lambda>   zUnhashableException: ex2   zUnhashableException: ex1
   )	Exceptionr   r   Zpatchobjectr   Zside_effectprint_exceptiongetvaluestrip
splitlinesassertEquallenZassertIn)r   r   r   r   outputZcttbr   r   r	   test_print_exception_unhashable   s$    

(z'RunTest.test_print_exception_unhashableN)r   r   r   r!   r   r   r   r	   r   
   s   r   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )Sc             C   s   dt | j S )Nz%s:str)typer   )r   r   r   r	   __str__(   s    z	S.__str__c             C   s   dt | j S )Nz
%s:unicode)r#   r   )r   r   r   r	   __unicode__*   s    zS.__unicode__c             C   s   dS )Nr   r   )r   r   r   r	   __len__,   s    z	S.__len__c             C   s   t dS )Nabc)iter)r   r   r   r	   __iter__.   s    z
S.__iter__c             G   s   dt | j S )Nz%s:item)r#   r   )r   argsr   r   r	   __getitem__0   s    zS.__getitem__c             G   s   dt | j S )Nz%s:slice)r#   r   )r   r*   r   r   r	   __getslice__2   s    zS.__getslice__N)	r   r   r   r$   r%   r&   r)   r+   r,   r   r   r   r	   r"   '   s   r"   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )	MockShellc             C   s   | j   d S )N)reset)r   r   r   r	   __init__7   s    zMockShell.__init__c             G   s   | j j| d S )N)writtenappend)r   r*   r   r   r	   write9   s    zMockShell.writec             C   s
   | j j S )N)linespop)r   r   r   r	   readline;   s    zMockShell.readlinec             C   s   d S )Nr   )r   r   r   r	   close=   s    zMockShell.closec             C   s
   g | _ d S )N)r0   )r   r   r   r	   r.   ?   s    zMockShell.resetc             C   s   t |d d d | _d S )N   )listr3   )r   r3   r   r   r	   pushA   s    zMockShell.pushN)	r   r   r   r/   r2   r5   r6   r.   r:   r   r   r   r	   r-   6   s   r-   c               @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )PseudeInputFilesTestc             C   s   t  }tj|dd}| j|tj | j|jd | j|j	 | j|j
 | j|jd | j|j | j|j  | j|j  | j|j  | j|j  d S )Nstdinzutf-8z<stdin>)r-   r   PseudoInputFileassertIsInstanceio
TextIOBaser   encodingassertIsNoneerrorsnewlinesnameassertFalseclosed
assertTrueisattyreadablewritableseekable)r   shellfr   r   r	   	test_miscG   s    zPseudeInputFilesTest.test_miscc             C   sf   t  }tj|dd}| jt|j | jt|j | jt|jd | jt|jd | jt|j	dg d S )Nr<   zutf-8r   x)
r-   r   r=   assertRaisesOSErrorfilenotellseekr2   
writelines)r   rM   rN   r   r   r	   test_unsupportedU   s    z%PseudeInputFilesTest.test_unsupportedc             C   s  t  }tj|dd}|jdddg | j|j d |jdddg | j|jdd |jdddg | j|jd d |jddddg | j|jd	d
 | j|jdd | j|jdd |jddg | j|jdd | jt|jd | jt|jd | jt|jdd d S )Nr<   zutf-8zone
ztwo
 zone
two
r7   zthree
   onr   ze
tr   z	wo
three
r   g      ?1r8   )r-   r   r=   r:   r   readrQ   	TypeError)r   rM   rN   r   r   r	   	test_read^   s"    zPseudeInputFilesTest.test_readc             C   sd  t  }tj|dd}|jddddg | j|j d | j|jdd | j|jd d |jdg | j|j d | j|j d |jd	d
dg | j|j d	 | j|j d
 |jdddg | j|jdd | j|jdd | j|jdd | j|jdd |jddg | j|jdd | jt|jd | jt|jd | jt|jdd d S )Nr<   zutf-8zone
ztwo
zthree
zfour
r7   zone
two
ZonetwoZthreerY   rZ   r   
r   r   rX   g      ?r[   r8   )	r-   r   r=   r:   r   r5   rQ   r]   	readlines)r   rM   rN   r   r   r	   test_readliner   s,    z"PseudeInputFilesTest.test_readlinec             C   s:  t  }tj|dd}|jdddg | j|j ddg |jdddg | j|jdddg |jdddg | j|jd ddg |jdddg | j|jdddg |jdddg | j|jddg |jdddg | j|jd	ddg |jdddg | jt|jd
 | jt|jd | jt|jdd d S )Nr<   zutf-8zone
ztwo
rX   r7   r   r      g      ?r[   r8   )r-   r   r=   r:   r   ra   rQ   r]   )r   rM   rN   r   r   r	   test_readlines   s$    z#PseudeInputFilesTest.test_readlinesc             C   sx   t  }tj|dd}|jdddg | j|j | j|j d |j  | j|j | j|j d | j	t
|jd d S )Nr<   zutf-8zone
ztwo
rX   r7   )r-   r   r=   r:   rF   rG   r   r5   r6   rQ   r]   )r   rM   rN   r   r   r	   
test_close   s    zPseudeInputFilesTest.test_closeN)	r   r   r   rO   rW   r^   rb   rd   re   r   r   r   r	   r;   E   s   	r;   c               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )PseudeOutputFilesTestc             C   s   t  }tj|dd}| j|tj | j|jd | j|j	 | j|j
 | j|jd | j|j | j|j  | j|j  | j|j  | j|j  d S )Nstdoutzutf-8z<stdout>)r-   r   PseudoOutputFiler>   r?   r@   r   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   )r   rM   rN   r   r   r	   rO      s    zPseudeOutputFilesTest.test_miscc             C   sd   t  }tj|dd}| jt|j | jt|j | jt|jd | jt|jd | jt|j	d d S )Nrg   zutf-8r   )
r-   r   rh   rQ   rR   rS   rT   rU   r\   r5   )r   rM   rN   r   r   r	   rW      s    z&PseudeOutputFilesTest.test_unsupportedc             C   s  t  }tj|dd}|jd | j|jd	g |j  |jd | j|jd
g |j  |jtd | j|jdg | jt|jd d t	 |j  | j
t|j | j|jg  | j
t|jd | j
t|jd | j|jg  | j
t|jdd | j|jg  d S )Nrg   zutf-8test   tèstr   s   test{   Zspam)ri   rg   )rj   rg   )rj   rg   )r-   r   rh   r2   r   r0   r.   r"   r#   strrQ   r]   )r   rM   rN   r   r   r	   
test_write   s&    

z PseudeOutputFilesTest.test_writec             C   sV  t  }tj|dd}|jg  | j|jg  |j  |jddg | j|jddg |j  |jddg | j|jddg |j  |jtdg | j|jdg | jt|jd d t	 |j  | j
t|j | j|jg  | j
t|jd	 | j|jg  | j
t|jd
g | j
t|jd	g | j|jg  | j
t|jg g  | j|jg  d S )Nrg   zutf-8one
r_      onè
   twò   tèstr   rk   s   test)rn   rg   )r_   rg   )ro   rg   )rp   rg   )rq   rg   )r-   r   rh   rV   r   r0   r.   r"   r#   rl   rQ   r]   )r   rM   rN   r   r   r	   test_writelines   s4    


z%PseudeOutputFilesTest.test_writelinesc             C   sz   t  }tj|dd}| j|j |jd |j  | j|j | jt	|jd | j
|jdg |j  | jt|jd d S )Nrg   zutf-8ri   rP   r7   )ri   rg   )r-   r   rh   rF   rG   r2   r6   rH   rQ   
ValueErrorr   r0   r]   )r   rM   rN   r   r   r	   re      s    
z PseudeOutputFilesTest.test_closeN)r   r   r   rO   rW   rm   rr   re   r   r   r   r	   rf      s
   	rf   __main__rY   )	verbosity)Zidlelibr   Zunittestr   Ztest.supportr   r?   ZTestCaser   rl   r"   r-   r;   rf   r   mainr   r   r   r	   <module>   s   g[