3
dD                 @   s   d dl mZ d dlZd dlZd dlZd dlmZ G dd dZG dd dZG dd	 d	Z	G d
d dZ
G dd dZG dd dZG dd dZG dd dZdS )    )print_functionN)Pathc               @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )
TestNewAPIc          	   C   sB   ddl m} ddlm} | }tj| |jd W d Q R X d S )Nr   )YAML)DuplicateKeyErrorz{a: 1, a: 2})srsly.ruamel_yamlr   srsly.ruamel_yaml.constructorr   pytestraisesload)selfr   r   yaml r   [/var/www/html/virt/lib64/python3.6/site-packages/srsly/tests/ruamel_yaml/test_api_change.pytest_duplicate_keys_00   s
    z!TestNewAPI.test_duplicate_keys_00c          	   C   sH   ddl m} ddlm} |ddd}tj| |jd W d Q R X d S )Nr   )r   )r   safeT)typpurez{a: 1, a: 2})r   r   r   r   r	   r
   r   )r   r   r   r   r   r   r   test_duplicate_keys_01   s
    z!TestNewAPI.test_duplicate_keys_01c          	   C   sF   ddl m} ddlm} |dd}tj| |jd W d Q R X d S )Nr   )r   )r   r   )r   z{a: 1, a: 2})r   r   r   r   r	   r
   r   )r   r   r   r   r   r   r   test_duplicate_keys_02    s
    
z!TestNewAPI.test_duplicate_keys_02c             C   s2   ddl m} ddd}|dd}|j|tj d S )Nr   )r         )abr   )r   )r   r   dumpsysstdout)r   r   datar   r   r   r   test_issue_135(   s    

zTestNewAPI.test_issue_135c             C   s4   ddl m} ddd}|ddd}|j|tj d S )	Nr   )r   r   r   )r   r   r   T)r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   #test_issue_135_temporary_workaround1   s    
z.TestNewAPI.test_issue_135_temporary_workaroundN)__name__
__module____qualname__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 )	TestWritec             C   sZ   ddl m} tt|d }| }|j }d|d< d|d< |j|| |j dksVtd S )	Nr   )r   z	test.yamlr   r   r   r   z
a: 1
b: 2
)r   r   r   strmapr   	read_textAssertionError)r   tmpdirr   fnr   r   r   r   r   test_dump_path;   s    zTestWrite.test_dump_pathc          
   C   st   ddl m} tt|d }| }|j }d|d< d|d< tt|d}|j|| W d Q R X |j d	ksptd S )
Nr   )r   z	test.yamlr   r   r   r   wz
a: 1
b: 2
)	r   r   r   r$   r%   openr   r&   r'   )r   r(   r   r)   r   r   fpr   r   r   test_dump_fileF   s    zTestWrite.test_dump_filec          	   C   sN   ddl m} | }|j }d|d< d|d< tjt |j| W d Q R X d S )Nr   )r   r   r   r   r   )r   r   r%   r	   r
   	TypeErrorr   )r   r   r   r   r   r   r   test_dump_missing_streamR   s    z"TestWrite.test_dump_missing_streamc             C   sb   ddl m} tt|d }| }|j }d|d< d|d< tjt |j||d W d Q R X d S )	Nr   )r   z	test.yamlr   r   r   r   T)	r   r   r   r$   r%   r	   r
   r/   r   )r   r(   r   r)   r   r   r   r   r   test_dump_too_many_args\   s    z!TestWrite.test_dump_too_many_argsc             C   sf   ddl m} dd }tt|d }| }|j }d|d< d|d	< |j|||d
 |j dksbtd S )Nr   )r   c             S   s   | j ddS )N z  )replace)sr   r   r   trj   s    z$TestWrite.test_transform.<locals>.trz	test.yamlr   r   r   r   )Z	transformza:  1
b:  2
)r   r   r   r$   r%   r   r&   r'   )r   r(   r   r5   r)   r   r   r   r   r   test_transformg   s    zTestWrite.test_transformc             C   sT   ddl m} | }|j }d|d< d|d< |j|tj |j \}}|dksPtd S )Nr   )r   r   r   r   r   z
a: 1
b: 2
)r   r   r%   r   r   r   
readouterrr'   )r   capsysr   r   r   outerrr   r   r   
test_printu   s    zTestWrite.test_printN)	r    r!   r"   r*   r.   r0   r1   r6   r;   r   r   r   r   r#   :   s   
r#   c               @   s   e Zd Zdd Zdd ZdS )TestReadc             C   s*   ddl m} | }|jd |jd d S )Nr   )r   za: 1)r   r   r   )r   r   r   r   r   r   test_multi_load   s    
zTestRead.test_multi_loadc          
   C   sh   ddl m} ddlm} |dd}d}tj| |j| W d Q R X |dd}x|j|D ]}q\W d S )Nr   )r   )ConstructorErrorr   )r   z - !User0 {age: 18, name: Anthon})r   r   r   r>   r	   r
   r   parse)r   r   r>   r   r4   _r   r   r   
test_parse   s    

zTestRead.test_parseN)r    r!   r"   r=   rA   r   r   r   r   r<      s   r<   c               @   s   e Zd Zdd ZdS )TestLoadAllc             C   sT   ddl m} tt|d }|jtjd | }t|j|dgdggksPt	dS )zDthis went wrong on 3.7 because of StopIteration, PR 37 and Issue 211r   )r   z	test.yamlz\            ---
            - a
            ---
            - b
            ...
            r   r   N)
r   r   r   r$   
write_texttextwrapdedentlistZload_allr'   )r   r(   r   r)   r   r   r   r   test_multi_document_load   s    z$TestLoadAll.test_multi_document_loadN)r    r!   r"   rG   r   r   r   r   rB      s   rB   c               @   s   e Zd Zdd ZdS )TestDuplSetc          
   C   sH   ddl m} ddlm} | }tj| |jtjd W d Q R X d S )Nr   )r   )r   zv                !!set
                ? a
                ? b
                ? c
                ? a
                )	r   r   r   r   r	   r
   r   rD   rE   )r   r   r   r   r   r   r   test_dupl_set_00   s    zTestDuplSet.test_dupl_set_00N)r    r!   r"   rI   r   r   r   r   rH      s   rH   c               @   s   e Zd Zdd Zdd ZdS )TestDumpLoadUnicodec             C   s^   ddl m} | }ddi}t|d }|j|t|dddd	 t|d
j jddksZtd S )Nr   )r   textu   HELLO_WORLD©z/tstFile.yamlr+   utf8
)encodingnewlinerbzutf-8u   text: HELLO_WORLD©
)r   r   r$   r   r,   readdecoder'   )r   r(   r   r   	text_dict	file_namer   r   r   test_write_unicode   s    z&TestDumpLoadUnicode.test_write_unicodec             C   s|   ddl m} | }t|d }t|d}|jdjd W d Q R X t|ddd	}|j|}W d Q R X |d
 dksxtd S )Nr   )r   z/tstFile.yamlwbu   text: HELLO_WORLD©
zutf-8rrL   )rN   rK   u   HELLO_WORLD©)r   r   r$   r,   writeencoder   r'   )r   r(   r   r   rT   r-   rS   r   r   r   test_read_unicode   s    z%TestDumpLoadUnicode.test_read_unicodeN)r    r!   r"   rU   rZ   r   r   r   r   rJ      s   	rJ   c               @   s   e Zd Zdd ZdS )TestFlowStylec             C   sf   ddl m} | }d |_|j }d|d< ddgddgg|d< |j|tj |j \}}|d	ksbtd S )
Nr   )r   r   r   r         r   zb: 1
a:
- [1, 2]
- [3, 4]
)	r   r   Zdefault_flow_styler%   r   r   r   r7   r'   )r   r8   r   r   r   r9   r:   r   r   r   test_flow_style   s    zTestFlowStyle.test_flow_styleN)r    r!   r"   r^   r   r   r   r   r[      s   r[   c               @   s*   e Zd Zejjejdkdddd ZdS )	
TestOldAPIr\   r   z	ok on Py3)reasonc          	   C   s:   ddl m} ddlm} tj| |d W d Q R X d S )Nr   )	safe_load)r   u$   type: Doméstica
type: International)r   ra   r   r   r	   r
   )r   ra   r   r   r   r   r      s    z!TestOldAPI.test_duplicate_keys_02N)r\   r   )	r    r!   r"   r	   markZskipifr   version_infor   r   r   r   r   r_      s   r_   )
__future__r   r   rD   r	   pathlibr   r   r#   r<   rB   rH   rJ   r[   r_   r   r   r   r   <module>   s   +G