o
    
i	                     @   sP   d dl mZ 	 d dlZd dlZd dlZddlmZmZmZm	Z	 G dd dZ
dS )    )print_functionN   )
round_tripdedentround_trip_loadround_trip_dumpc                   @   s   e Zd Zdd Zdd Zdd Zejje	j
dk dd	d
d Zejje	j
dkp,e dkdd	dd Zdd Zdd Zdd Zdd Zdd Zejje dkdd	dd Zejje dkdd	dd  Zejje dkdd	d!d" Zd#d$ Zd%S )&TestYAMLc                 C      t d d S )NzM
        handlers:
          static_files: applications/\1/static/\2
        r   self r   Y/home/ubuntu/.local/lib/python3.10/site-packages/srsly/tests/ruamel_yaml/test_yamlfile.pytest_backslash      zTestYAML.test_backslashc                 C   sD   ddl m} dd l}|ddg}|jj|dd}|tdks J d S )Nr   ordereddictar   b   Fdefault_flow_style6
        !!omap
        - a: 1
        - b: 2
        )srsly.ruamel_yaml.compatr   srsly.ruamel_yamlruamel_yamldumpr   r   r   srslyxresr   r   r   test_omap_out   s   zTestYAML.test_omap_outc                 C   r	   )NzT
        !!omap
        - a: 1
        - b: 2
        - c: 3
        - d: 4
        r
   r   r   r   r   test_omap_roundtrip&   r   zTestYAML.test_omap_roundtrip)r      zcollections not available)reasonc                 C   J   ddl m} dd l}|ddg}|jj||jjdd}|tdks#J d S )Nr   )OrderedDictr   r   FDumperr   r   )collectionsr(   r   r   r   RoundTripDumperr   )r   r(   r    r!   r"   r   r   r   !test_dump_collections_ordereddict1   s   
z*TestYAML.test_dump_collections_ordereddict)   r   CPythonzsrsly.ruamel_yaml not availablec                 C   r'   )Nr   r   r   r   Fr)   r   )r   r   r   r   r   r,   r   r   r   r   r   test_dump_ruamel_ordereddictC   s   
z%TestYAML.test_dump_ruamel_ordereddictc                 C   sv   ddl m} |g d}|d |d ||g dks J |d |d |d ||g d	ks9J d S )
Nr   )CommentedSetr   r   cr   d)r   r3   r4   ef)r   r3   r4   r6   )srsly.ruamel_yaml.constructorr1   removeadd)r   r1   sr   r   r   test_CommentedSetX   s   




zTestYAML.test_CommentedSetc                 C   s8   dd l }tg d}|jj|dd}|tdksJ d S )Nr   r2   Fr   zG
        !!set
        a: null
        b: null
        c: null
        )r   setr   r   r   )r   r    r!   r"   r   r   r   test_set_outd   s   zTestYAML.test_set_outc                 C   r	   )Nz;
        !!set
        ? a
        ? b
        ? c
        r
   r   r   r   r   test_set_compactt   s   zTestYAML.test_set_compactc                 C   r	   )Nz@
        # Comment with spaces after it.


        a: 1
        r
   r   r   r   r   test_blank_line_after_comment   r   z&TestYAML.test_blank_line_after_commentc                 C   r	   )Nzc
        # Seq with empty lines in between items.
        b:
        - bar


        - baz
        r
   r   r   r   r   !test_blank_line_between_seq_items   r   z*TestYAML.test_blank_line_between_seq_itemsJythonzJython throws RepresenterErrorc                 C   `   d}t t|}t| t| |d d dd dksJ |d d dd dks.J d S )Nz
        c:
        - |
          This item
          has a blank line
          following it.

        - |
          To visually separate it from this item.

          This item contains a blank line.


        r3   r   it.r   
line.r   r   printr   splitr   r:   r4   r   r   r   "test_blank_line_after_literal_chip      "z+TestYAML.test_blank_line_after_literal_chipc                 C   s`   d}t t|}t| t| |d d dd dksJ |d d dd dks.J d	S )
z2 have to insert an eof marker in YAML to test thisz
        c:
        - |+
          This item
          has a blank line
          following it.

        - |+
          To visually separate it from this item.

          This item contains a blank line.


        ...
        r3   r   rC   r   z

rE   z


NrF   rI   r   r   r   "test_blank_line_after_literal_keep   s   "z+TestYAML.test_blank_line_after_literal_keepc                 C   rB   )Nz
        c:
        - |-
          This item
          has a blank line
          following it.

        - |-
          To visually separate it from this item.

          This item contains a blank line.


        r3   r   rC   r    rE   rF   rI   r   r   r   #test_blank_line_after_literal_strip   rK   z,TestYAML.test_blank_line_after_literal_stripc                 C   s~   dd l }td}g }|jj|ddD ]}|| q|jj||jjd}tt|d d |d d  t| ||ks=J d S )Nr   z<        a: 'hello'
        ---
        b: "goodbye"
        T)preserve_quotes)r*   r   )	r   r   r   round_trip_load_allappenddump_allr,   rG   type)r   r    r:   datar!   outr   r   r   test_load_all_perserve_quotes   s   z&TestYAML.test_load_all_perserve_quotesN)__name__
__module____qualname__r   r#   r$   pytestmarkskipifsysversion_infor-   platformpython_implementationr0   r;   r=   r>   r?   r@   rJ   rL   rN   rV   r   r   r   r   r      s@    








r   )
__future__r   r]   rZ   r_   	roundtripr   r   r   r   r   r   r   r   r   <module>   s    