o
    E6d                     @   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 G dd dejZdS )    )	bindparam)Column)Integer)MetaData)select)String)Table)testing)text)eq_)fixturesc                   @   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
dd Zedddgeddejjfdejjfgdd Zdd Zdd Zdd Zejjdd Zejjdd ZdS ) RowCountTestztest rowcount functionality)Zsane_rowcountTc              	   C   s4   t d|tdtdddtdtdtdtd	 d S )
N	employeesemployee_idFTZautoincrementZprimary_keyname2   
department   )r   r   r   r   )clsmetadata r   }C:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\sqlalchemy/testing/suite/test_rowcount.pydefine_tables   s   zRowCountTest.define_tablesc                 C   s8   g d | _ }| jj}|| dd t|D  d S )N)	)ZAngelaA)ZAndrewr   )ZAnandr   )BobB)ZBobetter   )ZBuffyr   )ZCharlieC)Cynthiar   )ZChrisr   c                 S   s    g | ]\}\}}|||d qS ))r   r   r   r   ).0indr   r   r   
<listcomp>6   s    

z,RowCountTest.insert_data.<locals>.<listcomp>)datatablesr   executeinsert	enumerate)r   
connectionr$   employees_tabler   r   r   insert_data%   s   zRowCountTest.insert_datac                 C   sB   | j j}t|jj|jj|jj}||	 }t
|| j d S )N)r%   r   r   cr   r   Zorder_byr   r&   Zfetchallr   r$   )selfr)   r*   srowsr   r   r   
test_basic<   s   
zRowCountTest.test_basicc                 C   s@   | j j}|jj}|| |dkddi}|jdksJ d S )Nr   r   Z   )r%   r   r,   r   r&   updatewhererowcountr-   r)   r*   r   rr   r   r   test_update_rowcount1E   s   z"RowCountTest.test_update_rowcount1c                 C   s>   | j j}|jj}|| |dkddi}t|jd d S )Nr   r   r2   )	r%   r   r,   r   r&   r3   r4   r   r5   r6   r   r   r   test_update_rowcount2P   s   z"RowCountTest.test_update_rowcount2implicit_returningFdmlr3   deletec              	   C   s   |r| j j}ntdt tdtdddtdtdtdtd	dd
}|jj}|j	r=|	 
|dkj|jjd d }n|jrL| 
|dk }n|  ||}t|jd dS )znote this test should succeed for all RETURNING backends
        as of 2.0.  In
        Idf28379f8705e403a3c6a937f6a798a042ef2540 we changed rowcount to use
        len(rows) when we have implicit returning

        r   r   FTr   r   r   r   r   )r:   r   r1   )r   r2   N)r%   r   r   r   r   r   r   r,   r   r3   r4   valuesZreturn_defaultsr<   Zfailr&   r   r5   )r-   r)   r:   r;   r*   r   stmtr7   r   r   r   +test_update_delete_rowcount_return_defaults\   s>   



z8RowCountTest.test_update_delete_rowcount_return_defaultsc                 C   s   | d}t|jd d S Nz8update employees set department='Z' where department='C'r2   )Zexec_driver_sqlr   r5   r-   r)   resultr   r   r   test_raw_sql_rowcount   s   z"RowCountTest.test_raw_sql_rowcountc                 C   s   | td}t|jd d S r@   )r&   r
   r   r5   rA   r   r   r   test_text_rowcount   s   zRowCountTest.test_text_rowcountc                 C   s8   | j j}|jj}|| |dk}t|jd d S )Nr   r2   )	r%   r   r,   r   r&   r<   r4   r   r5   r6   r   r   r   test_delete_rowcount   s   z!RowCountTest.test_delete_rowcountc                 C   sX   | j j}| |jjtdkjdd}||ddiddiddig}t	|j
d d S )Nemp_namer   )r   r   r   nonexistent   )r%   r   r3   r4   r,   r   r   r=   r&   r   r5   r-   r)   r*   r>   r7   r   r   r   test_multi_update_rowcount   s   	z'RowCountTest.test_multi_update_rowcountc                 C   sP   | j j}| |jjtdk}||ddiddiddig}t|j	d d S )NrF   r   r   rG   rH   )
r%   r   r<   r4   r,   r   r   r&   r   r5   rI   r   r   r   test_multi_delete_rowcount   s   	z'RowCountTest.test_multi_delete_rowcountN)__name__
__module____qualname____doc____requires__Z__backend__classmethodr   r+   r0   r8   r9   r	   Z	variationrequiresZupdate_returningZdelete_returningr?   rC   rD   rE   Zsane_multi_rowcountrJ   rK   r   r   r   r   r      s4    

	

0

r   N)Z
sqlalchemyr   r   r   r   r   r   r   r	   r
   Zsqlalchemy.testingr   r   Z
TablesTestr   r   r   r   r   <module>   s   