o
    
i                     @   sr   d dl m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	G dd dZ
G d	d
 d
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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ejje	 dkdddd Zdd Zdd Zdd ZdS )TestLiteralScalarStringc                 C      t d d S )Nz
        a: abcdefg
        r   self r   W/home/ubuntu/.local/lib/python3.10/site-packages/srsly/tests/ruamel_yaml/test_string.pytest_basic_string      z)TestLiteralScalarString.test_basic_stringc                 C   r	   )Nz
        a: '12345'
        r
   r   r   r   r   test_quoted_integer_string!   r   z2TestLiteralScalarString.test_quoted_integer_stringJythonzJython throws RepresenterError)reasonc                 C      d}t |tddd d S )Nz2
        a: |
          abc
          def
        zabc
def
aintermediater   dictr   inpr   r   r   test_preserve_string(   s   z,TestLiteralScalarString.test_preserve_stringc                 C   r   )Nz4
        a: |-
          abc
          def

        zabc
defr   r   r   )r   sr   r   r   test_preserve_string_strip4   s   z2TestLiteralScalarString.test_preserve_string_stripc                 C   s   d}t |tdddd d S )NzV
            a: |+
              ghi
              jkl


            b: x
            z
ghi
jkl


x)r   br   r   r   r   r   r   test_preserve_string_keepA   s   z1TestLiteralScalarString.test_preserve_string_keepc                 C   r   )NzT
            a: |+
              ghi
              jkl

            ...
            z	ghi
jkl

r   r   r   r   r   r   r    test_preserve_string_keep_at_endQ   s   z8TestLiteralScalarString.test_preserve_string_keep_at_endc                 C      d}t | d S )Nz3
        a: >
          abc
          def

        r
   r   r   r   r   test_fold_stringa      z(TestLiteralScalarString.test_fold_stringc                 C   r$   )Nz4
        a: >-
          abc
          def

        r
   r   r   r   r   test_fold_string_stripj   r&   z.TestLiteralScalarString.test_fold_string_stripc                 C   sF   t t}d}t|tddd W d    d S 1 sw   Y  d S )NzD
            a: >+
              abc
              def

            z	abc def

r   r   )pytestraisesAssertionErrorr   r   )r   excinfor   r   r   r   test_fold_string_keeps   s   "z-TestLiteralScalarString.test_fold_string_keepN)__name__
__module____qualname__r   r   r(   markskipifplatformpython_implementationr   r   r"   r#   r%   r'   r,   r   r   r   r   r      s4    



	



		r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestQuotedScalarStringc                 C      d}t |dd d S )Nz
        a: 'abc'
        Tpreserve_quotesr
   r   r   r   r   test_single_quoted_string      z0TestQuotedScalarString.test_single_quoted_stringc                 C   r5   )N
        a: "abc"
        Tr6   r
   r   r   r   r   test_double_quoted_string   r9   z0TestQuotedScalarString.test_double_quoted_stringc                 C   s   d}d}t ||d d S )Nr:   z
        a: abc
        )outpr
   )r   r   expr   r   r   'test_non_preserved_double_quoted_string   s   z>TestQuotedScalarString.test_non_preserved_double_quoted_stringN)r-   r.   r/   r8   r;   r>   r   r   r   r   r4   ~   s    r4   c                   @   s    e Zd ZdZdd Zdd ZdS )TestReplacez$inspired by issue 110 from sandres23c                 C   sV   dd l }td}t|dd}|d ddd}t||jjjs!J |tdks)J d S )	Nr   zO        foo: |
          foo
          foo
          bar
          foo
        Tr6   foobar   z9
        bar
        bar
        bar
        foo
        )srslyr   r   replace
isinstanceruamel_yamlscalarstringLiteralScalarStringr   rC   r   datasor   r   r   $test_replace_preserved_scalar_string   s   	z0TestReplace.test_replace_preserved_scalar_stringc                 C   sR   dd l }td}t|dd}|d ddd}t||jjjs!J |dks'J d S )	Nr   z'        foo: "foo foo bar foo"
        Tr6   r@   rA   rB   zbar bar bar foo)rC   r   r   rD   rE   rF   rG   DoubleQuotedScalarStringrI   r   r   r   (test_replace_double_quoted_scalar_string   s   z4TestReplace.test_replace_double_quoted_scalar_stringN)r-   r.   r/   __doc__rL   rN   r   r   r   r   r?      s    r?   c                   @   s   e Zd Zdd Zdd ZdS )TestWalkTreec                 C   sR   ddl m} ddlm} | }d|d< d|d< || d}t|t|ks'J d S )	Nr   CommentedMap)	walk_treer   r   zwith
newline
rB   zC        1: a
        2: |
          with
          newline
        )srsly.ruamel_yaml.commentsrR   srsly.ruamel_yaml.scalarstringrS   r   r   )r   rR   rS   rJ   r=   r   r   r   
test_basic   s   zTestWalkTree.test_basicc           
      C   s   ddl m} ddlm} ddlm}m} ddlm} ddlm} | }d|d< d	|d
< d|d< d|d< |d|fd|fd|fg}|||d d}	t	|t
|	ksRJ d S )Nr   )ordereddictrQ   )rS   preserve_literal)rM   )SingleQuotedScalarStringr   r   zwith
new : line
rB   z${abc}   zalmost:mapping   
z${:)mapzv        1: a
        2: |
          with
          new : line
        3: '${abc}'
        4: "almost:mapping"
        )srsly.ruamel_yaml.compatrW   rT   rR   rU   rS   rX   rM   rY   r   r   )
r   rW   rR   rS   rX   dqsqrJ   mr=   r   r   r   test_map   s   zTestWalkTree.test_mapN)r-   r.   r/   rV   rc   r   r   r   r   rP      s    rP   )
__future__r   r(   r2   	roundtripr   r   r   r   r   r4   r?   rP   r   r   r   r   <module>   s   e)