L i>:ddlmZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddl mZdd l mZdd lmZdd lmZd d l mZd dl mZd dlmZd dlmZd dlmZGdde ZGddZGddZGddeZGddZ ddZy)) annotationsN)TestBase)config)mock)eq_)ne_)adict)drop_all_tables_from_metadata)event)util)sort_tables_and_constraints)visitors) ClauseElementcneZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ ejdddZejddd Zed Zed Zed Zed ZdZdZdZedZedZedZedZedZedZ dZ!dZ"edZ#y) TablesTestonceeachNTclassautousescopec#K|j}|j|j|jd|j ywN) __class__ _init_class_setup_once_tables_setup_once_inserts_teardown_once_metadata_bind)selfclss e/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/sql.py_setup_tables_test_classz#TablesTest._setup_tables_test_class7s@nn    !  ((*sAAfunctionc#tK|j|jd|jywr)_setup_each_tables_setup_each_inserts_teardown_each_tablesr"s r$_setup_tables_test_instancez&TablesTest._setup_tables_test_instanceDs- !   "  ""$s68c|jSr)_tables_metadatar+s r$tables_test_metadatazTablesTest.tables_test_metadataMs$$$c$|jdk(r&|jdk(rd|_|jdvsJt|_t|_t|_|j|_tj|_ y)Nrr)rN) run_define_tablesrun_create_tables run_insertsr othertables sequences setup_bindbindsaMetaDatar.r#s r$rzTablesTest._init_classQso  F *$$.(.%??n4 44G W  >>#!{{}r0c|jdk(rE|j|jj5}|j |dddyy#1swYyxYwNrr4_load_fixturesr9begin insert_data)r#conns r$r zTablesTest._setup_once_inserts_sU ??f $    ! &T% & & % & & AAc~|jdk(r|j|j|jdk(r%|jj |j |j j|jj |jj|jjyyr> r2 define_tablesr.r3 create_allr9r6updater7 _sequencesr<s r$rzTablesTest._setup_once_tablesfs  F *   c22 3$$.$$//9 JJ  c2299 : MM !5!5!@!@ A +r0c|jdk(r|j|j|jdk(r%|jj |j |j j|jj |jj|jjy|jdk(r&|jj |j yyNrrFr+s r$r(zTablesTest._setup_each_tablesos  ! !V +   t44 5%%/%%00; KK  t44;; < NN ! !$"7"7"B"B C  # #v -  ! ! , ,TYY 7.r0c|jdk(rE|j|jj5}|j |dddyy#1swYyxYwrLr?)r"rCs r$r)zTablesTest._setup_each_insertsysY   v %    !" 'd  & ' ' & ' 'rDc j|jdk(rd|jj|jdk(r t |j |j |j jn/|jdk(r t |j |j ttjdd}|r |j}|jdk7r|jdk7r|jdk(r|j j5}tt|j jjDcgc] \}}|| c}}D]]} |r9|j!5|j#|j%dddn|j#|j%_ dddyyyycc}}w#1swYxYw#t&j(j*$r+}t-d|d|t.j0Yd}~d}~wwxYw#1swYyxYw)Nr savepointsFzError emptying table z: )file)r2r6clearr3r r.r9getattrr requirementsenabled run_deletesrAreversedrvalues begin_nestedexecutedeleter:exc DBAPIErrorprintsysstderr)r"rOrCtfkstableexs r$r*z TablesTest._teardown_each_tabless  ! !V + KK   %%/-d.C.CTYYO  ! ! ' ' )  # #v - )$*?*? KV00,F #++J  " "f ,&&&0  F*" d%)D 1188??A)$Q= E %!%!2!2!4= $ U\\^ <==!LL8  +1 - ==66,,>CRH!$!  s`6H) G  H)#G5 G(G=H) H)G GH&;!H!H)!H&&H))H2c|jr t|j|j|jdk(r|j |jd|j_|j d|_yyr>)r3r r.r9run_dispose_bind dispose_bindrun_setup_bindr<s r$r!z'TablesTest._teardown_once_metadata_bindse  )#*>*> I   6 )   SXX &$(!    )CH *r0c"tjSr)rdbr<s r$r8zTablesTest.setup_binds yyr0cxt|dr|jyt|dr|jyy)Ndisposeclose)hasattrrkrl)r#r9s r$rfzTablesTest.dispose_binds- 4 # LLN T7 # JJL$r0cyr)r#metadatas r$rGzTablesTest.define_tables r0ciSrror<s r$fixtureszTablesTest.fixturess r0cyrro)r# connections r$rBzTablesTest.insert_datarqr0c>|j|j||yr)assert_sql_countr9)r"countfns r$ sql_count_zTablesTest.sql_count_s diiU3r0c>|j|j||yr) assert_sqlr9)r" callable_ statementss r$sql_eq_zTablesTest.sql_eq_s  9j9r0cDii}}|jjD]C\}}t|dkrt|tr|j |}|d||<|dd||<Et |jj jD]w\}}| ||vr|jj5}|j|j||Dcgc]}tt|||c}dddyycc}w#1swYxYw)z4Insert rows as represented by the fixtures() method.rrrN)rsitemslen isinstancestrr6rr.rWr9rArYinsertdictzip)r#headersrowsrbdatararC column_valuess r$r@zTablesTest._load_fixturess(B<<>//1 #KE44y1}%% 5)!!WGENqr(DK  #6  ' ' . . 0  JE3}G#! T LLN.2%[)S?@     s>"D D?DDD )$__name__ __module__ __qualname__rgr2r3r4rUrer9r.r6r5r7rfixturer%r,propertyr/ classmethodrr rr(r)r*r!r8rfrGrsrBrzrr@ror0r$rrsNKK D F EIV^^D0 +1 +V^^D 3%4%%% - -&& BB8' 'R       4:r0rc@eZdZejdddZy)NoCacheTr&rc#Ktjj}dtj_d|tj_ywr)rri_compiled_cache)r"_caches r$_disable_cachezNoCache._disable_caches0**$( ! $* !sA A N)rrrrrrror0r$rrs!V^^D 3+4+r0rcjeZdZejdZdZejdddZ y) RemovesEventsctSr)setr+s r$ _event_fnszRemovesEvents._event_fnss u r0c p|jj|||ftj|||fi|yr)raddrlisten)r"targetnamerykws r$ event_listenzRemovesEvents.event_listens0 VT2./ VT2,,r0Tr&rc#ZKd|jD]}tj|ywr)rrremove)r"keys r$_remove_eventszRemovesEvents._remove_eventss( ?? C LL#  s)+N) rrrrmemoized_propertyrrrrrror0r$rrs@ -V^^D 34r0rcVeZdZdxZZdZdZejdZ dZ e dZ y)ComputedReflectionFixtureTestNT)computed_columnstable_reflectionz[\[\]\(\)\s`'\"]*cV|jjd|jS)N)regexpsublower)r"texts r$ normalizez'ComputedReflectionFixtureTest.normalizes {{r4(..00r0c ddlm}ddlm}ddlm}ddlm}ddlm}|d||d|d |d ||d ||d |d|d|d||d|d |d ||d||d }|jjjr:|d||d|d |d ||d||dtj}|jjjrb|j|d||dd|jjjr!j|d||dd|jjjrd|j|d||dd |jjjr"j|d||dd yyy)Nr )Integer)testing)Column)Computed)Tablecomputed_default_tableidT) primary_keynormal computed_colz normal + 42 with_default42)server_defaultcomputed_column_tablecomputed_no_flagz normal / 42)schemacomputed_virtualz normal + 2F) persistedz normal / 2computed_storedz normal - 42z normal * 42)rrrrrrrrequiresschemasrTr test_schemacomputed_columns_virtual append_columncomputed_columns_stored) r#rprrrrrr`t2s r$rGz+ComputedReflectionFixtureTest.define_tabless$&# $  4d 3 8W % >7H],C D >74 @    #  4d 3 8W % %w0G H      # # + +'tW$7x))7H]4KL)) B    4 4 < < OO&\U; ''//  * ?    3 3 ; ; OO%]d; ''//  ) $?0 >%%i0 00= =e|  599 % UYYeii 1$'(8(8%:J:J$K O w~NNN Oe|r0c 2|}|}tjtt|dD]]\}}||k(r |j |||||\}}|,||j }||j }||E| ||j jdsJ| ||j jdsJ|j|jk(r^t|j|jD]\} } | j| |rnBt|j|jn t|j|jt||tsGt||ts\g} g} tj ||D]#} | j"dk(s| j%| %tj ||D]#} | j"dk(s| j%| %t't)|jdt)t+j,| dt't)|jdt)t+j,| d `y) Nrrr bindparamc|jSrrrs r$z8CacheKeyFixture._run_cache_key_fixture.. 155r0rc|jSrrrs r$rz8CacheKeyFixture._run_cache_key_fixture.. r0c|jSrrrs r$rz8CacheKeyFixture._run_cache_key_fixture..rr0c|jSrrrs r$rz8CacheKeyFixture._run_cache_key_fixture..rr0) itertoolscombinations_with_replacementrangerrrrrrrrrr rrriterate__visit_name__appendr sortedr unique_list)r"rrcase_acase_brrrrrrassert_a_paramsassert_b_paramselems r$_run_cache_key_fixturez&CacheKeyFixture._run_cache_key_fixturehsn;; #f+  E DAqAv#221Ivay.  u=q 557q 557=EM}%ay5599)DDD}%ay5599)DDD99 ),/((%*:*:- 2( '#N / " 2EIIuyy1 599- &)]3 q =9#%"$$,,VAY75D**k9'..t45%,,VAY75D**k9'..t455++A((9 5++A((9AE r0c|}|}tjtt|dD]\}}|j ||||| y)Nr)rrrrr)r"rrrrrrs r$_run_cache_key_equal_fixturez,CacheKeyFixture._run_cache_key_equal_fixturesZ;; #f+   FDAq   q 6!9n E Fr0N)rrrrrrror0r$rrWs IVFr0rc|j}|j|jGddfdfd}||_y)Nc,eZdZdZdZedZdZy).insertmanyvalues_fixture..RandomCursorcursorc||_yrr)r"rs r$__init__z7insertmanyvalues_fixture..RandomCursor.__init__s  DKr0c.|jjSr)r descriptionr+s r$r z:insertmanyvalues_fixture..RandomCursor.descriptions;;** *r0cz|jj}t|}tj||Sr)rfetchalllistrandomshuffle)r"rs r$r z7insertmanyvalues_fixture..RandomCursor.fetchalls.;;'')D:D NN4 Kr0N)rrr __slots__rrr r ror0r$ RandomCursorrs%  !  +  + r0rc3K r|}||||||D])} r!|jrtjd|+yw)Nz)Batches were downgraded for sorted INSERT) is_downgradedrwarn) rur statement parametersgeneric_setinputsizescontextbatchr orig_dialectrandomize_rowswarn_on_downgradeds r$!_deliver_insertmanyvalues_batcheszCinsertmanyvalues_fixture.._deliver_insertmanyvalues_batchess[ !&)F!     !   E"e&9&9 EFK sAActjj|d5||cdddS#1swYyxYw)Nr)new)rpatchobject)dialectrr orig_conns r$_exec_insertmany_contextz:insertmanyvalues_fixture.._exec_insertmany_contextsD ZZ    /1  / Wg.  / / /s 7A)r!rr#) rurrr!r#rrr"rs `` @@@@r$insertmanyvalues_fixturer$sE  G<r+s# 01)MM`++   MJM`cFcFN:?:Cr0