o
    ;D©iÍ  ã                   @   s,  d dl mZmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZm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d „ Z d!d"„ Z!d#d$„ Z"d%d&„ Z#d'd(„ Z$d)d*„ Z%d+d,„ Z&d-d.„ Z'd/d0„ Z(d1d2„ Z)d3d4„ Z*d5d6„ Z+dS )7é    )Úabsolute_importÚprint_functionÚdivisionN)Úieq)ÚFieldSelectionError)Ú
fieldnames)Ú	setheaderÚextendheaderÚ
pushheaderÚskipÚrenameÚprefixheaderÚsuffixheaderÚ
sortheaderc                  C   ó.   d} t | ddgƒ}d}t||ƒ t||ƒ d S )N©©ÚfooÚbar©Úaé   ©Úbé   ÚfoofooÚbarbar)©r   r   r   r   ©r   r   ©Útable1Útable2Úexpect2© r#   úY/var/www/Datamplify/venv/lib/python3.10/site-packages/petl/test/transform/test_headers.pyÚtest_setheader   ó
   
r%   c                  C   ó$   d} t | ddgƒ}d}t||ƒ d S )N©r   r   r   )r   r   r   r#   r#   r$   Útest_setheader_empty   ó   r)   c                  C   s&   g } t | ddgƒ}dg}t||ƒ d S ©Nr   r   r   r   ©ÚtableÚactualÚexpectr#   r#   r$   Útest_setheader_headerless!   s   r0   c                  C   r   )N)©r   ©r   r   T©r   r   Fr   Úbaz)©r   r   r4   r2   r3   ©r	   r   r   r#   r#   r$   Útest_extendheader(   r&   r7   c                  C   r'   )N)r1   r   r4   )r5   r6   r   r#   r#   r$   Útest_extendheader_empty5   r*   r8   c                  C   ó0   g } t | ddgƒ}dg}t||ƒ t||ƒ d S r+   r6   r,   r#   r#   r$   Útest_extendheader_headerless=   ó
   
r:   c                  C   r   )N©r   r   r   r   r   ©r
   r   r   r#   r#   r$   Útest_pushheaderE   s
   
r>   c                  C   sf   d} t | ddgƒ}d}t||ƒ tƒ } t | ddgƒ}d}t||ƒ tƒ } t | ddƒ}d}t||ƒ d S )N)r   r   r   )r   r   r(   )r
   r   Útupler   r#   r#   r$   Útest_pushheader_emptyQ   s   

r@   c                  C   r9   r+   r=   r,   r#   r#   r$   Útest_pushheader_headerlessd   r;   rA   c                  C   s¶   d} t | ddƒ}d}t||ƒ t||ƒ d} t | dddddƒ}d	}t||ƒ t||ƒ d} t | ddddƒ}d
}t||ƒ t||ƒ d} t | ddddddƒ}d}t||ƒ t||ƒ d S )Nr<   r   r   r   )©r   r   é   éo   iW  ©r   r   é   éÞ   i®  Úfoo1Úfoo2Úfoo3))r   r   rH   rI   rJ   rB   rE   ))r   r   rH   rI   rB   rE   Úfoo4))r   r   rH   rI   rJ   rK   rB   rE   r=   r   r#   r#   r$   Útest_pushheader_positionall   s(   






rL   c                  C   s*   d} t | dƒ}d}t||ƒ t||ƒ d S )N)©z#aaaÚbbbÚccc©z#mmmr   r   r   r   r   ©r   r   r   r#   r#   r$   Ú	test_skipš   s
   

rR   c                  C   s    d} t | dƒ}d}t||ƒ d S )N)rM   rP   r   r   r(   rQ   r   r#   r#   r$   Útest_skip_empty©   s   
rS   c                  C   ó    g } t | dƒ}g }t||ƒ d S )Nr   rQ   r,   r#   r#   r$   Útest_skip_headerless³   ó   
rU   c                  C   s    d} t | ddƒ}t|ƒdksJ ‚t | ddƒ}t|ƒdksJ ‚t | dddœƒ}t|ƒdks.J ‚t | d	d
dœƒ}t|ƒdks>J ‚t | ƒ}d|d< t|ƒdksNJ ‚d S )N©r   )ÚMé   )ÚFé"   )ú-é8   r   r   ©r   r   r   r   r   r   r4   Úquux)r   r   )r4   r_   Úspong)r`   r   )r   r   ©r-   Úresultr#   r#   r$   Útest_renameº   s   rc   c                  C   s°   d} t | ddƒ}zt|ƒ W n	 ty   Y nw J dƒ‚t | ddƒ}zt|ƒ W n	 ty1   Y nw J dƒ‚t | dddd}t|ƒdksFJ ‚t | dddd}t|ƒdksVJ ‚d S )	NrW   r4   r_   Fzexception expectedr   )Ústrictr   )r   r   r   ra   r#   r#   r$   Útest_rename_strictÒ   s&   ÿÿre   c                  C   s"   d} d}t | ddƒ}t||ƒ d S )Nr(   )r^   r   r   )r   r   )r-   r/   r.   r#   r#   r$   Útest_rename_emptyï   s   rf   c                  C   sF   g } t  t¡ t| ddƒD ]}qW d   ƒ d S 1 sw   Y  d S )Nr   r   )ÚpytestÚraisesr   r   )r-   Úir#   r#   r$   Útest_rename_headerlessö   s   ÿ"ÿrj   c                  C   ó*   d} d}t | dƒ}t||ƒ t||ƒ d S )N©r   ©r   ÚA©r   ÚB))Úpre_fooÚpre_barrm   ro   Úpre_©r   r   ©r    r/   r.   r#   r#   r$   Útest_prefixheaderý   ó
   

rv   c                  C   rT   )Nrs   rt   r,   r#   r#   r$   Útest_prefixheader_headerless  rV   rx   c                  C   rk   )Nrl   ))Úfoo_sufÚbar_sufrm   ro   Ú_suf©r   r   ru   r#   r#   r$   Útest_suffixheader  rw   r}   c                  C   rT   )Nr{   r|   r,   r#   r#   r$   Útest_suffixheader_headerless"  rV   r~   c                  C   s   d} d}t | ƒ}t||ƒ d S )N))Úidr   r   r4   ©r   r   r   é   ©r   é   é   é   ))r   r4   r   r   )r   r   r   r   )r„   r…   rƒ   r   ©r   r   ru   r#   r#   r$   Útest_sortheaders)  s   r‡   c                  C   s   d} d}t | ƒ}t||ƒ dS )za Failing test case provided in sortheader()
    with duplicate column names overlays values #392 ))r   r   r   r   r€   r‚   ))r   r   r   r   )r   r   r   r   )rƒ   r„   r…   r   Nr†   ru   r#   r#   r$   Ú"test_sortheaders_duplicate_headers9  s   rˆ   c                  C   s   g } t | ƒ}g }t||ƒ d S )Nr†   r,   r#   r#   r$   Útest_sortheader_headerlessK  s   r‰   ),Ú
__future__r   r   r   rg   Úpetl.test.helpersr   Úpetl.errorsr   Ú	petl.utilr   Úpetl.transform.headersr   r	   r
   r   r   r   r   r   r%   r)   r0   r7   r8   r:   r>   r@   rA   rL   rR   rS   rU   rc   re   rf   rj   rv   rx   r}   r~   r‡   rˆ   r‰   r#   r#   r#   r$   Ú<module>   s<    (.
