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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
U
¸ý°dt…ã@sTddlmZddlZddlZddlZddlZddlmZddlZ    ddl
m Z ddl
m Z ddl
m Z ddl
mZdd    l mZdd
l mZdd lmZdd lmZdd lmZddlmZddlmZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddlmZddlm Z!ddlm"Z"ddlm#Z#ddlm$Z$ddl%m&Z&ddl'm(Z(e  )¡Gdd „d ƒƒZ*da+Gd!d"„d"ƒZ,Gd#d$„d$e*ƒZ-Gd%d&„d&ƒZ.Gd'd(„d(ƒZ/Gd)d*„d*ƒZ0e1ƒZ2d+d,„Z3d-d.„Z4d/d0„Z5d1d2„Z6Gd3d4„d4e*ƒZ7Gd5d6„d6e-e j8ƒZ9Gd7d8„d8e9ƒZ:Gd9d:„d:e-ƒZ;Gd;d<„d<ƒZ<d@d>d?„Z=dS)Aé)Ú annotationsN)ÚAnyé)Ú
assertions)Úconfig)Úmock©Úschema)Úeq_)Úne_)Ú BasicEntity)ÚComparableEntity)ÚComparableMixin)Úadict)Údrop_all_tables_from_metadataé©ÚColumn)Úevent)Úfunc©ÚInteger)Úselect©ÚTable)Úutil)ÚDeclarativeBase)Úevents)ÚMappedAsDataclass)Úregistry)Úsort_tables_and_constraints)Úvisitors)Ú ClauseElementc@seZdZdZdZdZdZdZd&dd„Ze     
¡dd„ƒZ e     
¡dd    „ƒZ e     
¡d
d „ƒZ e     
¡d d „ƒZe     
¡dd„ƒZe    j
dd„ƒZe    j
dd„ƒZe     
¡dd„ƒZe     
¡dd„ƒZe     
¡dd„ƒZe     
¡dd„ƒZe    j
dd„ƒZe     
¡dd„ƒZe    j
d d!„d"Dƒd#d$d%„ƒZdS)'ÚTestBase©NFcCs|s t|ƒ‚dS©N)ÚAssertionError)ÚselfÚvalÚmsgr$r$úRd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/testing/fixtures.pyÚassert_CszTestBase.assert_ccs"tjj}dtj_dV|tj_dSr%©rÚdbZ_compiled_cache©r'Ú_cacher$r$r*ÚnocacheFszTestBase.nocachec    cs0t|ddƒptj}| ¡ }|VW5QRXdS©NÚbind)Úgetattrrr-Úconnect)r'ÚengÚconnr$r$r*Úconnection_no_transMs
zTestBase.connection_no_transccsJt|ddƒptj}| ¡}| ¡}|a|Vda|jr>| ¡| ¡dSr1)    r3rr-r4ÚbeginÚ_connection_fixture_connectionZ    is_activeÚrollbackÚclose)r'r5r6Útransr$r$r*Ú
connectionTszTestBase.connectionc#sjg‰g‰d‡‡fdd„    }|VˆD]}z | ¡Wq"Yq"Xq"ˆD]}z | ¡WqFYqFXqFdS)NFcsˆ |¡|rˆ |¡dSr%)Úappend)ÚresultÚconsume©Úto_closeZ
to_consumer$r*Úgons
z/TestBase.close_result_when_finished.<locals>.go)F)Úallr;)r'rCÚrr$rAr*Úclose_result_when_finishedis  z#TestBase.close_result_when_finishedc    cs8t|tt ¡ t d¡ddd¡id}|V| ¡dS)Né2ÚmysqlÚmariadbÚoracle)ÚmetadataÚtype_annotation_map)rÚstrÚsaÚStringÚ with_variantÚdispose)r'rKÚregr$r$r*rsÿÿþzTestBase.registryc#s,|‰G‡fdd„dtƒ}|V|j ¡dS)Ncs.eZdZ”Zee ¡ e d¡ddd¡iZdS)z TestBase.decl_base.<locals>.BaserGrHrIrJN©    Ú__name__Ú
__module__Ú __qualname__rKrMrNrOrPrLr$©Z_mdr$r*ÚBasesÿÿrX)rrrQ©r'rKrXr$rWr*Ú    decl_baseŒszTestBase.decl_basec#s.|‰G‡fdd„dttƒ}|V|j ¡dS)Ncs,eZdZ”Zee ¡ e d¡dd¡iZdS)z#TestBase.dc_decl_base.<locals>.BaserGrHrINrSr$rWr$r*rXŸsÿÿrX)rrrrQrYr$rWr*Ú dc_decl_base›szTestBase.dc_decl_baseccs
|VdSr%r$)r'Ú future_enginer=r$r$r*Úfuture_connectionªszTestBase.future_connectionccs
dVdSr%r$©r'r$r$r*r\±szTestBase.future_enginec#s0ddlm‰d‡fdd„    }|Vˆj d¡dS)Nr©ÚenginesFcs(|dkr i}d|d<ˆj|||||dS)NÚfixtureÚscope)ÚurlÚoptionsÚasyncioÚtransfer_staticpoolÚ
share_pool©Útesting_engine)rcrdÚfuturererfrgr_r$r*Úgen_testing_engine¹sûz3TestBase.testing_engine.<locals>.gen_testing_enginera)NNNFFF)Úr`Ztesting_reaperZ_drop_testing_engines)r'rkr$r_r*riµs úzTestBase.testing_enginecs‡fdd„}|S)Ncsd|d<ˆf|ŽS)NTrer$)Úkwrhr$r*rCÒsz)TestBase.async_testing_engine.<locals>.gor$)r'rirCr$rhr*Úasync_testing_engineÐs zTestBase.async_testing_enginecCstƒSr%)Úfixture_sessionr^r$r$r*roØszTestBase.fixture_sessionc    cstddlm}| ¡}||j_|V|j`trdt ¡rdt ¡}| ¡t     ¡t
|tƒW5QRXn t
|t j ƒdS)z>Provide bound MetaData for a single test, dropping afterwards.rrN) Úsqlr    ÚMetaDataÚinstancerKr9Zin_transactionZget_transactionr:r8rrr-)r'Úrequestr    rKr<r$r$r*rKÜs" ÿþ
ÿzTestBase.metadatacCs*g|]"}dD]}dD]}|||f‘qq qS))ÚnoneÚexecuter8©TFr$)Ú.0r:Úsecond_operationÚ begin_nestedr$r$r*Ú
<listcomp>õs ýzTestBase.<listcomp>rv)ÚparamscsP|j\‰‰‰td|tdtƒƒ‰t|ddƒp.tj}ˆ |¡‡‡‡‡fdd„}|S)NÚtestÚdatar2c sÜ| ¡P}ˆr@tjjjs&t d¡|r4| ¡}n| ¡}|Æ|r\| ˆ ¡ddi¡n| ˆ ¡ddi¡ˆr~|     ¡n| 
¡ˆdkrt   t jjd¡\ˆdkrÚ|rÄ| ˆ ¡ddi¡qø| ˆ ¡ddi¡nˆdkrø|rð| ¡n| ¡W5QRXW5QRX|r(| ˆ ¡dd    i¡n| ˆ ¡dd    i¡n|r\| ˆ ¡ddi¡n| ˆ ¡ddi¡|rˆr†|     ¡n| 
¡nˆr |     ¡n| 
¡ˆdkrVt   t jjd¡Žˆdkr|rê| ˆ ¡ddi¡n| ˆ ¡ddi¡nLˆdkr*t|dƒr | ¡n| ¡n"ˆd
krL|rD| ¡n| ¡W5QRXW5QRXd }ˆrr|d 7}ˆs€|d 7}|r¦t| tt ¡ƒ ˆ¡¡|ƒn2| ¡$}t| tt ¡ƒ ˆ¡¡|ƒW5QRXdS) Nzsavepoints not enabledr}é
rtz‚Can't operate on closed transaction inside context manager.  Please complete the context manager before emitting further commands.rué r8éryrr)r8rÚ requirementsÚ
savepointsÚenabledZ    skip_testryruÚinsertr:ÚcommitrZexpect_raises_messagerNÚexcZInvalidRequestErrorÚhasattrr
ZscalarrrÚcountÚ select_fromr4)ÚsubjectZtrans_on_subjectZexecute_on_subjectr<Z nested_transZexpected_committedr6©ryr:rxÚtr$r*Úrun_tests– 
 
 
 
 
þÿ
 
 
 
 
þ
 
 
 
 
 
þ
þz4TestBase.trans_ctx_manager_fixture.<locals>.run_test)Úparamrrrr3rr-Úcreate)r'rsrKr5rr$r‹r*Útrans_ctx_manager_fixtureôs 
xz"TestBase.trans_ctx_manager_fixture)N)rTrUrVÚ __requires__Z__unsupported_on__Z __only_on__Z __skip_if__Z"__leave_connections_for_teardown__r+rrar0r7r=rFrrZr[r]r\rirnrorKrr$r$r$r*r#.sL
 
 
 
 
 
 
 
 
 
 
 
 
 
þÿ r#c@seZdZdZdS)ÚFutureEngineMixinz alembic's suite still using thisN)rTrUrVÚ__doc__r$r$r$r*r’…sr’c@seZdZdZdZdZdZdZdZdZ    dZ
dZ dZ dZ ejddddd„ƒZejdd    dd
d „ƒZed d „ƒZedd„ƒZedd„ƒZedd„ƒZdd„Zdd„Zdd„Zedd„ƒZedd„ƒZedd„ƒZed d!„ƒZed"d#„ƒZed$d%„ƒZ d&d'„Z!d(d)„Z"ed*d+„ƒZ#dS),Ú
TablesTestÚonceÚeachNTÚclass©Úautouserbccs0|j}| ¡| ¡| ¡dV| ¡dSr%)Ú    __class__Ú _init_classÚ_setup_once_tablesÚ_setup_once_insertsÚ_teardown_once_metadata_bind©r'Úclsr$r$r*Ú_setup_tables_test_class£s z#TablesTest._setup_tables_test_classÚfunctionccs"| ¡| ¡dV| ¡dSr%)Ú_setup_each_tablesÚ_setup_each_insertsÚ_teardown_each_tablesr^r$r$r*Ú_setup_tables_test_instance°sz&TablesTest._setup_tables_test_instancecCs|jSr%)Ú_tables_metadatar^r$r$r*Útables_test_metadata¹szTablesTest.tables_test_metadatacCsX|jdkr(|jdkrd|_|jdks(t‚tƒ|_tƒ|_tƒ|_| ¡|_    t
  ¡|_ dS)Nr–r•)r–N) Úrun_define_tablesÚrun_create_tablesÚ run_insertsr&rÚotherÚtablesÚ    sequencesÚ
setup_bindr2rNrqr§©r r$r$r*r›½s
 
 
zTablesTest._init_classc    Cs6|jdkr2| ¡|j ¡}| |¡W5QRXdS©Nr•©r«Ú_load_fixturesr2r8Ú insert_data)r r6r$r$r*rËs
 zTablesTest._setup_once_insertscCsR|jdkrN| |j¡|jdkr.|j |j¡|j |jj¡|j |jj    ¡dSr±©
r©Ú define_tablesr§rªÚ
create_allr2r­Úupdater®Z
_sequencesr°r$r$r*rœÒs 
 
zTablesTest._setup_once_tablescCsl|jdkrP| |j¡|jdkr.|j |j¡|j |jj¡|j |jj    ¡n|jdkrh|j |j¡dS©Nr–rµr^r$r$r*r£Ûs
 
 
zTablesTest._setup_each_tablesc    Cs6|jdkr2| ¡|j ¡}| |¡W5QRXdSr¹r²)r'r6r$r$r*r¤ås
 zTablesTest._setup_each_insertsc CsD|jdkr8|j ¡|jdkr,t|j|jƒ|j ¡n|jdkrPt|j|jƒttj    ddƒ}|rh|j
}|jdkr@|jdkr@|j dkr@|j  ¡¤}t dd„t|jj ¡ƒDƒƒD]~}z:|rä| ¡| | ¡¡W5QRXn| | ¡¡Wq¶tjjk
r2}ztd||ftjdW5d}~XYq¶Xq¶W5QRXdS)Nr–r‚FcSsg|]\}}|dk    r|‘qSr%r$)rwrŒÚfksr$r$r*rzsüz4TablesTest._teardown_each_tables.<locals>.<listcomp>zError emptying table %s: %r)Úfile)r©r­Úclearrªrr§r2r3rrrƒÚ run_deletesr8Úreversedr ÚvaluesryruÚdeleterNr†Z
DBAPIErrorÚprintÚsysÚstderr)r'r‚r6ÚtableÚexr$r$r*r¥ësD
 
 
 
ÿþý 
ÿþÿ    
 
þz TablesTest._teardown_each_tablescCsF|jrt|j|jƒ|jdkr*| |j¡d|j_|jdk    rBd|_dSr±)rªrr§r2Úrun_dispose_bindÚ dispose_bindÚrun_setup_bindr°r$r$r*ržs
 
z'TablesTest._teardown_once_metadata_bindcCstjSr%)rr-r°r$r$r*r¯!szTablesTest.setup_bindcCs*t|dƒr| ¡nt|dƒr&| ¡dS)NrQr;)r‡rQr;)r r2r$r$r*rÇ%s
 
 
zTablesTest.dispose_bindcCsdSr%r$)r rKr$r$r*r¶,szTablesTest.define_tablescCsiSr%r$r°r$r$r*Úfixtures0szTablesTest.fixturescCsdSr%r$)r r=r$r$r*r´4szTablesTest.insert_datacCs| |j||¡dSr%)Zassert_sql_countr2)r'rˆÚfnr$r$r*Ú
sql_count_8szTablesTest.sql_count_cCs| |j||¡dSr%)Z
assert_sqlr2)r'Z    callable_Z
statementsr$r$r*Úsql_eq_;szTablesTest.sql_eq_c
sÊii‰}| ¡ ¡D]F\‰}t|ƒdkr,qtˆtƒr@|jˆ‰|dˆˆ<|dd…|ˆ<qt|jj ¡ƒD]V\‰}ˆdkr€qnˆˆkrŠqn|j     
¡*}|  ˆ  ¡‡‡fdd„|ˆDƒ¡W5QRXqndS)z4Insert rows as represented by the fixtures() method.rrrNcsg|]}ttˆˆ|ƒƒ‘qSr$)ÚdictÚzip)rwZ column_values©ÚheadersrÄr$r*rzSsÿz-TablesTest._load_fixtures.<locals>.<listcomp>) rÉÚitemsÚlenÚ
isinstancerMr­r r§r¿r2r8rur„)r Úrowsr}rºr6r$rÏr*r³>s,
 
 
 
ÿ   þþzTablesTest._load_fixtures)$rTrUrVrÈr©rªr«r½rÆr2r§r­r¬r®rrar¡r¦Úpropertyr¨Ú classmethodr›rrœr£r¤r¥ržr¯rÇr¶rÉr´rËrÌr³r$r$r$r*r”‰sT 
 
 
 
 
 
 
)
 
 
 
 
 
r”c@s"eZdZejddddd„ƒZdS)ÚNoCacheTr¢r˜ccs"tjj}dtj_dV|tj_dSr%r,r.r$r$r*Ú_disable_cache[szNoCache._disable_cacheN)rTrUrVrrarØr$r$r$r*r×Zs r×c@s8eZdZejdd„ƒZdd„Zejddddd    „ƒZ    d
S) Ú RemovesEventscCstƒSr%)Úsetr^r$r$r*Ú
_event_fnsdszRemovesEvents._event_fnscKs(|j |||f¡tj|||f|ŽdSr%)rÛÚaddrÚlisten)r'ÚtargetÚnamerÊrmr$r$r*Ú event_listenhszRemovesEvents.event_listenTr¢r˜ccs dV|jD]}tj|Žq dSr%)rÛrÚremove)r'Úkeyr$r$r*Ú_remove_eventsls
zRemovesEvents._remove_eventsN)
rTrUrVrZmemoized_propertyrÛràrrarãr$r$r$r*rÙcs
 
 rÙc@s eZdZejdddd„ƒZdS)ÚRemoveORMEventsGloballyT)r™ccs<dVtj ¡tj ¡tj ¡tj ¡tj ¡dSr%)Ú
orm_eventsZ MapperEventsÚ_clearZInstanceEventsZ SessionEventsZInstrumentationEventsZ QueryEventsr^r$r$r*Ú_remove_listenersts 
 
 
 
z)RemoveORMEventsGlobally._remove_listenersN)rTrUrVrrarçr$r$r$r*räss
räcKsD| dd¡| dd¡| dtj¡}tjj|f|Ž}t |¡|S)NZ    autoflushTZexpire_on_commitr2)    Ú
setdefaultÚpoprr-rNÚormÚSessionÚ_fixture_sessionsrÜ)rmr2Úsessr$r$r*ros   
rocCstjj ¡t ¡dSr%)rNrêÚsessionÚclose_all_sessionsrìr¼r$r$r$r*Ú_close_all_sessionsŒs rðcCstƒtj ¡dSr%)rðrNrêÚ clear_mappersr°r$r$r*Ústop_test_class_inside_fixtures’sròcCstr
tƒdSr%)rìrðr$r$r$r*Ú
after_test—sróc@s eZdZdS)ÚORMTestN©rTrUrVr$r$r$r*rôœsrôc@sÂeZdZUdZdZdZded<ejdddd    d
„ƒZ    ejdd dd d „ƒZ
e dd„ƒZ e dd„ƒZ e dd„ƒZdd„Zdd„Ze dd„ƒZe dd„ƒZdd„Zdd„Ze d d!„ƒZe d"d#„ƒZdS)$Ú
MappedTestr•r–NrÚclassesTr—r˜ccsZ|j}| ¡|jdkr tƒ|_| ¡| ¡| ¡| ¡dV| ¡|     ¡dSr%)
ršr›r÷rrœÚ_setup_once_classesÚ_setup_once_mappersrÚ_teardown_once_classržrŸr$r$r*r¡©s
z#MappedTest._setup_tables_test_classr¢ccsN| ¡| ¡| ¡| ¡dVtjj ¡| ¡|     ¡| 
¡dSr%) r£Ú_setup_each_classesÚ_setup_each_mappersr¤rNrêrîrïÚ_teardown_each_mappersÚ_teardown_each_classesr¥r^r$r$r*r¦»s z&MappedTest._setup_tables_test_instancecCs|j ¡dSr%)r÷r¼r°r$r$r*rúÉszMappedTest._teardown_once_classcCs|jdkr| |j¡dSr±©Úrun_setup_classesÚ_with_register_classesÚ setup_classesr°r$r$r*røÍs
zMappedTest._setup_once_classescCs*|jdkr&| ¡\|_|_| |j¡dSr±)Úrun_setup_mappersÚ_generate_registryÚmapper_registryÚmapperrÚ setup_mappersr°r$r$r*rùÒs
zMappedTest._setup_once_mapperscCs8|jdkr| ¡\|j_|j_|jdkr4| |j¡dS)Nr•r–)rrršrrrrr^r$r$r*rüØs
ý
zMappedTest._setup_each_mapperscCs|jdkr| |j¡dSr¹rÿr^r$r$r*rûâs
zMappedTest._setup_each_classescCst|jd}||jfS)N)rK)rr§Zmap_imperatively)r Údeclr$r$r*ræs zMappedTest._generate_registrycsR|j‰G‡fdd„dƒ}Gdd„dt|ƒ}Gdd„dt|ƒ}||_||_|ƒdS)z¥Run a setup method, framing the operation with a Base class
        that will catch new subclasses to be established within
        the "classes" registry.
 
        cs$eZdZddœ‡‡fdd„ Z‡ZS)z0MappedTest._with_register_classes.<locals>._BaseÚNone©Úreturncs$ˆdk    s t‚|ˆ|j<tƒ ¡dSr%©r&rTÚsuperÚ__init_subclass__r°©ršÚ cls_registryr$r*rõs 
zBMappedTest._with_register_classes.<locals>._Base.__init_subclass__)rTrUrVrÚ __classcell__r$©r©ršr*Ú_Baseôsrc@s eZdZdS)z0MappedTest._with_register_classes.<locals>.BasicNrõr$r$r$r*ÚBasicúsrc@s eZdZdS)z5MappedTest._with_register_classes.<locals>.ComparableNrõr$r$r$r*Ú
ComparableýsrN)r÷r r rr)r rÊrrrr$rr*rësz!MappedTest._with_register_classescCs|jdkrtj ¡dSr±)rrNrêrñr^r$r$r*rýs
z!MappedTest._teardown_each_mapperscCs|jdkr|j ¡dSr±)rr÷r¼r^r$r$r*rþ s
z!MappedTest._teardown_each_classescCsdSr%r$r°r$r$r*rszMappedTest.setup_classescCsdSr%r$r°r$r$r*rszMappedTest.setup_mappers)rTrUrVrrr÷Ú__annotations__rrar¡r¦rÖrúrørùrürûrrrýrþrrr$r$r$r*rö s2
 
 
 
 
 
 
 
 
 
röcs4eZdZdZdZedd„ƒZe‡fdd„ƒZ‡ZS)ÚDeclarativeMappedTestr•cCsdSr%r$r°r$r$r*rœsz(DeclarativeMappedTest._setup_once_tablescsNˆj‰G‡‡fdd„dtƒ}|ˆ_tƒ |¡ˆjjrJˆjrJˆj t    j
¡dS)NcsNeZdZejZ”jZee     
¡  e     
d¡ddd¡iZ ddœ‡‡fdd„ Z ‡ZS)    z?DeclarativeMappedTest._with_register_classes.<locals>._DeclBaserGrHrIrJr    r
cs(ˆdk    s t‚|ˆ|j<tƒjf|ŽdSr%r )r rmrr$r*r-s 
zQDeclarativeMappedTest._with_register_classes.<locals>._DeclBase.__init_subclass__)rTrUrVr    rZ __table_cls__r§rKrMrNrOrPrLrrr$©r rrr*Ú    _DeclBase$sÿÿr) r÷rZDeclarativeBasicr rr§r­rªr·rr-)r rÊrrrr*r s  z,DeclarativeMappedTest._with_register_classes)    rTrUrVrrrÖrœrrr$r$rr*rs 
rc@s:eZdZdZZdZdZe d¡Z    dd„Z
e dd„ƒZ dS)    ÚComputedReflectionFixtureTestNT)Zcomputed_columnsZtable_reflectionz[\[\]\(\)\s`'\"]*cCs|j d|¡ ¡S)Nrl)ÚregexpÚsubÚlower)r'Útextr$r$r*Ú    normalizeDsz'ComputedReflectionFixtureTest.normalizec     Csxddlm}ddlm}ddlm}ddlm}ddlm}|d||d|d    d
|d |ƒ|d ||d ƒƒ|d|ddƒ|d||d|d    d
|d |ƒ|d||d ƒƒƒ}|jjj    rÜ|d||d|d    d
|d |ƒ|d||dƒƒt
j d}|jj j    r(|  |d||dddƒ¡|jjj    r(|  |d||dddƒ¡|jjj    rt|  |d||dd    dƒ¡|jjj    rt|  |d||dd    dƒ¡dS)Nrr)Útestingr)ÚComputedrZcomputed_default_tableÚidT)Z primary_keyÚnormalZ computed_colz normal + 42Z with_defaultZ42)Zserver_defaultZcomputed_column_tableZcomputed_no_flagz normal / 42rZcomputed_virtualz
normal + 2F)Z    persistedz
normal / 2Zcomputed_storedz normal - 42z normal * 42)rlrr!r    rr"rÚrequiresZschemasrƒrZ test_schemaZcomputed_columns_virtualZ append_columnZcomputed_columns_stored)    r rKrr!rr"rrŒÚt2r$r$r*r¶Gsz       ú     û
 ú     
ýÿ 
ýÿ 
ýÿ 
ýÿz+ComputedReflectionFixtureTest.define_tables) rTrUrVr«r½Z __backend__r‘ÚreÚcompilerr rÖr¶r$r$r$r*r<s
rc@s$eZdZdd„Zdd„Zdd„ZdS)ÚCacheKeyFixturecCsŒ| ¡}| ¡}|dkr6|j d¡s(t‚|dks„t‚nNt|j|jƒtt|jƒt|jƒƒt|j|jƒD]\}}|j    ||dsht‚qh||fS)Nr0©Úcompare_values)
Ú_generate_cache_keyÚ _annotationsÚgetr&r
râÚhashrÎÚ
bindparamsÚcompare)r'ÚaÚbr+Úa_keyÚb_keyÚa_paramÚb_paramr$r$r*Ú_compare_equalszCacheKeyFixture._compare_equalcCsè|ƒ}|ƒ}t tt|ƒƒd¡D]À\}}||krX| |||||¡\}}|dkrVq nº|| ¡}|| ¡}|dks€|dkrº|dkrœ||j d¡sœt‚|dkr ||j d¡s t‚q |j    |j    krt
|j |j ƒD]\}    }
|    j |
|ds֐qqÖt |j    |j    ƒnt |j    |j    ƒt||tƒr t||tƒr g} g} t ||¡D]} | jdkrD|  | ¡qDt ||¡D]} | jdkrp|  | ¡qptt|j dd„dtt | ¡dd„dƒtt|j d    d„dtt | ¡d
d„dƒq dS) Nrr0r*Z    bindparamcSs|jSr%©râ©r3r$r$r*Ú<lambda>Ýóz8CacheKeyFixture._run_cache_key_fixture.<locals>.<lambda>r9cSs|jSr%r9r:r$r$r*r;ßr<cSs|jSr%r9r:r$r$r*r;ãr<cSs|jSr%r9r:r$r$r*r;år<)Ú    itertoolsÚcombinations_with_replacementÚrangerÒr8r,r-r.r&rârÎr0r1r rÓr"r!ZiterateZ__visit_name__r>r
ÚsortedrZ unique_list)r'rar+Úcase_aÚcase_br2r3r4r5r6r7Zassert_a_paramsZassert_b_paramsÚelemr$r$r*Ú_run_cache_key_fixturežsx
ÿÿ  ÿ ÿÿ  ÿþÿþz&CacheKeyFixture._run_cache_key_fixturecCsD|ƒ}|ƒ}t tt|ƒƒd¡D]\}}| |||||¡q dS)Nr)r=r>r?rÒr8)r'rar+rArBr2r3r$r$r*Ú_run_cache_key_equal_fixtureés
ÿ z,CacheKeyFixture._run_cache_key_equal_fixtureN)rTrUrVr8rDrEr$r$r$r*r)ŒsKr)FcsJ|j}|j‰|j‰Gdd„dƒ‰‡‡‡‡fdd„‰‡‡fdd„}||_dS)Nc@s eZdZdZdd„Zdd„ZdS)z.insertmanyvalues_fixture.<locals>.RandomCursor©ÚcursorcSs
||_dSr%rF)r'rGr$r$r*Ú__init__þsz7insertmanyvalues_fixture.<locals>.RandomCursor.__init__cSs |j ¡}t|ƒ}t |¡|Sr%)rGÚfetchallÚlistÚrandomÚshuffle)r'rÔr$r$r*rIs
 
z7insertmanyvalues_fixture.<locals>.RandomCursor.fetchallN)rTrUrVÚ    __slots__rHrIr$r$r$r*Ú RandomCursorûsrNc3s@ˆr ˆ|ƒ}ˆ|||||ƒD]}ˆr4|jr4t d¡|VqdS)Nz)Batches were downgraded for sorted INSERT)Z is_downgradedrÚwarn)rGZ    statementÚ
parametersZgeneric_setinputsizesÚcontextÚbatch)rNÚ orig_dialectÚrandomize_rowsÚwarn_on_downgradedr$r*Ú!_deliver_insertmanyvalues_batches sÿ
 
zCinsertmanyvalues_fixture.<locals>._deliver_insertmanyvalues_batchesc
s4tjj|dˆdˆ||ƒW5QR£SQRXdS)NrV)Únew)rÚpatchÚobject)ÚdialectrQ)rVÚ    orig_connr$r*Ú_exec_insertmany_contexts ýz:insertmanyvalues_fixture.<locals>._exec_insertmany_context)rZrVr\)r=rTrUrZr\r$)rNrVr[rSrTrUr*Úinsertmanyvalues_fixtureós  r])FF)>Ú
__future__rr=rKr'rÂÚtypingrZ
sqlalchemyrNrlrrrr    r
r Úentitiesr r rrrrrrrrrrrêrrrårrr rpr!Z sql.elementsr"Zmark_base_test_classr#r9r’r”r×rÙrärÚrìrorðròrórôZAssertsExecutionResultsrörrr)r]r$r$r$r*Ú<module>
sn                           UR      x$Phÿ