o
    
iZ                  
   @   s   d dl mZ d dlmZ d dlZddlmZmZmZm	Z	 ddlm
Z
 ddlmZ dd	lmZ d
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zejdg ddfddddfd d!d" d#fd$d%d" id#fgd&d' ZdS )(    )StringIO)PathN   )
yaml_dumps
yaml_loads	read_yaml
write_yamlis_yaml_serializable)CommentedMap   )make_tempdirc                  C   s4   ddgdddgdd} t | }d}||ksJ d S )	Nr   hellobar      %@x   foobazab=a:
  - 1
  - hello
b:
  foo: bar
  baz:
    - 10.5
    - 120
r   dataresultexpected r   M/home/ubuntu/.local/lib/python3.10/site-packages/srsly/tests/test_yaml_api.pytest_yaml_dumps   s   r    c                  C   s<   ddgdddgdd} t | ddd	d
}d}||ksJ d S )Nr   r   r   r   r   r   r   r   r   )indent_mappingindent_sequenceindent_offset5a:
- 1
- hello
b:
  foo: bar
  baz:
  - 10.5
  - 120
r   r   r   r   r   test_yaml_dumps_indent   s   r%   c                  C   s>   d} t | }t|trJ |ddgdddgddksJ d S )	Nr$   r   r   r   r   r   r   r   )r   
isinstancer   )r   r   r   r   r   test_yaml_loads   s   $r'   c                  C   st   d} t d| i}|d }| sJ t|}W d    n1 s!w   Y  t|dks.J |d ddgks8J d S )Nr$   tmp.yamlr   r   r   r   )r   existsr   len)file_contentstemp_dir	file_pathr   r   r   r   test_read_yaml_file"   s   
r.   c               	   C   s   d} t d| i4}|d }| sJ tt t| W d    n1 s'w   Y  W d    d S W d    d S 1 s?w   Y  d S )Nz9a: - 1
- hello
b:
  foo: bar
  baz:
    - 10.5
    - 120
r(   )r   r)   pytestraises
ValueErrorr   )r+   r,   r-   r   r   r   test_read_yaml_file_invalid,   s   
"r2   c                 C   sD   d}|  dt| td}t|dksJ |d ddgks J d S )Nr   z	sys.stdin-r   r   r   r   )setattrr   r   r*   )monkeypatch
input_datar   r   r   r   test_read_yaml_stdin5   s
   r7   c               	   C   s   dddgd} d}t  ;}|d }t||  t|jddd	}| |ks(J W d    n1 s2w   Y  W d    d S W d    d S 1 sJw   Y  d S )
Nworld{     r   testz#hello: world
test:
  - 123
  - 456
r(   rutf8)encoding)r   r   r   openread)r   r   r,   r-   fr   r   r   test_write_yaml_file=   s   
"rC   c                 C   s6   dddgd}d}t d| |  }|j|ksJ d S )Nr8   r9   r:   r;   z$hello: world
test:
  - 123
  - 456

r3   )r   
readouterrout)capsysr   r   capturedr   r   r   test_write_yaml_stdoutG   s
   
rH   zobj,expected)r   r   r   r   Tr   r9   )r   c)r   Tc                 C      | S Nr   xr   r   r   <lambda>U       rN   Fr   c                 C   rJ   rK   r   rL   r   r   r   rN   V   rO   c                 C   s$   t | |ksJ t | |ksJ d S rK   r	   )objr   r   r   r   test_is_yaml_serializableO   s   rQ   )ior   pathlibr   r/   	_yaml_apir   r   r   r   r
   ruamel_yaml.commentsr   utilr   r    r%   r'   r.   r2   r7   rC   rH   markparametrizerQ   r   r   r   r   <module>   s2    	
	



