3
d	                 @   sN   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pXej 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j dkdd
dd  Zejjej dkdd
d!d" Zejjej dkdd
d#d$ Zd%d& Zd'S )*TestYAMLc             C   s   t d d S )NzM
        handlers:
          static_files: applications/\1/static/\2
        )r   )self r
   Y/var/www/html/virt/lib64/python3.6/site-packages/srsly/tests/ruamel_yaml/test_yamlfile.pytest_backslash   s    zTestYAML.test_backslashc             C   sD   ddl m} dd l}|d
dg}|jj|dd}|td	ks@td S )Nr   )ordereddictar   b   F)default_flow_stylez6
        !!omap
        - a: 1
        - b: 2
        )r   r   )r   r   )srsly.ruamel_yaml.compatr   srsly.ruamel_yamlruamel_yamldumpr   AssertionError)r	   r   srslyxresr
   r
   r   test_omap_out   s    zTestYAML.test_omap_outc             C   s   t d d S )NzT
        !!omap
        - a: 1
        - b: 2
        - c: 3
        - d: 4
        )r   )r	   r
   r
   r   test_omap_roundtrip&   s    zTestYAML.test_omap_roundtripr      zcollections not available)reasonc             C   sJ   ddl m} dd l}|d
dg}|jj||jjdd}|td	ksFtd S )Nr   )OrderedDictr   r   r   r   F)Dumperr   z6
        !!omap
        - a: 1
        - b: 2
        )r   r   )r   r   )collectionsr   r   r   r   RoundTripDumperr   r   )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   sJ   ddl m} dd l}|d
dg}|jj||jjdd}|td	ksFtd S )Nr   )r   r   r   r   r   F)r   r   z6
        !!omap
        - a: 1
        - b: 2
        )r   r   )r   r   )r   r   r   r   r   r!   r   r   )r	   r   r   r   r   r
   r
   r   test_dump_ruamel_ordereddictC   s    z%TestYAML.test_dump_ruamel_ordereddictc             C   s~   ddl m} |dddg}|jd |jd ||dddgksDt|jd |jd |jd ||ddddgksztd S )	Nr   )CommentedSetr   r   cdef)Zsrsly.ruamel_yaml.constructorr&   removeaddr   )r	   r&   sr
   r
   r   test_CommentedSetX   s    




zTestYAML.test_CommentedSetc             C   s:   dd l }tdddg}|jj|dd}|tdks6td S )Nr   r   r   r'   F)r   zG
        !!set
        a: null
        b: null
        c: null
        )r   setr   r   r   r   )r	   r   r   r   r
   r
   r   test_set_outd   s
    zTestYAML.test_set_outc             C   s   t d d S )Nz;
        !!set
        ? a
        ? b
        ? c
        )r   )r	   r
   r
   r   test_set_compactt   s    zTestYAML.test_set_compactc             C   s   t d d S )Nz@
        # Comment with spaces after it.


        a: 1
        )r   )r	   r
   r
   r   test_blank_line_after_comment   s    z&TestYAML.test_blank_line_after_commentc             C   s   t d d S )Nzc
        # Seq with empty lines in between items.
        b:
        - bar


        - baz
        )r   )r	   r
   r
   r   !test_blank_line_between_seq_items   s    z*TestYAML.test_blank_line_between_seq_itemsJythonzJython throws RepresenterErrorc             C   s`   d}t t|}t| t| |d d jdd dks>t|d d jdd dks\t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.


        r'   r   zit.r   
zline.)r   r   printr   splitr   )r	   r-   r(   r
   r
   r   "test_blank_line_after_literal_chip   s    z+TestYAML.test_blank_line_after_literal_chipc             C   s`   d}t t|}t| t| |d d jdd dks>t|d d jdd dks\t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.


        ...
        r'   r   zit.r   z

zline.z


N)r   r   r6   r   r7   r   )r	   r-   r(   r
   r
   r   "test_blank_line_after_literal_keep   s    z+TestYAML.test_blank_line_after_literal_keepc             C   s`   d}t t|}t| t| |d d jdd dks>t|d d jdd dks\t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.


        r'   r   zit.r    zline.)r   r   r6   r   r7   r   )r	   r-   r(   r
   r
   r   #test_blank_line_after_literal_strip   s    z,TestYAML.test_blank_line_after_literal_stripc             C   s   dd l }td}g }x"|jj|ddD ]}|j| q&W |jj||jjd}tt|d d |d d  t| ||ks~t	d S )Nr   z<        a: 'hello'
        ---
        b: "goodbye"
        T)Zpreserve_quotes)r   r   )
r   r   r   Zround_trip_load_allappendZdump_allr!   r6   typer   )r	   r   r-   datar   outr
   r
   r   test_load_all_perserve_quotes   s    z&TestYAML.test_load_all_perserve_quotesN)r   r   )r#   r   )__name__
__module____qualname__r   r   r   pytestmarkZskipifsysversion_infor"   platformpython_implementationr%   r.   r0   r1   r2   r3   r8   r9   r;   r@   r
   r
   r
   r   r      s,   



r   )
__future__r   rF   rD   rH   Z	roundtripr   r   r   r   r   r
   r
   r
   r   <module>   s
   