U
    r\j                     @   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 G dd dejZdS )    )	bindparam)Column)Integer)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jj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   ]/root/pica-gateway/venv/lib/python3.8/site-packages/sqlalchemy/testing/suite/test_rowcount.pydefine_tables   s    zRowCountTest.define_tablesc              	   C   sF   ddddddddd	g	 | _ }| 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>9   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<td S )Nr   r   Z   )	r#   r   r*   r   r$   updatewhererowcountAssertionErrorr+   r'   r(   r   rr   r   r   test_update_rowcount1H   s    z"RowCountTest.test_update_rowcount1c                 C   s>   | j j}|jj}|| |dkddi}t|jd d S )Nr   r   r0   )	r#   r   r*   r   r$   r1   r2   r
   r3   r5   r   r   r   test_update_rowcount2S   s    z"RowCountTest.test_update_rowcount2c                 C   sP   | j j}|jj}| |dkj|jjd d }||}t	|j
d d S )Nr   r/   )r   r0   )r#   r   r*   r   r1   r2   valuesZreturn_defaultsr$   r
   r3   )r+   r'   r(   r   stmtr6   r   r   r   $test_update_rowcount_return_defaults_   s    

z1RowCountTest.test_update_rowcount_return_defaultsc                 C   s   | d}t|jd d S Nz8update employees set department='Z' where department='C'r0   )Zexec_driver_sqlr
   r3   r+   r'   resultr   r   r   test_raw_sql_rowcountn   s    z"RowCountTest.test_raw_sql_rowcountc                 C   s   | td}t|jd d S r<   )r$   r	   r
   r3   r=   r   r   r   test_text_rowcountu   s    zRowCountTest.test_text_rowcountc                 C   s8   | j j}|jj}|| |dk}t|jd d S )Nr   r0   )	r#   r   r*   r   r$   deleter2   r
   r3   r5   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   r1   r2   r*   r   r   r9   r$   r
   r3   r+   r'   r(   r:   r6   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 )NrC   r   r   rD   rE   )
r#   r   rA   r2   r*   r   r   r$   r
   r3   rF   r   r   r   test_multi_delete_rowcount   s    	z'RowCountTest.test_multi_delete_rowcountN)__name__
__module____qualname____doc____requires__Z__backend__classmethodr   r)   r.   r7   r8   r   requiresZsane_rowcount_w_returningr;   r?   r@   rB   Zsane_multi_rowcountrG   rH   r   r   r   r   r      s&   

	


r   N)Z
sqlalchemyr   r   r   r   r   r   r   r	   Zsqlalchemy.testingr
   r   Z
TablesTestr   r   r   r   r   <module>   s   