U
    ui                     @   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dddgejjdd Zeddddgejjdd ZdS )SimpleUpdateDeleteTestZeach)Zsane_rowcountTc                 C   s&   t d|tdtddtdtd d S )Nplain_pkidT)Zprimary_keydata2   )r   r   r   r   )clsmetadata r   e/home/lhs5088/backend/venv/lib/python3.8/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   sz   | j j}|| |jjdktdd}|jr6t	|j
r@t	|jdksNt	t|| |jj dddg d S )Nr   d2_newr   r   r   r   r   r   r   r   )r   r   r   updatewherecr   dict	is_insertAssertionError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.t|j	r8t|j
dksFt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+   r,   r-   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	rT||jjdk}n$|j
rp||jjg }n|  ||tdd}|jrt|jstt| ddg |j	rt| dg nt| g  t|| |jj |j	rddd	gndd
d	g d S )N
   r   r   r   r   r   r    r   r!   r   r   )r   r   r"   	returningr$   r   r   r6   r#   r5   r7   in_failr   r%   r&   r'   r(   r   keysallr*   r+   r,   r.   r   r4   r/   stmtr0   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	rT||jjdk}n$|j
rp||jjg }n|  ||}|jrt|jstt| ddg |j	rt| dg nt| g  t|| |jj |j	rddgndddg d S )Nr8   r   r   r   r9   r   r!   )r   r   r2   r:   r$   r   r   r6   r#   r5   r7   r;   r<   r   r&   r'   r(   r   r=   r>   r*   r+   r,   r?   r   r   r   test_delete_returningg   s,    



z,SimpleUpdateDeleteTest.test_delete_returningN)__name__
__module____qualname__Zrun_deletes__requires__Z__sparse_driver_backend__classmethodr   r   r1   r3   r	   Z	variationrequiresZupdate_returningrA   Zdelete_returningrB   r   r   r   r   r
      s   


!r
   )r
   N) r   Z
assertionsr   Zschemar   r   r   r   r	   Z
TablesTestr
   __all__r   r   r   r   <module>	   s   y