o
    "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data2   )r   r   r   r   )clsmetadata r   a/home/ubuntu/dev/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	rg 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