idRddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z d d lm Z d d lm Z d d lm Z d dlmZd dlmZd dlmZGddejZGddejZGddejZGddejZdS)) assert_raises)config)eq_)fixtures)ne_)provide_metadata) requirements)Column)Table)exc)Integer)literal_column)select)String)compatcVeZdZdZdZdZedZej dZ dZ dS) ExceptionTestzTest basic exception wrapping. DBAPIs vary a lot in exception behavior so to actually anticipate specific exceptions from real round trips, we need to be conservative. eachTc td|tdtddtdtddS)N manual_pkidTF primary_key autoincrementdata2r r rrclsmetadatas Z/opt/cloudlinux/venv/lib/python3.11/site-packages/sqlalchemy/testing/suite/test_dialect.py define_tableszExceptionTest.define_tables sK   4d% H H H 66":: & &      c tj5}|}||jjdddttj |j|jjddd| ddddS#1swxYwYdS)Nd1rr) rdbconnectbeginexecutetablesrinsertrr IntegrityErrorrollback)selfconntranss r"test_integrity_errorz"ExceptionTest.test_integrity_error)s Y    DJJLLE LL %,,..q$0G0G    "  %,,..$''     NN                     sBC  CCctj5} |t t dgJ#t j$r>}t|}t|j t|vsJYd}~nd}~wwxYwtj rt|tsJnt|tsJddddS#1swxYwYdS)Numéil) rr)r*r,rrr DBAPIErrorstrorigrpy2k isinstance)r1r2errerr_strs r"test_exception_with_non_asciiz+ExceptionTest.test_exception_with_non_ascii<s= Y    0D 1  V^H%=%=$>??@@@ > 1 1 1c((38}}C000000000 1{ 0!'3//////!'3/////' 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s4C+2AB "4BC+B  >C++C/2C/N) __name__ __module__ __qualname____doc__ run_deletes __backend__ classmethodr#r $duplicate_key_raises_integrity_errorr4r=r$r"rrsqKK  [ 676$00000r$rc.eZdZdZdZdZdZdZdZdS)IsolationLevelTestTisolation_levelctjt}|d}|d}t|d|g}|r|StjddS)Ndefault supported AUTOCOMMITz(no non-default isolation level available)r get_isolation_levelsrset differencepop skip_test)r1levelsrLrMss r" _get_non_default_isolation_levelz3IsolationLevelTest._get_non_default_isolation_levelXsr26::#;'  NN % %|W&= > >  I5577N  G H H H H Hr$cttjjjt jtddS)NrL)rrr)dialectdefault_isolation_levelr rO)r1s r"test_default_isolation_levelz/IsolationLevelTest.test_default_isolation_levelds< I  5  -f 5 5i @     r$c|}tj5}|}t ||||t|||j |j t||ddddS#1swxYwYdS)NrI) rVrr)r*get_isolation_levelrexecution_optionsrrXreset_isolation_level connection)r1 non_defaultr2existings r" test_non_default_isolation_levelz3IsolationLevelTest.test_non_default_isolation_leveljs;;== Y   6D//11H + & & &  " "; " ? ? ? ((**K 8 8 8 L . .t ? ? ? ((**H 5 5 5 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6sBCC"%C"ctjt}|d}t|dgD]}tj5}||t| || }| t| |dddn #1swxYwYtj5}t| |ddddn #1swxYwYdS)NrMrNrIrL) r rOrrPrQr)r*r]rr\r+r0)r1rT all_levelslevelr2r3s r"test_all_levelsz"IsolationLevelTest.test_all_levelszs26::K( __//??  E""$$ 7&&u&===D,,..666    D,,..666 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7""$$ ,,..9%                 s%&BC55C9 <C9 )EE E N) r>r?r@rC __requires__rVrZrbrfrFr$r"rHrHSs]K'L I I I   666 r$rHcHeZdZdZdZdZedZdZdZ dZ dZ d S) AutocommitTestr) autocommitTc td|tdtddtdtdddS) N some_tablerTFrrr)test_needs_acidrrs r"r#zAutocommitTest.define_tablessS   4d% H H H 66":: & &       r$c|}||jjddd|t |t|jjj j g|rdnd||jj dS)Nr&z some datar() r+r,r-rlr.r0rscalarrcrdelete)r1r2rjr3s r"_test_conn_autocommitsz%AutocommitTest._test_conn_autocommitss  K " ) ) + +A{-K-K     KK 6 8 ;<== > > %AA   T[+224455555r$ctj}|d}||d|j|j||ddS)NrNrITF)rr)r*r]rrrXr^r_)r1r2c2s r"test_autocommit_onz!AutocommitTest.test_autocommit_onsuy  ""  # #L # A A ##B--- ((777 ##D%00000r$cntj}||ddS)NF)rr)r*rrr1r2s r"test_autocommit_offz"AutocommitTest.test_autocommit_offs1y  "" ##D%00000r$c,tj}|d||d|t jtd||ddS)NrNrITrLF)rr)r*r]rrr rOrws r".test_turn_autocommit_off_via_default_iso_levelz=AutocommitTest.test_turn_autocommit_off_via_default_iso_levelsy  "" |<<< ##D$/// (=fEE    ##D%00000r$N) r>r?r@rBrgrCrDr#rrrurxrzrFr$r"ririsxK"LK  [  6 6 6111111 1 1 1 1 1r$ric$eZdZedZdS) EscapingTestc |j}td|tdtd}|t jt j5}|| td|| tdt| t|jjg|jjt#dkdt| t|jjg|jjt#dkdd d d d S#1swxYwYd S) z|test that the DBAPI accommodates for escaped / nonescaped percent signs in a way that matches the compiler trrz some % value)rzsome %% other valuez'some % value'z'some %% other value'N)r!r r rcreaterr)r+r,r.dictrrorrprwherer)r1mr~r2s r"test_percent_sign_round_tripz)EscapingTest.test_percent_sign_round_trips M #q&44 5 5  Y__   $ LLT~%>%>%> ? ? ? LLT/D%E%E%E F F F  ACH:&&,,N3C$D$DD       ACH:&&,,N3J$K$KK &                      s1D?F==GGN)r>r?r@rrrFr$r"r|r|s.r$r|N)rrrrrrr schemar r r rrrrutilr TablesTestrTestBaserHrir|rFr$r"rs!!!!!!<0<0<0<0<0H'<0<0<0~;;;;;*;;;|7171717171X(717171t8$r$