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
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
U
¸ý°dˆ/ã@s ddlZddlmZddlmZddlmZddlmZddlmZdd    lmZdd
lm    Z    dd lm
Z
dd l m Z d dlm Z d dlmZd dlmZd dlmZd dlmZd dlmZd dlm Z d dlmZd dlmZGdd„dejƒZGdd„dejeƒZGdd„dejƒZdZdS)éNé)Útestingé)Úconfig)Úfixtures)Úutil)Úeq_)Úis_false)Úis_true)Ú requirements)ÚTableé)ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)ÚIndex)Úinspect)ÚInteger©Úschema)ÚString)ÚUniqueConstraintc@seZdZdZddd„Zdd„Zd dd„Zd    d
„Zej    e
j d d „ƒƒZ ej    ej e
j d d„ƒƒƒZeje
j dd„ƒƒZej    e
j dd„ƒƒZeje
j dd„ƒƒZeje
j dd„ƒƒZeje
j dd„ƒƒZeje
j dd„ƒƒZeje
j dd„ƒƒZeje
j dd„ƒƒZdS)!Ú TableDDLTestTNc    Cs*td|jtdtdddtdtdƒƒ|dS)    NÚ
test_tableÚidTF©Ú primary_keyZ autoincrementÚdataé2r©r Úmetadatarrr)Úselfr©r"úXd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\sqlalchemy/testing/suite/test_ddl.pyÚ_simple_fixtures ûzTableDDLTest._simple_fixturec    Cs&td|jtdtdddtdtdƒƒƒS)NZ _test_tablerTFrÚ_datarr)r!r"r"r#Ú_underscore_fixture%s  üz TableDDLTest._underscore_fixturecCs"|j|d}td|jjƒ}||fS)NrÚ
test_index)r$rÚcr)r!rÚtableÚidxr"r"r#Ú_table_index_fixture-s z!TableDDLTest._table_index_fixturec    CsJtj ¡6}| | ¡ d¡¡| | ¡¡}t| ¡dƒW5QRXdS)N)rz    some data)    rÚdbÚbeginÚexecuteÚinsertÚvaluesÚselectrÚfirst)r!r)ÚconnÚresultr"r"r#Ú_simple_roundtrip2s zTableDDLTest._simple_roundtripcCs&| ¡}|jtjdd| |¡dS©NF©Z
checkfirst)r$Úcreaterr,r5©r!r)r"r"r#Útest_create_table8szTableDDLTest.test_create_tablecCs,|jtjd}|jtjdd| |¡dS)NrFr7)r$rZ test_schemar8r,r5r9r"r"r#Útest_create_table_schema?sz%TableDDLTest.test_create_table_schemacCs,| ¡}|jtjdd|jtjdddSr6)r$r8rr,Zdropr9r"r"r#Útest_drop_tableGszTableDDLTest.test_drop_tablecCs&| ¡}|jtjdd| |¡dSr6)r&r8rr,r5r9r"r"r#Útest_underscore_namesNsz"TableDDLTest.test_underscore_namescCsH| ¡}|j|ddd|_| t |¡¡tt|ƒ d¡ddiƒdS©NFr7z    a commentrÚtext)    r$r8Úcommentr.rÚSetTableCommentrrÚget_table_comment©r!Ú
connectionr)r"r"r#Útest_add_table_commentUs þz#TableDDLTest.test_add_table_commentcCsX| ¡}|j|ddd|_| t |¡¡| t |¡¡tt|ƒ     d¡ddiƒdSr>)
r$r8r@r.rrAZDropTableCommentrrrBrCr"r"r#Útest_drop_table_commentas ÿz$TableDDLTest.test_drop_table_commentcCsF| ¡}| tj|dd¡tt|ƒ d¡ƒ| tj|dd¡dS)NT©Z if_not_existsr)r$r.rÚ CreateTabler
rÚ    has_tablerCr"r"r#Útest_create_table_if_not_existsmsz,TableDDLTest.test_create_table_if_not_existscCsž| ¡\}}| tj|dd¡tt|ƒ d¡ƒtddd„t|ƒ d¡Dƒkƒ| tj    |dd¡tddd„t|ƒ d¡Dƒkƒ| tj    |dd¡dS)NTrGrr'cSsg|] }|d‘qS©Únamer"©Ú.0Úixr"r"r#Ú
<listcomp>€sÿz@TableDDLTest.test_create_index_if_not_exists.<locals>.<listcomp>cSsg|] }|d‘qSrKr"rMr"r"r#rPŠsÿ)
r+r.rrHr
rrIr    Ú get_indexesZ CreateIndex©r!rDr)r*r"r"r#Útest_create_index_if_not_existsws&  þÿÿ þÿÿz,TableDDLTest.test_create_index_if_not_existscCsb| ¡}| |¡tt|ƒ d¡ƒ| tj|dd¡tt|ƒ d¡ƒ| tj|dd¡dS)NrT©Z    if_exists)    r$r8r
rrIr.rZ    DropTabler    rCr"r"r#Útest_drop_table_if_exists’s 
z&TableDDLTest.test_drop_table_if_existscCs‚| ¡\}}| |¡tddd„t|ƒ d¡Dƒkƒ| tj|dd¡tddd„t|ƒ d¡Dƒkƒ| tj|dd¡dS)Nr'cSsg|] }|d‘qSrKr"rMr"r"r#rPªsÿz:TableDDLTest.test_drop_index_if_exists.<locals>.<listcomp>rTrTcSsg|] }|d‘qSrKr"rMr"r"r#rP´sÿ)    r+r8r
rrQr.rZ    DropIndexr    rRr"r"r#Útest_drop_index_if_exists¡s$ 
 þÿÿ þÿÿz&TableDDLTest.test_drop_index_if_exists)N)N)Ú__name__Ú
__module__Ú __qualname__Ú __backend__r$r&r+r5r Z create_tablerZprovide_metadatar:Zschemasr;Z
drop_tabler<r=Zcomment_reflectionrErFZtable_ddl_if_existsrJZindex_ddl_if_existsrSrUrVr"r"r"r#rsH
    
 
 
   rc@s eZdZdS)ÚFutureTableDDLTestN)rWrXrYr"r"r"r#r[½sr[c@sreZdZdZdZdd„Zdd„Zdd„Zd    d
„Zd d „Z    e
j d ddde
j j  ¡fde
j j ¡fdddd„ƒZdS)ÚLongNameBlowoutTestzjtest the creation of a variety of DDL structures and ensure
    label length limits pass on backends
 
    Tc    Cs°ddd dd„tdƒDƒ¡i}||_td|tdtd    d
d    d td gd gƒ}td|td ƒ|d    d |j}| |¡t    j
j j r¤t |ƒ}| d¡}|dd}||fS|dfSdS)NÚfkzGforeign_key_%(table_name)s_%(column_0_N_name)s_%(referred_table_name)s_Ú_css&|]}d dd„tdƒDƒ¡VqdS)Úcss|]}t d¡VqdS©ZabcdefN©ÚrandomÚchoice©rNÚjr"r"r#Ú    <genexpr>Ðsz3LongNameBlowoutTest.fk.<locals>.<genexpr>.<genexpr>éN©ÚjoinÚrange©rNÚir"r"r#rfÏsÿz)LongNameBlowoutTest.fk.<locals>.<genexpr>é
Úa_things_with_stuffÚid_long_column_nameT©r)Z test_needs_fkZaidz'a_things_with_stuff.id_long_column_nameZb_related_things_of_valuerrL)rirjÚnaming_conventionr rrrrLÚ
create_allrÚrequiresZ&foreign_key_constraint_name_reflectionZenabledrZget_foreign_keys)    r!r rDÚ
conventionÚconsÚ actual_nameÚinspZfksÚreflected_namer"r"r#r]ÉsF
þüÿ  üÿÿù    
 
 
 zLongNameBlowoutTest.fkc
    Cs€ddd dd„tdƒDƒ¡i}||_td|tdtd    d
td td    d
ƒ}|j}|j}| |¡t    |ƒ}| 
d¡}|d }    ||    fS) NÚpkz.primary_key_%(table_name)s_%(column_0_N_name)sr^css&|]}d dd„tdƒDƒ¡VqdS)r_css|]}t d¡VqdSr`rardr"r"r#rfýsz3LongNameBlowoutTest.pk.<locals>.<genexpr>.<genexpr>éNrhrkr"r"r#rfüsÿz)LongNameBlowoutTest.pk.<locals>.<genexpr>rmrnroTrpÚid_another_long_namerL) rirjrqr rrrrLrrrZget_pk_constraint)
r!r rDrtÚarurvrwryrxr"r"r#ry÷s*
þýÿ
  ü
 
zLongNameBlowoutTest.pkc
CsŽddd dd„tdƒDƒ¡i}||_td|tdtd    d
td tƒƒ}td|jj|jj    ƒ}|j
}|  |¡t |ƒ}|  d¡}|d d }    ||    fS)NrOz(index_%(table_name)s_%(column_0_N_name)sr^css&|]}d dd„tdƒDƒ¡VqdS)r_css|]}t d¡VqdSr`rardr"r"r#rfsz3LongNameBlowoutTest.ix.<locals>.<genexpr>.<genexpr>rzNrhrkr"r"r#rfsÿz)LongNameBlowoutTest.ix.<locals>.<genexpr>rmrnroTrpr{rrL)rirjrqr rrrr(ror{rLrrrrQ)
r!r rDrtr|rurvrwrOrxr"r"r#rOs*
þýÿ
 ü
 
 zLongNameBlowoutTest.ixc    Cs†ddd dd„tdƒDƒ¡i}||_tddƒ}td    |tdtd
d tdtƒ|ƒ|j}| |¡t    |ƒ}| 
d    ¡}|d d }||fS)NÚuqz4unique_constraint_%(table_name)s_%(column_0_N_name)sr^css&|]}d dd„tdƒDƒ¡VqdS)r_css|]}t d¡VqdSr`rardr"r"r#rf5sz3LongNameBlowoutTest.uq.<locals>.<genexpr>.<genexpr>rzNrhrkr"r"r#rf4sÿz)LongNameBlowoutTest.uq.<locals>.<genexpr>rmror{rnTrprrL) rirjrqrr rrrLrrrZget_unique_constraints)    r!r rDrtrurvrwr}rxr"r"r#r}/s,
þýÿ
 
 û
 
 zLongNameBlowoutTest.uqc    Cs„ddd dd„tdƒDƒ¡i}||_tdƒ}td|td    td
d td tƒ|ƒ|j}| |¡t    |ƒ}| 
d¡}|d d}||fS)NÚckzcheck_constraint_%(table_name)sr^css&|]}d dd„tdƒDƒ¡VqdS)r_css|]}t d¡VqdSr`rardr"r"r#rfQsz3LongNameBlowoutTest.ck.<locals>.<genexpr>.<genexpr>rzNrhrkr"r"r#rfPsÿz)LongNameBlowoutTest.ck.<locals>.<genexpr>rmzsome_long_column_name > 5rnroTrpZsome_long_column_namerrL) rirjrqrr rrrLrrrZget_check_constraints)    r!r rDrtrurvrwr~rxr"r"r#r~Ls,
þþÿ     û
 
 zLongNameBlowoutTest.ck)r])ry)rOr~r}Útype_)ÚargnamescCs~t||ƒ||ƒ\}}t|ƒdks$t‚|dk    rz|dt|ƒ…}t|ƒt|ƒkrpt|dd…|dt|ƒd…ƒn
t||ƒdS)Néÿréûÿÿÿé)ÚgetattrÚlenÚAssertionErrorr)r!rr rDrvrxÚoverlapr"r"r#Útest_long_convention_namehs    ÿ$z-LongNameBlowoutTest.test_long_convention_nameN)rWrXrYÚ__doc__rZr]ryrOr}r~rÚ combinationsrsZcheck_constraint_reflectionZas_skipsZunique_constraint_reflectionrˆr"r"r"r#r\Ás .úr\)rr[r\)rbr_rrrrZ
assertionsrr    r
r rr rrrrrrrrZTestBaserZFutureEngineMixinr[r\Ú__all__r"r"r"r#Ú<module>s0                  %?