
    iZ              	           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
 Zd Zd Zd Zd Zd Zd Zd Zej.                  j1                  dg ddfddddfdd dfdd idfg      d        Zy)    )StringIO)PathN   )
yaml_dumps
yaml_loads	read_yaml
write_yamlis_yaml_serializable)CommentedMap   )make_tempdirc                  D    ddgdddgdd} t        |       }d}||k(  sJ y )	Nr   hellobar      %@x   foobazab=a:
  - 1
  - hello
b:
  foo: bar
  baz:
    - 10.5
    - 120
r   dataresultexpecteds      j/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/srsly/tests/test_yaml_api.pytest_yaml_dumpsr!      s6    WE4+$FGDFVHX    c                  L    ddgdddgdd} t        | ddd	
      }d}||k(  sJ y )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   s      r    test_yaml_dumps_indentr(      s=    WE4+$FGDQQRSFNHXr"   c                  d    d} t        |       }t        |t              rJ |ddgdddgddk(  sJ y )	Nr'   r   r   r   r   r   r   r   )r   
isinstancer   )r   r   s     r    test_yaml_loadsr+      sC    JDF &,///Aw<eT3K.PQQQQr"   c                      d} t        d| i      5 }|dz  }|j                         sJ t        |      }d d d        t              dk(  sJ |d   ddgk(  sJ y # 1 sw Y   &xY w)Nr'   tmp.yamlr   r   r   r   )r   existsr   len)file_contentstemp_dir	file_pathr   s       r    test_read_yaml_filer3   "   sy    SM	z=1	2 $hz)	!!!#$ t9>>9G$$$$ $s   #AA!c                      d} t        d| i      5 }|dz  }|j                         sJ t        j                  t              5  t        |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nz9a: - 1
- hello
b:
  foo: bar
  baz:
    - 10.5
    - 120
r-   )r   r.   pytestraises
ValueErrorr   )r0   r1   r2   s      r    test_read_yaml_file_invalidr8   ,   su    VM	z=1	2 !hz)	!!!]]:& 	!i 	!! !	! 	!! !s#   1A*AA*A'	#A**A3c                     d}| j                  dt        |             t        d      }t        |      dk(  sJ |d   ddgk(  sJ y )Nr   z	sys.stdin-r   r   r   r   )setattrr   r   r/   )monkeypatch
input_datar   s      r    test_read_yaml_stdinr>   5   sK    XJXj%9:S>Dt9>>9G$$$r"   c                     dddgd} d}t               5 }|dz  }t        ||        t        |      j                  dd	      5 }|j	                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
Nworld{     r   testz#hello: world
test:
  - 123
  - 456
r-   rutf8)encoding)r   r	   r   openread)r   r   r1   r2   fs        r    test_write_yaml_filerK   =   s    sCj1D8H	 (8z)	9d#)_!!#!7 	(1668x'''	(( (	( 	(( (s#   .A6A*A6*A3	/A66A?c                 p    dddgd}d}t        d|       | j                         }|j                  |k(  sJ y )Nr@   rA   rB   rC   z$hello: world
test:
  - 123
  - 456

r:   )r	   
readouterrout)capsysr   r   captureds       r    test_write_yaml_stdoutrQ   G   s?    sCj1D:HsD  "H<<8###r"   zobj,expected)r   r   r   r   Tr   rA   )r   c)r   Tc                     | S N xs    r    <lambda>rX   U   s    1 r"   Fr   c                     | S rT   rU   rV   s    r    rX   rX   V   s     r"   c                 D    t        |       |k(  sJ t        |       |k(  sJ y rT   r
   )objr   s     r    test_is_yaml_serializabler\   O   s*      $000$000r"   )ior   pathlibr   r5   	_yaml_apir   r   r   r	   r   ruamel_yaml.commentsr   utilr   r!   r(   r+   r3   r8   r>   rK   rQ   markparametrizer\   rU   r"   r    <module>rd      s       E E , / R%!%($ 	4 	t$	e
{	U#	1	1r"   