o
    
i                     @   s   d dl mZ 	 d dlZd dlZd dlZd dlmZ ej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G dd dZdS )    )print_functionN)Pathz/ignore::pytest.PytestUnraisableExceptionWarningc                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )
TestNewAPIc                 C   sX   ddl m} ddlm} | }t| |d W d    d S 1 s%w   Y  d S )Nr   YAMLDuplicateKeyError{a: 1, a: 2}srsly.ruamel_yamlr   srsly.ruamel_yaml.constructorr   pytestraisesloadselfr   r   yaml r   [/home/ubuntu/.local/lib/python3.10/site-packages/srsly/tests/ruamel_yaml/test_api_change.pytest_duplicate_keys_00   s   "z!TestNewAPI.test_duplicate_keys_00c                 C   s^   ddl m} ddlm} |ddd}t| |d W d    d S 1 s(w   Y  d S )Nr   r   r   safeTtyppurer	   r
   r   r   r   r   test_duplicate_keys_01   s   "z!TestNewAPI.test_duplicate_keys_01c                 C   s\   ddl m} ddlm} |dd}t| |d W d    d S 1 s'w   Y  d S )Nr   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}||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}||tj d S )	Nr   r   r   r   r   r   Tr   r"   r&   r   r   r   #test_issue_135_temporary_workaround5   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 }| }| }d|d< d|d< ||| | dks+J d S )	Nr   r   	test.yamlr   r    r   r!   
a: 1
b: 2
r   r   r   strmapr#   	read_textr   tmpdirr   fnr   r'   r   r   r   test_dump_path?   s   zTestWrite.test_dump_pathc                 C   s   ddl m} tt|d }| }| }d|d< d|d< tt|d}||| W d    n1 s5w   Y  | d	ksBJ d S )
Nr   r   r.   r   r    r   r!   wr/   )r   r   r   r1   r2   openr#   r3   )r   r5   r   r6   r   r'   fpr   r   r   test_dump_fileJ   s   zTestWrite.test_dump_filec                 C   sd   ddl m} | }| }d|d< d|d< tt || W d    d S 1 s+w   Y  d S )Nr   r   r   r    r   r!   )r   r   r2   r   r   	TypeErrorr#   )r   r   r   r'   r   r   r   test_dump_missing_streamV   s   "z"TestWrite.test_dump_missing_streamc                 C   sx   ddl m} tt|d }| }| }d|d< d|d< tt |||d W d    d S 1 s5w   Y  d S )	Nr   r   r.   r   r    r   r!   T)	r   r   r   r1   r2   r   r   r<   r#   r4   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 }| }| }d|d< d|d	< |j|||d
 | dks1J d S )Nr   r   c                 S   s   |  ddS )N z  )replace)sr   r   r   trn   s   z$TestWrite.test_transform.<locals>.trr.   r   r    r   r!   )	transformza:  1
b:  2
r0   )r   r5   r   rB   r6   r   r'   r   r   r   test_transformk   s   zTestWrite.test_transformc                 C   sT   ddl m} | }| }d|d< d|d< ||tj | \}}|dks(J d S )Nr   r   r   r    r   r!   r/   )r   r   r2   r#   r$   r%   
readouterrr   capsysr   r   r'   outerrr   r   r   
test_printy   s   zTestWrite.test_printN)	r*   r+   r,   r7   r;   r=   r>   rD   rJ   r   r   r   r   r-   >   s    
r-   c                   @      e Zd Zdd Zdd ZdS )TestReadc                 C   s*   ddl m} | }|d |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   sx   ddl m} ddlm} |dd}d}t| || W d    n1 s(w   Y  |dd}||D ]}q7d S )Nr   r   )ConstructorErrorr   r   z - !User0 {age: 18, name: Anthon})r   r   r   rN   r   r   r   parse)r   r   rN   r   rA   _r   r   r   
test_parse   s   

zTestRead.test_parseN)r*   r+   r,   rM   rQ   r   r   r   r   rL      s    rL   c                   @      e Zd Zdd ZdS )TestLoadAllc                 C   sT   ddl m} tt|d }|td | }t||dgdggks(J dS )zDthis went wrong on 3.7 because of StopIteration, PR 37 and Issue 211r   r   r.   z\            ---
            - a
            ---
            - b
            ...
            r    r!   N)	r   r   r   r1   
write_texttextwrapdedentlistload_all)r   r5   r   r6   r   r   r   r   test_multi_document_load   s   "z$TestLoadAll.test_multi_document_loadN)r*   r+   r,   rY   r   r   r   r   rS          rS   c                   @   rR   )TestDuplSetc                 C   s^   ddl m} ddlm} | }t| |td W d    d S 1 s(w   Y  d S )Nr   r   r   zv                !!set
                ? a
                ? b
                ? c
                ? a
                )	r   r   r   r   r   r   r   rU   rV   r   r   r   r   test_dupl_set_00   s   "zTestDuplSet.test_dupl_set_00N)r*   r+   r,   r\   r   r   r   r   r[      rZ   r[   c                   @   rK   )TestDumpLoadUnicodec              	   C   s^   ddl m} | }ddi}t|d }||t|dddd	 t|d
 ddks-J d S )Nr   r   text   HELLO_WORLD©/tstFile.yamlr8   utf8
)encodingnewlinerbutf-8   text: HELLO_WORLD©
)r   r   r1   r#   r9   readdecode)r   r5   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}|dd W d    n1 s'w   Y  t|ddd	}||}W d    n1 sCw   Y  |d
 dksPJ d S )Nr   r   r`   wbrg   rf   rra   )rc   r^   r_   )r   r   r1   r9   writeencoder   )r   r5   r   r   rk   r:   rj   r   r   r   test_read_unicode   s   z%TestDumpLoadUnicode.test_read_unicodeN)r*   r+   r,   rl   rq   r   r   r   r   r]      s    	r]   c                   @   rR   )TestFlowStylec                 C   sf   ddl m} | }d |_| }d|d< ddgddgg|d< ||tj | \}}|d	ks1J d S )
Nr   r   r   r!   r         r    zb: 1
a:
- [1, 2]
- [3, 4]
)r   r   default_flow_styler2   r#   r$   r%   rE   rF   r   r   r   test_flow_style   s   zTestFlowStyle.test_flow_styleN)r*   r+   r,   rv   r   r   r   r   rr      rZ   rr   c                   @   s*   e Zd Zejjejdkdddd ZdS )
TestOldAPI)rs   r   z	ok on Py3)reasonc                 C   sP   ddl m} ddlm} t| |d W d    d S 1 s!w   Y  d S )Nr   )	safe_loadr   u$   type: Doméstica
type: International)r   ry   r   r   r   r   )r   ry   r   r   r   r   r      s
   
"z!TestOldAPI.test_duplicate_keys_02N)	r*   r+   r,   r   markskipifr$   version_infor   r   r   r   r   rw      s    rw   )
__future__r   r$   rU   r   pathlibr   rz   filterwarnings
pytestmarkr   r-   rL   rS   r[   r]   rr   rw   r   r   r   r   <module>   s"   +G