U
    ÌZj~+  ã                   @   sÎ   d dl mZ d dl mZ d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 dd	l m
Z
 dd
l mZ ddl m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dZdS )é   )Úconfig)Úengines)Úfixtures)Úeq_)Úrequirements)ÚColumn)ÚTableé   )ÚInteger)Úliteral)Úliteral_column)Úselect)ÚStringc                   @   sR   e Zd ZdZdZdZddiZedd„ ƒZdd	„ Z	d
d„ Z
dd„ Zejdd„ ƒZdS )ÚLastrowidTestÚeachT)Zimplements_get_lastrowidÚautoincrement_insertÚimplicit_returningFc              	   C   sL   t d|tdtddd�tdtdƒƒƒ t d|tdtddd	�tdtdƒƒƒ d S )
NÚ
autoinc_pkÚidT©Úprimary_keyZtest_needs_autoincrementÚdataé2   Ú	manual_pkF©r   Zautoincrement©r   r   r
   r   ©ÚclsÚmetadata© r   úg/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/sqlalchemy/testing/suite/test_insert.pyÚdefine_tables   s"       ÿú	üzLastrowidTest.define_tablesc                 C   s(   |  | ¡ ¡ ¡ }t||jjdfƒ d S ©Nú	some data©Úexecuter   Úfirstr   ÚdialectZdefault_sequence_base©ÚselfÚtableÚconnÚrowr   r   r    Ú_assert_round_trip*   s    þþz LastrowidTest._assert_round_tripc                 C   s.   |  | jj ¡ tdd�¡ |  | jj|¡ d S ©Nr#   ©r   ©r%   Útablesr   ÚinsertÚdictr-   ©r)   Ú
connectionr   r   r    Útest_autoincrement_on_insert4   s
    
 ÿz*LastrowidTest.test_autoincrement_on_insertc                 C   sB   |  | jj ¡ tdd�¡}| t| jjjjƒ¡}t	|j
|fƒ d S r.   ©r%   r1   r   r2   r3   Úscalarr   Úcr   r   Úinserted_primary_key©r)   r5   ÚrÚpkr   r   r    Útest_last_inserted_id;   s    
 ÿz#LastrowidTest.test_last_inserted_idc                 C   sD   |  | jj ¡ tdd�¡}|j}| t| jjjj	ƒ¡}t
||ƒ d S r.   )r%   r1   r   r2   r3   Ú	lastrowidr8   r   r9   r   r   )r)   r5   r<   r?   r=   r   r   r    Útest_native_lastrowid_autoincC   s    
 ÿz+LastrowidTest.test_native_lastrowid_autoincN)Ú__name__Ú
__module__Ú__qualname__Úrun_deletesÚ__backend__Ú__requires__Ú__engine_options__Úclassmethodr!   r-   r6   r>   r   Zdbapi_lastrowidr@   r   r   r   r    r      s   

r   c                   @   s�   e Zd ZdZdZedd„ ƒZejdd„ ƒZ	ej
dd„ ƒZejd	d
„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZejdd„ ƒZdS )ÚInsertBehaviorTestr   Tc                 C   s˜   t d|tdtddd�tdtdƒƒƒ t d|tdtddd	�tdtdƒƒƒ t d
|tdtddd�tdtdƒƒtdtdd�tdttdtd�tdƒ d�ƒ d S )Nr   r   Tr   r   r   r   Fr   Úincludes_defaultsÚxé   )ÚdefaultÚyÚ2)Útype_r   )r   r   r
   r   r   r   r   r   r   r    r!   Q   sD       ÿúü   ÿýøz InsertBehaviorTest.define_tablesc              	   C   s†   t jjrtjddid�}ntj}| ¡ � }| | j	j
 ¡ tdd�¡}W 5 Q R X |jsXt‚|jrbt‚|jslt‚|jr‚| ¡ d ks‚t‚d S )Nr   F)Úoptionsr#   r/   )r   Ú	returningZenabledr   Ztesting_enginer   ÚdbÚbeginr%   r1   r   r2   r3   Ú_soft_closedÚAssertionErrorÚclosedÚ	is_insertÚreturns_rowsÚfetchone)r)   Zenginer+   r<   r   r   r    Útest_autoclose_on_insertp   s    ÿ

 ÿ


z+InsertBehaviorTest.test_autoclose_on_insertc                 C   sd   |  | jj ¡ tdd�¡}|js$t‚|jr.t‚|js8t‚|j	sBt‚t
| ¡ d ƒ t
| ¡ dgƒ d S )Nr#   r/   r   )r%   r1   r   r2   r3   rU   rV   rW   rX   rY   r   rZ   Úkeys©r)   r5   r<   r   r   r    Ú+test_autoclose_on_insert_implicit_returningˆ   s    
 ÿ



z>InsertBehaviorTest.test_autoclose_on_insert_implicit_returningc                 C   s`   |  | jj ¡ ¡}|jst‚|jr&t‚|  | jj ¡  | jjj	j
d k¡¡}tt| ¡ ƒdƒ d S )Né   ©r%   r1   r   r2   rU   rV   rW   r   Úwherer9   r   r   ÚlenÚallr]   r   r   r    Útest_empty_insert    s    

ÿÿz$InsertBehaviorTest.test_empty_insertc                 C   sh   |  | jj ¡ i i i g¡}|js$t‚|jr.t‚|  | jj ¡  | jjj	j
d k¡¡}tt| ¡ ƒdƒ d S )Nr	   r`   r]   r   r   r    Útest_empty_insert_multiple­   s    

ÿÿz-InsertBehaviorTest.test_empty_insert_multiplec                 C   s®   | j j}| j j}| | ¡ tddd�tddd�tddd�g¡ | | ¡  dt|jj	ƒ 
|jj	 ddg¡¡¡¡}t|jd	ƒ | t|jj	ƒ |jj	¡¡}t| ¡ d
dgƒ d S )Nr_   Údata1©r   r   r   Údata2r	   Údata3r/   ©N©rh   ©ri   )r1   r   r   r%   r2   r3   Úfrom_selectr   r9   r   ra   Úin_r   r:   Úorder_byÚfetchall©r)   r5   Z	src_tableZ
dest_tableÚresultr   r   r    Útest_insert_from_select_autoinc»   s,    


ýþ	ÿþÿ	ÿz2InsertBehaviorTest.test_insert_from_select_autoincc                 C   s|   | j j}| j j}| | ¡  dt|jjƒ 	|jj 
ddg¡¡¡¡}t|jdƒ | t|jjƒ |jj¡¡}t| ¡ g ƒ d S )Nr/   rh   ri   rj   )r1   r   r   r%   r2   rm   r   r9   r   ra   rn   r   r:   ro   rp   rq   r   r   r    Ú'test_insert_from_select_autoinc_no_rowsØ   s    ÿþÿÿz:InsertBehaviorTest.test_insert_from_select_autoinc_no_rowsc                 C   sª   | j j}| | ¡ tddd�tddd�tddd�g¡ | | ¡  ¡  dt|jj	d |jj
ƒ |jj
 ddg¡¡¡¡ t| t|jj
ƒ |jj
¡¡ ¡ d	d
d
ddgƒ d S )Nr_   rf   rg   r   rh   r	   ri   rL   )rf   rk   rl   )r1   r   r%   r2   r3   Úinlinerm   r   r9   r   r   ra   rn   r   ro   rp   ©r)   r5   r*   r   r   r    Útest_insert_from_selectí   s,    


ýþ	ÿüÿÿüz*InsertBehaviorTest.test_insert_from_selectc                 C   s¬   | j j}| | ¡ tddd�tddd�tddd�g¡ | | ¡  ¡  dt|jj	d |jj
ƒ |jj
 ddg¡¡¡¡ t| t|ƒ |jj
|jj	¡¡ ¡ d	d
dddgƒ d S )Nr_   rf   rg   r   rh   r	   ri   rL   )r_   rf   rL   é   )r   rh   rL   rx   )é   rh   rL   rx   )r	   ri   rL   rx   )é   ri   rL   rx   )r1   rJ   r%   r2   r3   ru   rm   r   r9   r   r   ra   rn   r   ro   rp   rv   r   r   r    Ú%test_insert_from_select_with_defaults  s6    


ýþ	ÿüÿÿûüz8InsertBehaviorTest.test_insert_from_select_with_defaultsN)rA   rB   rC   rD   rE   rH   r!   r   r   r[   rR   r^   Zempty_insertsrd   Zempty_inserts_executemanyre   Zinsert_from_selectrs   rt   rw   r{   r   r   r   r    rI   M   s(   







rI   c                   @   sZ   e Zd ZdZdZdZddiZdd„ Zedd„ ƒZ	e
jd	d
„ ƒZdd„ Zdd„ Zdd„ ZdS )ÚReturningTestr   )rR   r   Tr   c                 C   s(   |  | ¡ ¡ ¡ }t||jjdfƒ d S r"   r$   r(   r   r   r    r-   7  s    þþz ReturningTest._assert_round_tripc              	   C   s(   t d|tdtddd�tdtdƒƒƒ d S )Nr   r   Tr   r   r   r   r   r   r   r    r!   A  s       ÿúzReturningTest.define_tablesc                 C   sT   | j j}| | ¡  |jj¡tdd�¡}| ¡ d }| 	t
|jjƒ¡}t||ƒ d S ©Nr#   r/   é    ©r1   r   r%   r2   rR   r9   r   r3   r&   r8   r   r   ©r)   r5   r*   r<   r=   Z
fetched_pkr   r   r    Ú%test_explicit_returning_pk_autocommitL  s     ÿz3ReturningTest.test_explicit_returning_pk_autocommitc                 C   sT   | j j}| | ¡  |jj¡tdd�¡}| ¡ d }| 	t
|jjƒ¡}t||ƒ d S r}   r   r€   r   r   r    Ú(test_explicit_returning_pk_no_autocommitV  s     ÿz6ReturningTest.test_explicit_returning_pk_no_autocommitc                 C   s.   |  | jj ¡ tdd�¡ |  | jj|¡ d S r.   r0   r4   r   r   r    Ú/test_autoincrement_on_insert_implicit_returning_  s
    
 ÿz=ReturningTest.test_autoincrement_on_insert_implicit_returningc                 C   sB   |  | jj ¡ tdd�¡}| t| jjjjƒ¡}t	|j
|fƒ d S r.   r7   r;   r   r   r    Ú(test_last_inserted_id_implicit_returningf  s    
 ÿz6ReturningTest.test_last_inserted_id_implicit_returningN)rA   rB   rC   Zrun_create_tablesrF   rE   rG   r-   rH   r!   r   Zfetch_rows_post_commitr�   r‚   rƒ   r„   r   r   r   r    r|   0  s   



		r|   )r   rI   r|   N)Ú r   r   r   Z
assertionsr   r   Zschemar   r   r
   r   r   r   r   Z
TablesTestr   rI   r|   Ú__all__r   r   r   r    Ú<module>   s    > d?