zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
U
¸ý°d?ã@sîddlZddlmZddlmZddlmZddlmZddlm    Z    ddlm
Z
d    d
lm Z d    d lm Z d    d lm Z d    d lmZd    dlmZd    dlmZd    dlmZd    dlmZGdd„dejƒZGdd„dejƒZGdd„dejejƒZdS)éNé)Úengines)Úfixtures)Úeq_)Ú requirements)ÚColumn)ÚTableé)ÚDateTime)Úfunc)ÚInteger)Úselect)Úsql)ÚString)Útesting)Útextc@s^eZdZdZedd„ƒZedd„ƒZdd„Zdd    „Zd
d „Z    d d „Z
e j dd„ƒZ dd„ZdS)Ú RowFetchTestTcCsDtd|tdtddtdtdƒƒƒtd|tdtddtdtƒƒdS)    NÚplain_pkÚidT©Z primary_keyÚdataé2Ú    has_datesÚtoday)rrr rr
©ÚclsÚmetadata©rú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/testing/suite/test_results.pyÚ define_tabless  ü üzRowFetchTest.define_tablesc Cs\| |jj ¡dddœdddœdddœg¡| |jj ¡dt dd    d
d
d d ¡d œg¡dS) NéÚd1)rrrZd2r    Zd3éÖéé r)rr)ÚexecuteÚtablesrÚinsertrÚdatetime)rÚ
connectionrrrÚ insert_data's
ýþ    
þzRowFetchTest.insert_datacCs@| |jj ¡ |jjjj¡¡ ¡}t|jdƒt|j    dƒdS©Nr r!)
r%r&rr Úorder_byÚcrÚfirstrr©Úselfr)ÚrowrrrÚ test_via_attr7s
ÿ zRowFetchTest.test_via_attrcCsH| |jj ¡ |jjjj¡¡ ¡}t|j    ddƒt|j    ddƒdS)Nrr rr!)
r%r&rr r,r-rr.rÚ_mappingr/rrrÚtest_via_string?s
ÿzRowFetchTest.test_via_stringcCsD| |jj ¡ |jjjj¡¡ ¡}t|ddƒt|ddƒdS)Nrr r!)    r%r&rr r,r-rr.rr/rrrÚ test_via_intGs
ÿzRowFetchTest.test_via_intcCsX| |jj ¡ |jjjj¡¡ ¡}t|j    |jjjjdƒt|j    |jjjj
dƒdSr+) r%r&rr r,r-rr.rr3rr/rrrÚtest_via_col_objectOs
ÿz RowFetchTest.test_via_col_objectcCs\| t|jjjj|jjjj d¡ƒ |jjjj¡¡}|     ¡}t
|  ¡ddgƒt
|dƒdS)Nr)r!r!) r%r r&rr-rÚlabelr,rr.rÚkeys)r0r)Úresultr1rrrÚtest_row_with_dupe_namesWs
þ
ýÿz%RowFetchTest.test_row_with_dupe_namesc
Cs`|jj}t| d¡jjƒ ¡}t|jj| d¡ƒ}|     |¡ 
¡}t |j t   dddddd¡ƒdS)zýtest that a scalar select as a column is returned as such
        and that type conversion works OK.
 
        (this is half a SQLAlchemy Core test and half to catch database
        backends that may have unusual behavior with scalar selects.)
 
        ÚxÚ    somelabelr"r#r$rN)r&rr Úaliasr-rZscalar_subqueryrr7r%r.rr<r()r0r)Z    datetableÚsÚs2r1rrrÚtest_row_w_scalar_selectcs
z%RowFetchTest.test_row_w_scalar_selectN)Ú__name__Ú
__module__Ú __qualname__Ú __backend__Ú classmethodrr*r2r4r5r6rZ%duplicate_names_in_cursor_descriptionr:r@rrrrrs
 
 
rc@sJeZdZdZdZdZedd„ƒZdd„Zdd    „Z    e
j d
d „ƒZ d d „Z dS)ÚPercentSchemaNamesTestz¡tests using percent signs, spaces in table and column names.
 
    This didn't work for PostgreSQL / MySQL drivers for a long time
    but is now supported.
 
    )Zpercent_schema_namesTcCs@td|tdtƒtdtƒƒ|j_t dt d¡t d¡¡|j_dS)Nz percent%tableúpercent%úspaces % more spaces)    rrr r&Ú percent_tablerÚtableÚcolumnÚlightweight_percent_tablerrrrrsüýz$PercentSchemaNamesTest.define_tablescCsP|jj}dddœdddœdddœdddœfD]}| | ¡|¡q,| |¡dS©Nr#r$©rGrHéé é    é
©r&rIr%r'Ú _assert_table)r0r)rIÚparamsrrrÚtest_single_roundtripsüz,PercentSchemaNamesTest.test_single_roundtripcCsT|jj}| | ¡dddœ¡| | ¡dddœdddœdddœg¡| |¡dSrMrS)r0r)rIrrrÚtest_executemany_roundtrip˜sÿýþz1PercentSchemaNamesTest.test_executemany_roundtripcCs||jj}| | ¡dddœ¡| | ¡ |jd|jd¡dddœdd    dœdddœg¡}t| ¡d
d d gƒ| |¡dS) Nr#r$rNrGrHrOrPrQrR©rOrP©rQrR©rPrQ)    r&rIr%r'Z    returningr-rÚallrT)r0r)rIr9rrrÚ$test_executemany_returning_roundtrip§s"ÿþýû z;PercentSchemaNamesTest.test_executemany_returning_roundtripc CsL|jj}|jj}|| ¡|| ¡fD]Ø}tt| | ¡ |j    d¡¡ƒddddgƒtt| | ¡ 
|j    d  ddg¡¡ |j    d¡¡ƒddgƒ| | ¡ |j    d¡¡  ¡}t|j dd    ƒt|j dd
ƒt|j |j    dd    ƒt|j |j    dd
ƒq$| | ¡ |j    dd i¡¡tt| | ¡ |j    d¡¡ƒd d ddgƒdS)NrG)r#r$rXrYrZrHrQrRr#r$é)r#r])rOr])rQr])rPr])r&rIrLr=rÚlistr%r r,r-ÚwhereZin_r.r3ÚupdateÚvalues)r0ÚconnrIrLrJr1rrrrT»s^üÿ
üÿþÿÿø ÿ ÿÿÿÿÿ
øz$PercentSchemaNamesTest._assert_tableN)rArBrCÚ__doc__Ú __requires__rDrErrVrWrZinsert_executemany_returningr\rTrrrrrFss
 
rFc@seZdZdZdZdd„Zdd„Zejddde    d    ƒdfd
de
d ƒdfd d e    d    ƒd fdd e
d ƒj dddfdde
d ƒj d dd fdde
d ƒ  ¡dfdddde  d¡fdd e    dƒd fdd e    dƒj dddfddd dd„ƒZdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'S)(ÚServerSideCursorsTest)Úserver_side_cursorsTcCsÞ|jjjdkrt|jƒS|jjjdkr<tdƒjj}t||ƒS|jjjdkrP|j    S|jjjdkrttdƒjj}t||ƒS|jjjdkrŠ|j
S|jjjdkrž|j    S|jjjd    kr¸t |d
d ƒS|jjjd krÖtt |d d ƒƒSd SdS)NZpsycopg2Zpymysqlzpymysql.cursors)ZaiomysqlZasyncmyZmysqldbzMySQLdb.cursorsZmariadbconnector)ZasyncpgZ    aiosqliteZpg8000Ú server_sideFZpsycopgÚname) ÚengineÚdialectZdriverÚboolrhÚ
__import__ZcursorsZSSCursorÚ
isinstancergZbufferedÚgetattr)r0ÚcursorZsscursorrrrÚ_is_server_sideús&
 
 
 z%ServerSideCursorsTest._is_server_sidec    CsF|r.t d¡tjd|id|_W5QRXntjd|id|_|jS)Nz­The create_engine.server_side_cursors parameter is deprecated and will be removed in a future release.  Please use the Connection.execution_options.stream_results parameter.rf)Úoptions)rZexpect_deprecatedrZtesting_engineri)r0rfrrrÚ_fixturesÿÿÿzServerSideCursorsTest._fixture)Z global_stringTúselect 1TZ global_textrsZ global_exprr Zglobal_off_explicitFZ stmt_option©Zstream_resultsZstmt_option_disabledZfor_update_exprZfor_update_stringzSELECT 1 FOR UPDATEZsqliteZ
text_no_ssz    select 42Ztext_ss_optionZiaaaz*engine_ss_arg, statement, cursor_ss_status)Zid_Úargnamesc    Cs\| |¡}| ¡@}t|tƒr*| |¡}n
| |¡}t| |j¡|ƒ|     ¡W5QRXdS)N)
rrÚbeginrmÚstrÚexec_driver_sqlr%rrproÚclose)r0Z engine_ss_argZ    statementZcursor_ss_statusrirbr9rrrÚtest_ss_cursor_status#s'
 
 
 
z+ServerSideCursorsTest.test_ss_cursor_statusc    CsL| d¡}| ¡0}|jdd d¡}| |j¡s6t‚| ¡W5QRXdS)NFTrtrs)rrÚconnectÚexecution_optionsrxrproÚAssertionErrorry)r0rirbr9rrrÚtest_conn_optionSs
 
ÿþz&ServerSideCursorsTest.test_conn_optionc    CsT| d¡}tdƒjdd}| ¡(}|jdd |¡}| |j¡rFt‚W5QRXdS)NFr Trt)rrr r|r{r%rpror})r0rir>rbr9rrrÚ&test_stmt_enabled_conn_option_disabledks
 
 
z<ServerSideCursorsTest.test_stmt_enabled_conn_option_disabledc    Cs¬| d¡}tt d¡ d¡ƒjdd ¡}| ¡,}| | ¡¡}|     |j
¡rRt ‚|  ¡W5QRXtdƒ  |¡}| ¡(}| |¡}|     |j
¡r–t ‚|  ¡W5QRXdS)NFÚ1r;Trtr )rrr rZliteral_columnr7r|Zsubqueryrvr%rpror}ryÚ select_from)r0riÚs1rbr9r?rrrÚtest_aliases_and_ssus
ÿÿ
 
 
z)ServerSideCursorsTest.test_aliases_and_ssc    Cs*|j}| d¡}td|tdtddtdtdƒƒƒ}| ¡æ}|j|dd| |     ¡t
dd    ¡| |     ¡t
d
d    ¡t | |  ¡  |jj¡¡ ¡d d gƒ| | ¡ |jjd k¡j|jjdd    ¡t | |  ¡  |jj¡¡ ¡d dgƒ| | ¡¡t | t t d¡ƒ |¡¡dƒW5QRXdS)NTÚ
test_tablerrrr©Z
checkfirstÚdata1©rÚdata2)r r†)rrˆrz updated)rz data2 updatedÚ*r)rrrrrr rrvÚcreater%r'Údictrr r,r-rÚfetchallr`r_rarÚdeleteZscalarr Úcountr)r0rÚmdrir„r)rrrÚtest_roundtrip_fetchall‰sL
  ü
ÿü
ÿ
þÿÿüÿüz-ServerSideCursorsTest.test_roundtrip_fetchallc    Csî|j}| d¡}td|tdtddtdtdƒƒƒ}| ¡ª}|j|dd| |     ¡dd    „t
d
d ƒDƒ¡| |  ¡  |j j¡¡}t| d ¡d d    „t
d
dƒDƒƒt| d¡dd    „t
ddƒDƒƒt| ¡dd    „t
dd ƒDƒƒW5QRXdS)NTr„rrrrr…cSsg|]}td|d‘qS)údata%dr‡)r‹©Ú.0ÚirrrÚ
<listcomp>ÀszBServerSideCursorsTest.test_roundtrip_fetchmany.<locals>.<listcomp>r ér#cSsg|]}|d|f‘qS©r‘rr’rrrr•ÉsérRcSsg|]}|d|f‘qSr—rr’rrrr•ÍsécSsg|]}|d|f‘qSr—rr’rrrr•Ïs)rrrrrr rrvrŠr%r'Úranger r,r-rrZ    fetchmanyrŒ)r0rrrir„r)r9rrrÚtest_roundtrip_fetchmany±s4
  ü
þÿþþz.ServerSideCursorsTest.test_roundtrip_fetchmanyN)rArBrCrdrDrprrrÚ combinationsrr r|Zwith_for_updateZskip_ifrzr~rrƒrr›rrrrreòsRüüûüÞ$
 
(re)r(ÚrrZ
assertionsrÚconfigrZschemarrr
r r r rrrrZ
TablesTestrrFZTestBaseZAssertsExecutionResultsrerrrrÚ<module>s(              ^
ÿ