o
    ¡D®fš  ã                   @   sn   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dZdS )é   )Úfixtures)Úeq_)ÚColumn)ÚTableé   )ÚInteger)ÚString)Útestingc                   @   s€   e Zd ZdZdZdZedd„ ƒZedd„ ƒZdd	„ Z	d
d„ Z
e dg d¢¡ejjdd„ ƒƒZe dg d¢¡ejjdd„ ƒƒZdS )ÚSimpleUpdateDeleteTestÚeach)Úsane_rowcountTc                 C   s&   t d|tdtddtdtdƒƒƒ d S )NÚplain_pkÚidT)Úprimary_keyÚdataé2   )r   r   r   r   )ÚclsÚmetadata© r   úd/home/ubuntu/webapp/venv/lib/python3.10/site-packages/sqlalchemy/testing/suite/test_update_delete.pyÚdefine_tables   s   üz$SimpleUpdateDeleteTest.define_tablesc                 C   s0   |  | jj ¡ dddœdddœdddœg¡ d S )Né   Úd1)r   r   r   Úd2r   Úd3)ÚexecuteÚtablesr   Úinsert)r   Ú
connectionr   r   r   Úinsert_data    s   
ýþz"SimpleUpdateDeleteTest.insert_datac                 C   sx   | j j}| | ¡  |jjdk¡tdd¡}|jrJ ‚|j	r J ‚|j
dks'J ‚t| | ¡  |jj¡¡ ¡ g d¢ƒ d S )Nr   Úd2_new©r   r   ©©r   r   ©r   r    ©r   r   )r   r   r   ÚupdateÚwhereÚcr   ÚdictÚ	is_insertÚreturns_rowsÚrowcountr   ÚselectÚorder_byÚfetchall©Úselfr   ÚtÚrr   r   r   Útest_update+   s   ÿ

þz"SimpleUpdateDeleteTest.test_updatec                 C   sp   | j j}| | ¡  |jjdk¡¡}|jrJ ‚|jrJ ‚|j	dks#J ‚t
| | ¡  |jj¡¡ ¡ ddgƒ d S )Nr   r   r#   r%   )r   r   r   Údeleter'   r(   r   r*   r+   r,   r   r-   r.   r/   r0   r   r   r   Útest_delete9   s   

þz"SimpleUpdateDeleteTest.test_deleteÚcriteria)ÚrowsÚnorowsÚemptyinc                 C   s  | j j}| ¡  |jj|jj¡}|jr| |jjdk¡}n|j	r*| |jjdk¡}n|j
r8| |jj g ¡¡}n| ¡  | |tdd¡}|jrJJ ‚|jsOJ ‚t| ¡ ddgƒ |j	rdt| ¡ dgƒ nt| ¡ g ƒ t| | ¡  |jj¡¡ ¡ |j	rƒg d¢ƒ d S g d	¢ƒ d S )
Né
   r   r    r!   r   r   r$   r"   ©r#   ©r   r   r%   )r   r   r&   Ú	returningr(   r   r   r9   r'   r8   r:   Úin_Úfailr   r)   r*   r+   r   ÚkeysÚallr-   r.   r/   ©r1   r   r7   r2   Ústmtr3   r   r   r   Útest_update_returningD   s.   

ÿýûz,SimpleUpdateDeleteTest.test_update_returningc                 C   s  | j j}| ¡  |jj|jj¡}|jr| |jjdk¡}n|j	r*| |jjdk¡}n|j
r8| |jj g ¡¡}n| ¡  | |¡}|jrFJ ‚|jsKJ ‚t| ¡ ddgƒ |j	r`t| ¡ dgƒ nt| ¡ g ƒ t| | ¡  |jj¡¡ ¡ |j	rddgƒ d S g d¢ƒ d S )	Nr;   r   r   r   r=   r#   r%   r<   )r   r   r5   r>   r(   r   r   r9   r'   r8   r:   r?   r@   r   r*   r+   r   rA   rB   r-   r.   r/   rC   r   r   r   Útest_delete_returningg   s.   


ÿýûz,SimpleUpdateDeleteTest.test_delete_returningN)Ú__name__Ú
__module__Ú__qualname__Úrun_deletesÚ__requires__Ú__backend__Úclassmethodr   r   r4   r6   r	   Ú	variationÚrequiresÚupdate_returningrE   Údelete_returningrF   r   r   r   r   r
      s     


!r
   )r
   N)Ú r   Ú
assertionsr   Úschemar   r   r   r   r	   Ú
TablesTestr
   Ú__all__r   r   r   r   Ú<module>   s   y