U
    [h                     @   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   )clsZmetadata r   Q./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   r5   r"   r4   r6   in_failr   r$   r%   r&   r'   r   keysallr)   r*   r+   r-   r   r3   r.   Zstmtr/   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 )Nr7   r   r   r   r8   r   r    )r   r   r1   r9   r#   r   r   r5   r"   r4   r6   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_deletesZ__requires__Z__backend__classmethodr   r   r0   r2   r	   Z	variationZrequiresZupdate_returningr?   Zdelete_returningr@   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