B
    u9aR                 @   s  d dl Z d dlZd dlZd dlZd dlZd dlmZ eej	dsJe
ddd Zddd	d
e gZded Zded Zded Zded Zdd eD ZG dd dZG dd dZG dd dZG dd deZG dd deeejZG dd deeejZG dd deZG dd deeejZG d d! d!eeejZG d"d# d#eZG d$d% d%eeejZG d&d' d'eeejZG d(d) d)eZ G d*d+ d+ee ejZ!G d,d- d-ee ejZ"e#d.kre$  dS )/    N)supportnewlinesz3This Python does not have universal newline supportxi @  zline1=1zline2='this is a very long line designed to go past any default buffer limits that exist in io.py but we also want to test the uncommon case, naturally.'zdef line3():passzline4 = '%s'
z
c             C   s   g | ]}|d  qS )r    ).0r   r   r   '/usr/lib/python3.7/test_univnewlines.py
<listcomp>   s    r
   c               @   s   e Zd ZejZdS )CTestN)__name__
__module____qualname__ioopenr   r   r   r	   r   !   s   r   c               @   s   e Zd ZeejZdS )PyTestN)r   r   r   staticmethodpyior   r   r   r   r	   r   $   s   r   c               @   sD   e Zd ZdZdZdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )TestGenericUnivNewlinesrwbc          	   C   sD   | j }d| jkr|d}| tj| j}|| W d Q R X d S )Nbascii)DATA	WRITEMODEencoder   r   TESTFNwrite)selfdatafpr   r   r	   setUp-   s
    

zTestGenericUnivNewlines.setUpc             C   s"   yt tj W n   Y nX d S )N)osunlinkr   r   )r   r   r   r	   tearDown4   s    z TestGenericUnivNewlines.tearDownc          	   C   sL   |  tj| j}| }W d Q R X | |t | t|jt| j	 d S )N)
r   r   r   READMODEreadassertEqualDATA_LFreprr   NEWLINE)r   r    r   r   r   r	   	test_read:   s    z!TestGenericUnivNewlines.test_readc          	   C   sL   |  tj| j}| }W d Q R X | |t | t|jt| j	 d S )N)
r   r   r   r%   	readlinesr'   
DATA_SPLITr)   r   r*   )r   r    r   r   r   r	   test_readlines@   s    z&TestGenericUnivNewlines.test_readlinesc          	   C   sl   |  tj| j.}g }| }x|r8|| | }q W W d Q R X | |t | t|j	t| j
 d S )N)r   r   r   r%   readlineappendr'   r-   r)   r   r*   )r   r    r   dr   r   r	   test_readlineF   s    
z%TestGenericUnivNewlines.test_readlinec          	   C   sr   |  tj| jD}|  | }| }| |tdd   |	| | }W d Q R X | |tdd   d S )N   )
r   r   r   r%   r/   tellr,   r'   r-   seek)r   r    posr   r   r   r	   	test_seekP   s    
z!TestGenericUnivNewlines.test_seekN)r   r   r   r%   r   r!   r$   r+   r.   r2   r7   r   r   r   r	   r   '   s   
r   c               @   s   e Zd ZdZeZdS )TestCRNewlinesr   N)r   r   r   r*   DATA_CRr   r   r   r   r	   r8   [   s   r8   c               @   s   e Zd ZdS )CTestCRNewlinesN)r   r   r   r   r   r   r	   r:   ^   s    r:   c               @   s   e Zd ZdS )PyTestCRNewlinesN)r   r   r   r   r   r   r	   r;   _   s    r;   c               @   s   e Zd ZdZeZdS )TestLFNewlinesr   N)r   r   r   r*   r(   r   r   r   r   r	   r<   a   s   r<   c               @   s   e Zd ZdS )CTestLFNewlinesN)r   r   r   r   r   r   r	   r=   d   s    r=   c               @   s   e Zd ZdS )PyTestLFNewlinesN)r   r   r   r   r   r   r	   r>   e   s    r>   c               @   s   e Zd ZdZeZdd ZdS )TestCRLFNewlinesz
c          	   C   s^   |  tj| j,}| t|jtd  | }| }W d Q R X | t|jt| j	 d S )N)
r   r   r   r%   r'   r)   r   r/   r4   r*   )r   r    r   r6   r   r   r	   	test_tellk   s
    zTestCRLFNewlines.test_tellN)r   r   r   r*   	DATA_CRLFr   r@   r   r   r   r	   r?   g   s   r?   c               @   s   e Zd ZdS )CTestCRLFNewlinesN)r   r   r   r   r   r   r	   rB   q   s    rB   c               @   s   e Zd ZdS )PyTestCRLFNewlinesN)r   r   r   r   r   r   r	   rC   r   s    rC   c               @   s   e Zd ZdZeZdS )TestMixedNewlines)r   r   N)r   r   r   r*   
DATA_MIXEDr   r   r   r   r	   rD   t   s   rD   c               @   s   e Zd ZdS )CTestMixedNewlinesN)r   r   r   r   r   r   r	   rF   w   s    rF   c               @   s   e Zd ZdS )PyTestMixedNewlinesN)r   r   r   r   r   r   r	   rG   x   s    rG   __main__)%r   Z_pyior   Zunittestr"   sysZtestr   hasattrstdinZSkipTestZFATXZDATA_TEMPLATEjoinr(   r9   rA   rE   r-   r   r   r   r8   ZTestCaser:   r;   r<   r=   r>   r?   rB   rC   rD   rF   rG   r   mainr   r   r   r	   <module>   sF   
4

