
    +h                         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ej                        Zy)    )	bindparam)Column)Integer)select)String)Table)testing)text)eq_)fixturesc                      e Zd ZdZdZdZed        Zed        Zd Z	d Z
d Zej                  j                  d	        Zd
 Zd Zd Zej                  j&                  d        Zej                  j&                  d        Zy)RowCountTestztest rowcount functionality)sane_rowcountTc                     t        d|t        dt        dd      t        dt        d            t        dt        d	                   y )
N	employeesemployee_idFT)autoincrementprimary_keyname2   
department   )r   r   r   r   )clsmetadatas     Y/var/www/html/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_rowcount.pydefine_tableszRowCountTest.define_tables   sB    # 	 66":&<+	
    c                     g dx| _         }| j                  j                  }|j                  |j	                         t        |      D cg c]  \  }\  }}|||d c}}}       y c c}}}w )N)	)AngelaA)Andrewr    )Anandr    )BobB)Bobetter$   )Buffyr$   )CharlieC)Cynthiar(   )Chrisr(   )r   r   r   )datatablesr   executeinsert	enumerate)r   
connectionr+   employees_tableinds          r   insert_datazRowCountTest.insert_data"   sr    

 
	
4 **..""$ "+4 Av1 !"1A>	
s   A(c                 H   | j                   j                  }t        |j                  j                  |j                  j
                        j                  |j                  j                        }|j                  |      j                         }t        || j                         y )N)r,   r   r   cr   r   order_byr   r-   fetchallr   r+   )selfr0   r1   srowss        r   
test_basiczRowCountTest.test_basic9   sz    ++//""O$5$5$@$@

(?$$00
1 	
 !!!$--/D$))r   c                     | j                   j                  }|j                  j                  }|j	                  |j                         j                  |dk(        ddi      }|j                  dk(  sJ y )Nr(   r   Z   )r,   r   r7   r   r-   updatewhererowcountr:   r0   r1   r   rs        r   test_update_rowcount1z"RowCountTest.test_update_rowcount1B   sj    ++// %&&11
""$**:+<=3
 zzQr   c                     | j                   j                  }|j                  j                  }|j	                  |j                         j                  |dk(        ddi      }t        |j                  d       y )Nr(   r   r@   )	r,   r   r7   r   r-   rA   rB   r   rC   rD   s        r   test_update_rowcount2z"RowCountTest.test_update_rowcount2M   sh    ++// %&&11
""$**:+<=3
 	AJJr   c                 X   | j                   j                  }|j                  j                  }|j	                         j                  |dk(        j                  |j                  j                  dz         j                         }|j                  |      }t        |j                  d       y )Nr(   r?   )r   r@   )r,   r   r7   r   rA   rB   valuesreturn_defaultsr-   r   rC   )r:   r0   r1   r   stmtrE   s         r   $test_update_rowcount_return_defaultsz1RowCountTest.test_update_rowcount_return_defaultsY   s    ++//$&&11
""$U:$%V**55;V<_	 	 t$AJJr   c                 R    |j                  d      }t        |j                  d       y Nz8update employees set department='Z' where department='C'r@   )exec_driver_sqlr   rC   r:   r0   results      r   test_raw_sql_rowcountz"RowCountTest.test_raw_sql_rowcounth   s%    ++F
 	FOOQr   c                 d    |j                  t        d            }t        |j                  d       y rO   )r-   r
   r   rC   rQ   s      r   test_text_rowcountzRowCountTest.test_text_rowcounto   s+    ##NO
 	FOOQr   c                     | j                   j                  }|j                  j                  }|j	                  |j                         j                  |dk(              }t        |j                  d       y )Nr(   r@   )	r,   r   r7   r   r-   deleterB   r   rC   rD   s        r   test_delete_rowcountz!RowCountTest.test_delete_rowcountv   s`    ++// %&&11
""$**:+<=
 	AJJr   c                 0   | j                   j                  }|j                         j                  |j                  j
                  t        d      k(        j                  d      }|j                  |ddiddiddig      }t        |j                  d       y )Nemp_namer(   )r   r#   r)   nonexistent   )r,   r   rA   rB   r7   r   r   rJ   r-   r   rC   r:   r0   r1   rL   rE   s        r   test_multi_update_rowcountz'RowCountTest.test_multi_update_rowcount   s    ++//""$U?$$))Yz-BBCVsV# 	 U#Y']+
 	AJJr   c                    | j                   j                  }|j                         j                  |j                  j
                  t        d      k(        }|j                  |ddiddiddig      }t        |j                  d       y )NrZ   r#   r)   r[   r\   )
r,   r   rW   rB   r7   r   r   r-   r   rC   r]   s        r   test_multi_delete_rowcountz'RowCountTest.test_multi_delete_rowcount   s    ++//%%'--""i
&;;
 U#Y']+
 	AJJr   N)__name__
__module____qualname____doc____requires____backend__classmethodr   r5   r=   rF   rH   r	   requiressane_rowcount_w_returningrM   rS   rU   rX   sane_multi_rowcountr^   r`    r   r   r   r      s    %%LK
 
 
 
,	
 // 0   )) *& )) *r   r   N)
sqlalchemyr   r   r   r   r   r   r	   r
   sqlalchemy.testingr   r   
TablesTestr   rk   r   r   <module>ro      s7             " 'X8&& Xr   