zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
U
¸ý°dÔã@sšddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZdd    lm    Z    dd
l
m Z dd l
m Z Gd d „d e j ƒZdS)é)Ú    bindparam)ÚColumn)ÚInteger)ÚMetaData)Úselect)ÚString)ÚTable)Útesting)Útext)Úeq_)Úfixturesc@s¸eZdZdZdZdZedd„ƒZedd„ƒZdd    „Z    d
d „Z
d d „Z e   dddg¡e   dde jjfde jjfg¡dd„ƒƒZdd„Zdd„Zdd„Ze jjdd„ƒZe jjdd„ƒZdS) Ú RowCountTestztest rowcount functionality)Z sane_rowcountTc    Cs4td|tdtdddtdtdƒƒtdtd    ƒƒƒdS)
NÚ    employeesÚ employee_idFT©Z autoincrementZ primary_keyÚnameé2Ú
departmenté)rrrr)ÚclsÚmetadata©rú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/testing/suite/test_rowcount.pyÚ define_tablessü  özRowCountTest.define_tablesc    CsFddddddddd    g    |_}|jj}| | ¡d
d „t|ƒDƒ¡dS) N)ZAngelaÚA)ZAndrewr)ZAnandr)ÚBobÚB)ZBobetter)ZBuffyr)ZCharlieÚC)ÚCynthiar)ZChrisrcSs g|]\}\}}|||dœ‘qS))rrrr)Ú.0ÚiÚnÚdrrrÚ
<listcomp>6s
ÿz,RowCountTest.insert_data.<locals>.<listcomp>)ÚdataÚtablesrÚexecuteÚinsertÚ    enumerate)rÚ
connectionr$Úemployees_tablerrrÚ insert_data%s"÷
þþzRowCountTest.insert_datacCsB|jj}t|jj|jjƒ |jj¡}| |¡     ¡}t
||j ƒdS)N) r%rrÚcrrZorder_byrr&Zfetchallr r$)Úselfr)r*ÚsÚrowsrrrÚ
test_basic<sÿþzRowCountTest.test_basiccCs@|jj}|jj}| | ¡ |dk¡ddi¡}|jdks<t‚dS)NrrÚZé)    r%rr,rr&ÚupdateÚwhereÚrowcountÚAssertionError©r-r)r*rÚrrrrÚtest_update_rowcount1Esþz"RowCountTest.test_update_rowcount1cCs>|jj}|jj}| | ¡ |dk¡ddi¡}t|jdƒdS)Nrrr2)    r%rr,rr&r3r4r r5r7rrrÚtest_update_rowcount2Psþz"RowCountTest.test_update_rowcount2Úimplicit_returningFÚdmlr3Údeletec    Csº|r|jj}n6tdtƒtdtdddtdtdƒƒtdtd    ƒƒdd
}|jj}|j    rz|     ¡ 
|d k¡j |jjd d   ¡}n&|j r˜|  ¡ 
|d k¡  ¡}n| ¡| |¡}t|jdƒdS)zØnote 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
 
        rrFTrrrrr)r;rr1)rr2N)r%rrrrrrr,rr3r4ÚvaluesZreturn_defaultsr=Zfailr&r r5)r-r)r;r<r*rÚstmtr8rrrÚ+test_update_delete_rowcount_return_defaults\s>
ü  õÿ
þÿÿÿ
z8RowCountTest.test_update_delete_rowcount_return_defaultscCs| d¡}t|jdƒdS©Nz8update employees set department='Z' where department='C'r2)Zexec_driver_sqlr r5©r-r)ÚresultrrrÚtest_raw_sql_rowcount”sÿz"RowCountTest.test_raw_sql_rowcountcCs| tdƒ¡}t|jdƒdSrA)r&r
r r5rBrrrÚtest_text_rowcount›sÿzRowCountTest.test_text_rowcountcCs8|jj}|jj}| | ¡ |dk¡¡}t|jdƒdS)Nrr2)    r%rr,rr&r=r4r r5r7rrrÚtest_delete_rowcount¢s ÿz!RowCountTest.test_delete_rowcountcCsX|jj}| ¡ |jjtdƒk¡jdd}| |ddiddiddig¡}t    |j
dƒdS)NÚemp_namer)rrrÚ nonexistenté) r%rr3r4r,rrr>r&r r5©r-r)r*r?r8rrrÚtest_multi_update_rowcount¬sÿþÿýþ    z'RowCountTest.test_multi_update_rowcountcCsP|jj}| ¡ |jjtdƒk¡}| |ddiddiddig¡}t|j    dƒdS)NrGrrrHrI)
r%rr=r4r,rrr&r r5rJrrrÚtest_multi_delete_rowcountÀsÿýþ    z'RowCountTest.test_multi_delete_rowcountN)Ú__name__Ú
__module__Ú __qualname__Ú__doc__Ú __requires__Z __backend__Ú classmethodrr+r0r9r:r    Z    variationÚrequiresZupdate_returningZdelete_returningr@rDrErFZsane_multi_rowcountrKrLrrrrr s2
 
      
 
þþ 0
 
r N)Z
sqlalchemyrrrrrrrr    r
Zsqlalchemy.testingr r Z
TablesTestr rrrrÚ<module>s