3
d	                 @   sp   d dl mZ d dlZd dlZddlm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dS )    )print_functionN   )save_and_runc             C   s   d}t || dkstd S )Na      import srsly.ruamel_yaml
    from textwrap import dedent

    class Monster(srsly.ruamel_yaml.YAMLObject):
        yaml_tag = u'!Monster'

        def __init__(self, name, hp, ac, attacks):
            self.name = name
            self.hp = hp
            self.ac = ac
            self.attacks = attacks

        def __repr__(self):
            return "%s(name=%r, hp=%r, ac=%r, attacks=%r)" % (
                self.__class__.__name__, self.name, self.hp, self.ac, self.attacks)

    data = srsly.ruamel_yaml.load(dedent("""\
        --- !Monster
        name: Cave spider
        hp: [2,6]    # 2d6
        ac: 16
        attacks: [BITE, HURT]
    """), Loader=srsly.ruamel_yaml.Loader)
    # normal dump, keys will be sorted
    assert srsly.ruamel_yaml.dump(data) == dedent("""\
        !Monster
        ac: 16
        attacks: [BITE, HURT]
        hp: [2, 6]
        name: Cave spider
    """)
    r   )r   AssertionError)tmpdirprogram_src r   [/var/www/html/virt/lib64/python3.6/site-packages/srsly/tests/ruamel_yaml/test_yamlobject.pytest_monster   s    !r
      zno __qualname__)reasonc             C   s   d}t || dkstdS )z	issue 214a      from srsly.ruamel_yaml import YAML
    from srsly.ruamel_yaml.compat import StringIO

    class A:
        def f(self):
            pass

    yaml = YAML(typ='unsafe', pure=True)
    yaml.explicit_end = True
    buf = StringIO()
    yaml.dump(A.f, buf)
    res = buf.getvalue()
    print('res', repr(res))
    assert res == "!!python/name:__main__.A.f ''\n...\n"
    x = yaml.load(res)
    assert x == A.f
    r   N)r   r   )r   r   r   r   r	   test_qualified_name000   s    r   c             C   s   ddl m} ddl}ddlm} tjtd |ddd}d|_| }|j	|j
jjj| |j }|dkslt|j|}||j
jjjkstW dQ R X dS )	z	issue 214r   )YAMLN)StringIOZunsafeT)typZpurezJ!!python/name:srsly.ruamel_yaml.comments.CommentedBase.yaml_anchor ''
...
)Zsrsly.ruamel_yamlr   Zsrsly.ruamel_yaml.commentsZsrsly.ruamel_yaml.compatr   pytestZraises
ValueErrorZexplicit_enddumpZruamel_yamlcommentsZCommentedBaseZyaml_anchorgetvaluer   load)r   r   Zsrslyr   Zyamlbufresxr   r   r	   test_qualified_name01H   s    

r   )r   r   )r   r   )
__future__r   sysr   Z	roundtripr   r
   markZskipifversion_infor   r   r   r   r   r	   <module>   s   %