3
d                 @   s   d dl Z d dlZddlmZ G dd deZdd Zdd	 Zd
d Zdd Z	dd Z
dd ZG dd deZG dd deZdd Zdd Zdd ZdS )    N   )dedentc               @   s   e Zd Zdd Zdd ZdS )Dicec             C   s   t j| ||gS )N)tuple__new__)clsab r
   X/var/www/html/virt/lib64/python3.6/site-packages/srsly/tests/ruamel_yaml/test_add_xxx.pyr      s    zDice.__new__c             C   s   d|  S )NzDice(%s,%s)r
   )selfr
   r
   r   __repr__   s    zDice.__repr__N)__name__
__module____qualname__r   r   r
   r
   r
   r   r   
   s   r   c             C   s(   | j |}tt|jd\}}t||S )Nd)construct_scalarmapintsplitr   )loadernodevaluer   r	   r
   r
   r   dice_constructor   s    
r   c             C   s   | j ddj| S )Nz!dicez{}d{})represent_scalarformat)dumperdatar
   r
   r   dice_representer   s    r   c              C   sT   dd l } | jjdt tjt* | jjd| jjd}t	|dksFt
W d Q R X d S )Nr   z!dicezinitial hit points: !dice 8d4)Loaderz!{'initial hit points': Dice(8,4)})srsly.ruamel_yamlruamel_yamladd_constructorr   pytestraises
ValueErrorloadr   strAssertionError)srslyr   r
   r
   r   test_dice_constructor   s    r*   c              C   s\   dd l } tjt@ | jjdt| jjd | jjd| jjd}t	|dksNt
W d Q R X d S )Nr   z!dice)r   zinitial hit points: !dice 8d4z!{'initial hit points': Dice(8,4)})r    r#   r$   r%   r!   r"   r   r   r&   r'   r(   )r)   r   r
   r
   r   !test_dice_constructor_with_loader'   s    r+   c              C   s>   dd l } | jjtt | jjttddddddks:td S )Nr   
      )ZgoldF)default_flow_stylezgold: !dice 10d6
)r    r!   add_representerr   r   dumpdictr(   )r)   r
   r
   r   test_dice_representer4   s    r2   c              C   s   dd l } tjd}tjt` | jjd| | jjt	t
dddddd	ksPt| jjd
| jjdt	t
dddksxtW d Q R X d S )Nr   z	^\d+d\d+$z!dicer,      )ZtreasureF)r.   ztreasure: 10d20
zdamage: 5d10)r      )Zdamage)r    recompiler#   r$   r%   r!   Zadd_implicit_resolverr0   r1   r   r(   r&   r   )r)   patternr
   r
   r   test_dice_implicit_resolver?   s    

r8   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Obj1c             C   s   || _ d | _d S )N)_suffix_node)r   suffixr
   r
   r   __init__O   s    zObj1.__init__c             C   s
   || _ d S )N)r;   )r   nr
   r
   r   add_nodeS   s    zObj1.add_nodec             C   s   d| j | j f S )NzObj1(%s->%s))r:   items)r   r
   r
   r   r   V   s    zObj1.__repr__c             C   s
   t | jS )N)reprr;   )r   r
   r
   r   r0   Y   s    z	Obj1.dumpN)r   r   r   r=   r?   r   r0   r
   r
   r
   r   r9   N   s   r9   c               @   s(   e Zd ZdZedd Zedd ZdS )YAMLObj1z!obj:c             C   s8   dd l }t|}t||jjr0|j|j| nt|S )Nr   )r    r9   
isinstancer!   ZMappingNoder?   Zconstruct_mappingNotImplementedError)r   r   r<   r   r)   Zobj1r
   r
   r   	from_yaml`   s    zYAMLObj1.from_yamlc             C   s   |j | j|j |j S )N)r   yaml_tagr:   r0   )r   r   r   r
   r
   r   to_yamlk   s    zYAMLObj1.to_yamlN)r   r   r   rF   classmethodrE   rG   r
   r
   r
   r   rB   ]   s   rB   c              C   st   dd l } | jjttj | jjtjtj t	j
t6 | jjd| jjd}t| | jj|dksftW d Q R X d S )Nr   z!obj:x.2
a: 1)r   z!obj:x.2 "{'a': 1}"
)r    r!   r/   r9   rB   rG   add_multi_constructorrF   rE   r#   r$   r%   r&   r   printr0   r(   )r)   xr
   r
   r   test_yaml_objp   s    rL   c              C   s   dd l } | jjttj| jjd | jjtjtj	| jj
d tjt6 | jjd| jj
d}t| | jj|dksvtW d Q R X d S )Nr   )Dumper)r   z!obj:x.2
a: 1z!obj:x.2 "{'a': 1}"
)r    r!   r/   r9   rB   rG   rM   rI   rF   rE   r   r#   r$   r%   r&   rJ   r0   r(   )r)   rK   r
   r
   r   $test_yaml_obj_with_loader_and_dumper{   s    rN   c                 s^   dd l  G  fddd jj} td} jj|dd} jj|ddd	|jd
dksZtd S )Nr   c                   sD   e Zd Z jjZ jjZdZdd Z	e
dd Ze
 fddZdS )	ztest_issue_127.<locals>.Refz!Refc             S   s
   || _ d S )N)
logical_id)r   rO   r
   r
   r   r=      s    z$test_issue_127.<locals>.Ref.__init__c             S   s   | |j |S )N)r   )r   r   r   r
   r
   r   rE      s    z%test_issue_127.<locals>.Ref.from_yamlc                s4   t |j jjjr|jj}nd }|j| j|j|dS )N)style)rC   rO   r!   ZscalarstringZScalarStringrP   r   rF   )r   r   r   rP   )r)   r
   r   rG      s    
z#test_issue_127.<locals>.Ref.to_yamlN)r   r   r   r!   ZRoundTripConstructorZyaml_constructorZRoundTripRepresenterZyaml_representerrF   r=   rH   rE   rG   r
   )r)   r
   r   Ref   s   rQ   z    AList:
      - !Ref One
      - !Ref 'Two'
      - !Ref
        Two and a half
    BList: [!Ref Three, !Ref "Four"]
    CList:
      - Five Six
      - 'Seven Eight'
    T)Zpreserve_quotes      )indentZblock_seq_indentz
    Two andz Two and)r    r!   Z
YAMLObjectr   Zround_trip_loadZround_trip_dumpreplacer(   )rQ   documentr   r
   )r)   r   test_issue_127   s    
rW   )r5   r#   Z	roundtripr   r   r   r   r   r*   r+   r2   r8   r1   r9   objectrB   rL   rN   rW   r
   r
   r
   r   <module>   s   