o
    ,wÖiŻ  ć                   @   s~   d Z ddlmZ ddlZddlmZ ddlmZ G dd dej	Z
G dd	 d	ej	ZG d
d dejZedkr=e ”  dS dS )zTests for history.é    )ŚabsltestN)Śhistory)Śfake_encoder_decoderc                   @   ó   e Zd ZdZdS )Ś	SampleTagzA sample tag.N©Ś__name__Ś
__module__Ś__qualname__Ś__doc__© r   r   śU/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/fiddle/_src/history_test.pyr      ó    r   c                   @   r   )ŚAdditionalTagzAn extra tag.Nr   r   r   r   r   r      r   r   c                   @   sl   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd ZdS )ŚHistoryTestc                 C   sD   t jddd d}|  t|d” t jdddd}|  t|d” d S )	Nz
my_file.pyé{   ©ŚfilenameŚline_numberŚfunction_namezmy_file.py:123zmy_other_file.pyéA  Śmake_configz my_other_file.py:321:make_config)r   ŚLocationŚassertEqualŚstr©ŚselfŚlocationr   r   r   Śtest_location_formatting"   s   ’żz$HistoryTest.test_location_formattingc                 C   sl   t jddd d}|  | d”d” |  | d”d” t jdd	d
d}|  | d”d” |  | d”d” d S )Nzfoo/bar/baz/my_file.pyr   r   é   z.../bar/baz/my_file.py:123é   z.../baz/my_file.py:123zfoo/bar/baz/my_other_file.pyr   r   é   z,foo/bar/baz/my_other_file.py:321:make_configé   z$.../my_other_file.py:321:make_config)r   r   r   Śformatr   r   r   r   Ś test_location_formatting_concise,   s   ’ż
’z,HistoryTest.test_location_formatting_concisec                 C   s>   t  dd”}|  |jd” |  |jt jj” |  |jd” d S )NŚxr"   )r   Ś	new_valuer   Ś
param_nameŚkindŚ
ChangeKindŚ	NEW_VALUE©r   Śentryr   r   r   Śtest_entry_simple<   s   zHistoryTest.test_entry_simplec                 C   s>   t  d”}|  |jd” |  |jt jj” |  |jt j” d S )NŚy)	r   Śdeleted_valuer   r'   r(   r)   r*   r&   ŚDELETEDr+   r   r   r   Śtest_entry_deletionB   s   
zHistoryTest.test_entry_deletionc                 C   sX   t th}t d|”}|  |jd” |  |jtjj” |  	||j
” |  t||j
” d S )NŚz)r   r   r   Śupdate_tagsr   r'   r(   r)   ŚUPDATE_TAGSŚassertIsNotr&   Ś	frozenset)r   Śtag_setr,   r   r   r   Śtest_updating_tagsH   s   zHistoryTest.test_updating_tagsc                 C   sL   t  dd”}|  |jjd” |  |jjd” |  |jd” |  |jd” d S )Nr%   r   śhistory_test.pyŚtest_location_provider)r   r&   ŚassertRegexr   r   r   r   r'   r+   r   r   r   r:   P   s
   z"HistoryTest.test_location_providerc                 C   sŽ   t  dd”}t  dd ” t  dd”}W d    n1 sw   Y  t  dd”}|  |jjd	” |  |jjd
” |  |jjd	” |  |jjd” |  |jjd |jj” |  |jjd” |  |jjd” |  |jjd” d S )Nr%   r"   c                   S   s   t  ddd”S )Nśother.pyr   Śfoo)r   r   r   r   r   r   Ś<lambda>[   s    z;HistoryTest.test_custom_location_provider.<locals>.<lambda>r.   r    r2   r   r9   r<   r   r!   Śtest_custom_location_providerr=   )	r   r&   Ścustom_locationr;   r   r   r   r   r   )r   Śe1Śe2Śe3r   r   r   r?   X   s   ’žz)HistoryTest.test_custom_location_providerc                 C   s   |   ttjd” d S )Nr0   )r   Śreprr   r0   )r   r   r   r   Śtest_deleted_reprj   s   zHistoryTest.test_deleted_reprc                 C   s*   t j ” }|jd \}|  |jjd” d S )NŚencoderzfake_encoder_decoder.py)r   ŚfixtureŚas_buildableŚ__argument_history__ŚassertEndsWithr   r   )r   Śconfigr,   r   r   r   Ś!test_auto_config_history_locationm   s   
z-HistoryTest.test_auto_config_history_locationc                 C   s   t  ” }| dd” |  |d d” |  |d d jd” t  ”  | dd” W d    n1 s2w   Y  |  |d d” d S )NŚarg_namer"   é’’’’r    )r   ŚHistoryŚadd_new_valueŚ	assertLenr   r&   Śsuspend_tracking©r   Śarg_historyr   r   r   Śtest_suspend_tracking_new_valuer   s   
’z+HistoryTest.test_suspend_tracking_new_valuec                 C   s¶   t  ” }| dd” |  |d d” t  ”  | d” W d    n1 s&w   Y  |  |d d” | d” |  |d d” |  |d d jt jj	” |  |d d j
t j” d S ©NrM   r"   r    rN   )r   rO   rP   rQ   rR   Śadd_deleted_valuer   r(   r)   r*   r&   r0   rS   r   r   r   Ś#test_suspend_tracking_deleted_value{   s   
’
’z/HistoryTest.test_suspend_tracking_deleted_valuec                 C   sĘ   t  ” }| dth” |  |d d” t  ”  | dtth” W d    n1 s*w   Y  |  |d d” | dtth” |  |d d” |  |d d jt j	j
” |  |d d jtth” d S rV   )r   rO   Śadd_updated_tagsr   rQ   rR   r   r   r(   r)   r4   r&   rS   r   r   r   Ś!test_suspend_tracking_update_tags   s   
’’’z-HistoryTest.test_suspend_tracking_update_tagsN)r   r	   r
   r   r$   r-   r1   r8   r:   r?   rE   rL   rU   rX   rZ   r   r   r   r   r       s    
	r   Ś__main__)r   Śabsl.testingr   ŚfiddleŚfdlŚfiddle._srcr   Śfiddle._src.testing.exampler   ŚTagr   r   ŚTestCaser   r   Śmainr   r   r   r   Ś<module>   s   w’