L i.hddlZddlmZddlmZddlmZddlmZddlmZdd lmZdd lm Z dd lm Z dd l m Z d dlm Z d dlmZd dlmZd dlmZd dlmZd dlmZd dlm Z d dlmZd dlmZGddej*ZGddej.eZGddej*ZdZy)N)testing)config)fixtures)util)eq_)is_false)is_true) requirements)Table)CheckConstraint)Column)ForeignKeyConstraint)Index)inspect)Integerschema)String)UniqueConstraintceZdZdZddZdZddZdZeje jdZ ejeje jdZeje jd Zeje jd Zej$e jd Zej$e jd Zej*e jd Zej.e jdZej*e jdZej.e jdZy) TableDDLTestTNc ~td|jtdtddtdt d|S) N test_tableidTF primary_key autoincrementdata2rr metadatarrr)selfrs g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_ddl.py_simple_fixturezTableDDLTest._simple_fixture"s8  MM 4d% H 66": &   c ztd|jtdtddtdt dS)N _test_tablerTFr_datar"r#)r%s r&_underscore_fixturez TableDDLTest._underscore_fixture+s5  MM 4d% H 7F2J '   r(cn|j|}td|jj}||fS)Nr test_index)r'rcr!)r%rtableidxs r&_table_index_fixturez!TableDDLTest._table_index_fixture3s3$$F$3L%'',,/czr(c8tjj5}|j|j j d|j|j }t|jddddy#1swYyxYw)N)rz some data) rdbbeginexecuteinsertvaluesselectr first)r%r0connresults r&_simple_roundtripzTableDDLTest._simple_roundtrip8sj YY__  2$ LL../?@ A\\%,,.1F   0 1 2 2 2s A(BBc|j}|jtjd|j |yNF checkfirst)r'createrr4r=r%r0s r&test_create_tablezTableDDLTest.test_create_table>s4$$& VYY5 1 u%r(c|jtj}|jtjd|j |y)NrFr@)r'r test_schemarBr4r=rCs r&test_create_table_schemaz%TableDDLTest.test_create_table_schemaEs?$$F,>,>$? VYY5 1 u%r(c|j}|jtjd|j tjdyr?)r'rBrr4droprCs r&test_drop_tablezTableDDLTest.test_drop_tableMs:$$& VYY5 1 699 /r(c|j}|jtjd|j |yr?)r,rBrr4r=rCs r&test_underscore_namesz"TableDDLTest.test_underscore_namesTs4((* VYY5 1 u%r(c|j}|j|dd|_|jt j |t t|jdddiyNFr@z a commentrtext) r'rBcommentr6rSetTableCommentr rget_table_commentr% connectionr0s r&test_add_table_commentz#TableDDLTest.test_add_table_comment[se$$& ZE 2# 611%89 J  1 1, ? [ ! r(c4|j}|j|dd|_|jt j ||jt j |tt|jdddiyrN) r'rBrPr6rrQDropTableCommentr rrRrSs r&test_drop_table_commentz$TableDDLTest.test_drop_table_commentgs|$$& ZE 2# 611%8962259: J  1 1, ?&$ r(c|j}|jtj|dt t |j d|jtj|dy)NT if_not_existsr)r'r6r CreateTabler r has_tablerSs r&test_create_table_if_not_existsz,TableDDLTest.test_create_table_if_not_existsss`$$&6--e4HI #--l;<6--e4HIr(c@|j\}}|jtj|dt t |j dtdt |jdDcgc]}|d c}v|jtj|dt dt |jdDcgc]}|d c}v|jtj|dycc}wcc}w)NTrZrr.name) r2r6rr\r rr]r get_indexes CreateIndexr%rTr0r1ixs r&test_create_index_if_not_existsz,TableDDLTest.test_create_index_if_not_exists}s..0 s6--e4HI #--l;< "*-99,G6    6--cFG "*-99,G6    6--cFG!s ? D  D cj|j}|j|tt|j d|j t j|dtt|j d|j t j|dy)NrT if_exists) r'rBr rr]r6r DropTabler rSs r&test_drop_table_if_existsz&TableDDLTest.test_drop_table_if_existss$$& Z  #--l;<6++ETBC$..|<=6++ETBCr(c|j\}}|j|tdt|j dDcgc]}|d c}v|j t j|dtdt|j dDcgc]}|d c}v|j t j|dycc}wcc}w)Nr.rr`Trg) r2rBr rrar6r DropIndexr rcs r&test_drop_index_if_existsz&TableDDLTest.test_drop_index_if_existss..0 s Z  "*-99,G6    6++C4@A "*-99,G6    6++C4@A!s  C # C# )N)__name__ __module__ __qualname__ __backend__r'r,r2r=r create_tablerprovide_metadatarDschemasrG drop_tablerJrLcomment_reflectionrUrXtable_ddl_if_existsr^index_ddl_if_existsrerjrmr(r&rrsK   2  &&  &&  00  && $$  % $$  % %% J&J%% H&H2%%  D& D%% B&Br(rc eZdZy)FutureTableDDLTestN)rnrorpryr(r&r{r{sr(r{c eZdZdZdZdZdZdZdZdZ e jdd d d e jjjfd e jjjfd dZy)LongNameBlowoutTestzjtest the creation of a variety of DDL structures and ensure label length limits pass on backends Tc dddjdtdDzi}||_td|t dt d d t d gd g}td |t d |d |j}|j|tjjjr(t|}|jd }|dd}||fS|dfS)NfkzGforeign_key_%(table_name)s_%(column_0_N_name)s_%(referred_table_name)s__c3^K|]%}djdtdD'yw)c3FK|]}tjdywabcdefNrandomchoice.0js r& z3LongNameBlowoutTest.fk...GFMM(3G!Njoinrangeris r&rz)LongNameBlowoutTest.fk..+GGGU2YGG+- a_things_with_stuffid_long_column_nameTr) test_needs_fkaidz'a_things_with_stuff.id_long_column_nameb_related_things_of_valuerr`)rrnaming_conventionr rrrr` create_allrrequires&foreign_key_constraint_name_reflectionenabledrget_foreign_keys) r%r$rT conventioncons actual_nameinspfksreflected_names r&rzLongNameBlowoutTest.fks '"2Y   &0" !  ('t D  $ G?@   '     ii J'    B B J J:&D''(CDC VF^N. .$ $r(c TdddjdtdDzi}||_td|t dt d t d t d }|j }|j}|j|t|}|jd}|d } || fS) Npkz.primary_key_%(table_name)s_%(column_0_N_name)src3^K|]%}djdtdD'yw)rc3FK|]}tjdywrrrs r&rz3LongNameBlowoutTest.pk...rrNrrs r&rz)LongNameBlowoutTest.pk..rrrrrTrid_another_long_namer`) rrrr rrrr`rrget_pk_constraint) r%r$rTrarrrrrs r&rzLongNameBlowoutTest.pks ""2Y  &0"  !  ('t D )7 E   }}ii J'z"  # #$9 :FN**r(c dddjdtdDzi}||_td|t dt d t d t }t d|jj|jj}|j}|j|t|}|jd}|d d } || fS) Nrdz(index_%(table_name)s_%(column_0_N_name)src3^K|]%}djdtdD'yw)rc3FK|]}tjdywrrrs r&rz3LongNameBlowoutTest.ix...rrrNrrs r&rz)LongNameBlowoutTest.ix..rrrrrTrrrr`)rrrr rrrr/rrr`rrra) r%r$rTrrrrrrdrs r&rdzLongNameBlowoutTest.ixs ""2Y  &0"  !  ('t D )7 3   T13322ACC4L4LMii J'z"   3 4AvN**r(c XdddjdtdDzi}||_tdd}t d|t dt d t dt ||j}|j|t|}|jd}|d d }||fS) Nuqz4unique_constraint_%(table_name)s_%(column_0_N_name)src3^K|]%}djdtdD'yw)rc3FK|]}tjdywrrrs r&rz3LongNameBlowoutTest.uq...;rrrNrrs r&rz)LongNameBlowoutTest.uq..:rrrrrrTrrr`) rrrrr rrr`rrget_unique_constraints) r%r$rTrrrrrrs r&rzLongNameBlowoutTest.uq5s ""2Y  &0" 57MN !  ('t D )7 3   ii J'z"  ( ()> ?AvN**r(c VdddjdtdDzi}||_td}t d|t dt d t d t ||j}|j|t|}|jd}|d d }||fS)Nckzcheck_constraint_%(table_name)src3^K|]%}djdtdD'yw)rc3FK|]}tjdywrrrs r&rz3LongNameBlowoutTest.ck...WrrrNrrs r&rz)LongNameBlowoutTest.ck..Vrrrzsome_long_column_name > 5rrTrsome_long_column_namerr`) rrrrr rrr`rrget_check_constraints) r%r$rTrrrrrrs r&rzLongNameBlowoutTest.ckRs 3"2Y &0":; !  ('t D *G 4   ii J'z"  ' '(= >AvN**r()r)r)rdrrtype_)argnamesct||||\}}t|dkDsJ|Q|dt|}t|t|krt|dd|dt|dz yt||yy)Nr)getattrlenr )r%rr$rTrroverlaps r&test_long_convention_namez-LongNameBlowoutTest.test_long_convention_namens';gdE&: j' # ^;#%%%  %!!c.&9:G7|c+..GAbM>!c'lQ6F#GHG^, &r(N)rnrorp__doc__rqrrrdrrr combinationsrcheck_constraint_reflectionas_skipsunique_constraint_reflectionrryr(r&r}r}s K,%\+8+8+:+8W w;;DDFG w<<EEGH  - -r(r})rr{r})rrrrrr assertionsr r r r rr rrrrrrrrTestBaserFutureEngineMixinr{r}__all__ryr(r&rs! !$ aB8$$aBH 33\ {-(++{-| Hr(