§ w<ˆj5ã ó—ddlZddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z Gd „d e¦«ZGd „d e¦«ZGd „de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„d ejd gd!¢¦«¦«ZGd"„d#e¦«Zejd$„¦«ZdS)%éNé)Úevent)Úutil)Úurl)ÚDefaultDialect)Ú_distill_params)Ú _DDLCompilescó&—eZdZdZdZdZd„Zd„ZdS)Ú AssertRuleFNTcó—dS©N©©ÚselfÚexecute_observeds úp/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/sqlalchemy/testing/assertsql.pyÚprocess_statementzAssertRule.process_statements€Ø ˆócó—Jd¦«‚)NFz?All statements are complete, but pending assertion rules remainr©rs rÚno_more_statementszAssertRule.no_more_statementss€ð ð %ñ ô ˆur)Ú__name__Ú __module__Ú __qualname__Ú is_consumedÚ errormessageÚconsume_statementrrrrrr r sB€€€€€à€KØ€LØÐð ð ð ð ð ð ð ð rr có—eZdZdS)Ú SQLMatchRuleN©rrrrrrrr$s€€€€€Ø€Drrcó —eZdZdZdd„Zd„ZdS)Ú CursorSQLFNcó"—||_||_dSr )Ú statementÚparams)rr$r%s rÚ__init__zCursorSQL.__init__+s€Ø"ˆŒØˆŒ ˆ ˆ rcó"—|jd}|j|jks|j�9|j|jkr)d|j›d|j›d|j›d|j›�|_dS|j d¦«d|_|js d|_dSdS)NrzTesting for exact SQL z parameters z received ú T)Ú statementsr$r%Ú parametersrÚpoprr)rrÚstmts rrzCursorSQL.process_statement/s°€ØÔ*¨1Ô-ˆØ Œ>˜Tœ^Ò +Ð +Ø ŒKÐ #¨¬ °t´Ò(FÐ(Føð ”N�N�NØ”K�K�KØ”N�N�NØ”O�Oð ð Ô Ð Ð ð Ô '× +Ò +¨AÑ .Ô .Ð .Ø#ˆDÔ Ø#Ô.ð .Ø)-�Ô&Ð&Ð&ð .ð .rr )rrrrr&rrrrr"r"(s=€€€€€ØÐððððð.ð.ð.ð.ð.rr"có:—eZdZd d„Zd„Zd„Zd„Zd„Zd„Zd „Z dS) Ú CompiledSQLNÚdefaultcó0—||_||_||_dSr )r$r%Údialect)rr$r%r1s rr&zCompiledSQL.__init__Es€Ø"ˆŒØˆŒ ؈Œ ˆ ˆ rcóD—tjdd|j¦«}||kS©Nú[\n\t]Ú)ÚreÚsubr$)rrÚreceived_statementr,s rÚ _compare_sqlzCompiledSQL._compare_sqlJs"€ÝŒv�i  T¤^Ñ4Ô4ˆØ! TÒ)Ð)rcóº—|jdkrt¦«S|jdkrddi}ni}tj|j¦« ¦«di|¤ŽS)Nr/Ú postgresqlÚimplicit_returningTr)r1rrÚURLÚ get_dialect)rrr%s rÚ_compile_dialectzCompiledSQL._compile_dialectNsi€Ø Œ<˜9Ò $Ð $Ý!Ñ#Ô#Ð #ðŒ|˜|Ò+Ð+Ø.°Ð5��à�Ø6•3”7˜4œ<Ñ(Ô(×4Ò4Ñ6Ô6Ð@Ð@¸Ð@Ð@Ð @rcó>‡—|j}| |¦«}t|jjt ¦«r:|jj ||j d¦«¬¦«ŠnO|jj ||jj |jj |j d¦«¬¦«Štj ddtj‰¦«¦«}|j}|s‰ ¦«g}nˆfd„|D¦«}||fS)zxreconstruct the statement and params in terms of a target dialect, which for CompiledSQL is just DefaultDialect.Úschema_translate_map)r1rA)r1Ú column_keysÚinlinerAr4r5có:•—g|]}‰ |¦«‘ŒSr)Úconstruct_params)Ú.0ÚmÚcompileds €rú z3CompiledSQL._received_statement..us4ø€ð$ð$ð$Ø12�×)Ò)¨!Ñ,Ô,ð$ð$ð$r)Úcontextr?Ú isinstancerHr$r ÚcompileÚexecution_optionsÚgetrBrCr6r7rÚ text_typer*rE)rrrJÚcompare_dialectÚ_received_statementr*Ú_received_parametersrHs @rrQzCompiledSQL._received_statementYsFø€ð#Ô*ˆØ×/Ò/Ð0@ÑAÔAˆÝ �gÔ&Ô0µ,Ñ ?Ô ?ð ØÔ'Ô1×9Ò9Ø'Ø%,Ô%>×%BÒ%BØ*ñ&ô&ð:ñôˆHˆHðÔ'Ô1×9Ò9Ø'Ø#Ô,Ô8ØÔ'Ô.Ø%,Ô%>×%BÒ%BØ*ñ&ô&ð :ñôˆHõ!œf Y°µD´NÀ8Ñ4LÔ4LÑMÔMÐØ%Ô0ˆ àð Ø$,×$=Ò$=Ñ$?Ô$?Ð#@Ð Ð ð$ð$ð$ð$Ø6@ð$ñ$ô$Ð ð#Ð$8Ð8Ð8rcó0—|j}| |¦«\}}| |¦«}| ||¦«}|r—|�•t |¦«}t |¦«}|ro|rmt | d¦«¦«} tt |¦«¦«D]'\} } | D]} | | vs| | | | krnŒ|| =nŒ(d}n|r|°m|s|rd}|rd|_d|_ dS|  |¦«||dœz|_ dS)NrFT)r8Úreceived_parameters) rJrQÚ _all_paramsr9ÚlistÚdictr+Ú enumeraterrÚ_failure_message) rrrJrQrRr%Ú equivalentÚ all_paramsÚ all_receivedÚparamÚidxÚreceivedÚ param_keys rrzCompiledSQL.process_statement{s™€Ø"Ô*ˆà48×4LÒ4LØ ñ5 ô5 Ñ1ÐÐ1ð×!Ò! 'Ñ*Ô*ˆà×&Ò&Ð'7Ð9LÑMÔMˆ à ð 'ØÐ!Ý! &™\œ\� Ý#Ð$8Ñ9Ô9� Ø ð \ðÝ  §¢°Ñ!2Ô!2Ñ3Ô3�Eå)2µ4¸ Ñ3EÔ3EÑ)FÔ)Fðð™ ˜˜Xà).ð "ð "˜Ið!*°Ð 9Ð 9Ø#+¨IÔ#6¸%À Ô:JÒ#JÐ#Jà % ð$Kð !-¨SÐ 1Ø!˜Eð !&ð&+˜ Øð-!ð \ðð.ð' ð'Ø!&�Jà ð Ø#ˆDÔ Ø $ˆDÔ Ð Ð à $× 5Ò 5°fÑ =Ô =Ø&9Ø';ðAðAñ!ˆDÔ Ð Ð rcó´—|jrPtj|j¦«r| |¦«}n|j}t|t¦«s|g}|SdSr )r%rÚcallablerKrV)rrJr%s rrUzCompiledSQL._all_params¬s]€Ø Œ;ð ÝŒ}˜Tœ[Ñ)Ô)ð %ØŸš WÑ-Ô-��àœ�ݘf¥dÑ+Ô+ð "Ø ˜�؈Mà�4rcóˆ—d|j dd¦«›dt|¦« dd¦«›d�S)NzTesting for compiled statement ú%ú%%ú partial params úE, received %(received_statement)r with params %(received_parameters)r)r$ÚreplaceÚrepr©rÚexpected_paramss rrYzCompiledSQL._failure_message¸sL€€ð ”×&Ò& s¨DÑ1Ô1Ð1Ð1Ý�_Ñ%Ô%×-Ò-¨c°4Ñ8Ô8Ð8Ð8ð  ð r©Nr/) rrrr&r9r?rQrrUrYrrrr.r.Ds‡€€€€€ððððð *ð*ð*ð Að Að Að 9ð 9ð 9ðD/ð/ð/ðb ð ð ð  ð  ð  ð  ð  rr.có"—eZdZdd„Zd„Zd„ZdS)ÚRegexSQLNr/có–—t |¦«tj|¦«|_||_||_||_dSr )rr&r6rLÚregexÚ orig_regexr%r1)rrpr%r1s rr&zRegexSQL.__init__Ås@€Ý×Ò˜dÑ#Ô#Ð#Ý”Z Ñ&Ô&ˆŒ ؈ŒØˆŒ ؈Œ ˆ ˆ rcóˆ—d|j dd¦«›dt|¦« dd¦«›d�S)Nz Testing for compiled statement ~rdrerfrg)rqrhrirjs rrYzRegexSQL._failure_messageÌsL€€ð ”×'Ò'¨¨TÑ2Ô2Ð2Ð2Ý�_Ñ%Ô%×-Ò-¨c°4Ñ8Ô8Ð8Ð8ð  ð rcóP—t|j |¦«¦«Sr )ÚboolrpÚmatch)rrr8s rr9zRegexSQL._compare_sql×s!€Ý�D”J×$Ò$Ð%7Ñ8Ô8Ñ9Ô9Ð9rrl)rrrr&rYr9rrrrnrnÄsF€€€€€ððððð  ð  ð  ð:ð:ð:ð:ð:rrncó0‡—eZdZd„Zd„Zˆfd„Zd„ZˆxZS)Ú DialectSQLcó—|jjSr )rJr1rs rr?zDialectSQL._compile_dialectÜs€ØÔ'Ô/Ð/rcó:—tjdd|¦«}||kSr3)r6r7)rÚ real_stmtÚ received_stmtr,s rÚ_compare_no_spacezDialectSQL._compare_no_spaceßs €ÝŒv�i  YÑ/Ô/ˆØ Ò$Ð$rcóè•—tt|¦« |¦«\}}|jD]}| |j|¦«rnŒ t d|z¦«‚||jjfS)NzICan't locate compiled statement %r in list of statements actually invoked) ÚsuperrwrQr)r|r$ÚAssertionErrorrJÚcompiled_parameters)rrr{Úreceived_paramsrzÚ __class__s €rrQzDialectSQL._received_statementãs›ø€Ý).Ý ˜ñ* ô* ç Ò Ð.Ñ /Ô /ñ 'ˆ �ð *Ô4ð ð ˆIØ×%Ò% iÔ&9¸=ÑIÔIð Ø�ð õ!ð.Ø0=ñ>ñôð ð Ð.Ô6ÔJÐJÐJrcó—tjdd|j¦«}|jjj}|dkrtjdd|¦«}n2d}|dkrd}n|dkrd }n|d krd}tjd||¦«}||kS) Nr4r5Úpyformatz :([\w_]+)z%(\1)sÚqmarkú?Úformatz%sÚnumeric)r6r7r$rJr1Ú paramstyle)rrr8r,r‰Úrepls rr9zDialectSQL._compare_sqlôs €ÝŒv�i  T¤^Ñ4Ô4ˆð&Ô-Ô5Ô@ˆ Ø ˜Ò #Ð #Ý”6˜,¨ °4Ñ8Ô8ˆDˆDðˆDؘWÒ$Ð$Ø��ؘxÒ'Ð'Ø��ؘyÒ(Ð(Ø�Ý”6˜,¨¨dÑ3Ô3ˆDà! TÒ)Ð)r)rrrr?r|rQr9Ú __classcell__©r‚s@rrwrwÛsjø€€€€€ð0ð0ð0ð%ð%ð%ðKðKðKðKðKð"*ð*ð*ð*ð*ð*ð*rrwcó —eZdZd„Zd„Zd„ZdS)ÚCountStatementscó"—||_d|_dS©Nr©ÚcountÚ_statement_count)rr’s rr&zCountStatements.__init__ s€ØˆŒ Ø !ˆÔÐÐrcó&—|xjdz c_dS)Né)r“rs rrz!CountStatements.process_statements€Ø ÐÔ Ñ"ÐÔÐÐrcóX—|j|jkrJd|j|jfz¦«‚dS)NFz,desired statement count %d does not match %dr‘rs rrz"CountStatements.no_more_statementssD€Ø Œ:˜Ô.Ò .Ð .ð ÐHØ” ØÔ%ðLññ ô �5ð /Ð .rN)rrrr&rrrrrrŽrŽ sA€€€€€ð"ð"ð"ð#ð#ð#ðððððrrŽcó—eZdZd„Zd„ZdS)ÚAllOfcó.—t|¦«|_dSr )ÚsetÚrules©rr›s rr&zAllOf.__init__s€Ý˜‘Z”ZˆŒ ˆ ˆ rcó:—t|j¦«D]a}d|_| |¦«|jr+|j |¦«|jsd|_dS|js d|_dSŒbt|j¦«dj|_dS©NTr)rVr›rrrÚdiscard©rrÚrules rrzAllOf.process_statementsµ€Ý˜œÑ$Ô$ð Að AˆDØ $ˆDÔ Ø × "Ò "Ð#3Ñ 4Ô 4Ð 4ØÔð Ø” ×"Ò" 4Ñ(Ô(Ð(Ø”zð,Ø'+�DÔ$Ø��ØÔ&ð à$(�Ô!Ø��ð õ !% T¤ZÑ 0Ô 0°Ô 3Ô @ˆDÔ Ð Ð rN)rrrr&rrrrr˜r˜s7€€€€€ð ð ð ðAðAðAðAðArr˜có*‡—eZdZd„Zd„Zˆfd„ZˆxZS)ÚEachOfcó.—t|¦«|_dSr )rVr›rœs rr&zEachOf.__init__/s€Ý˜%‘[”[ˆŒ ˆ ˆ rcó—|jrf|jd}| |¦«|jr|j d¦«n|jr |j|_|jrn|j°f|js d|_dSdS)NrT)r›rrr+rrr s rrzEachOf.process_statement2s¢€ØŒjð Ø”:˜a”=ˆDØ × "Ò "Ð#3Ñ 4Ô 4Ð 4ØÔð 6Ø” —’˜qÑ!Ô!Ð!Ð!ØÔ"ð 6Ø$(Ô$5�Ô!ØÔ%ð ØðŒjð ðŒzð $Ø#ˆDÔ Ð Ð ð $ð $rcóÜ•—|jr3|jdjs!|jd ¦«dS|jr)tt|¦« ¦«dSdSr�)r›rrr~r£)rr‚s €rrzEachOf.no_more_statements@sqø€Ø Œ:ð 5˜dœj¨œmÔ7ð 5Ø ŒJ�qŒM× ,Ò ,Ñ .Ô .Ð .Ð .Ð .Ø ŒZð 5Ý •&˜$Ñ Ô × 2Ò 2Ñ 4Ô 4Ð 4Ð 4Ð 4ð 5ð 5r)rrrr&rrr‹rŒs@rr£r£.sVø€€€€€ð!ð!ð!ð $ð $ð $ð5ð5ð5ð5ð5ð5ð5ð5ð5rr£có—eZdZd„ZdS)ÚOrcó®—|jD](}| |¦«|jr d|_dSŒ)t|j¦«dj|_dSrž)r›rrrVrr s rrzOr.process_statementHsk€Ø”Jð Að AˆDØ × "Ò "Ð#3Ñ 4Ô 4Ð 4ØÔð Ø#'�Ô Ø��ð õ!% T¤ZÑ 0Ô 0°Ô 3Ô @ˆDÔ Ð Ð rN)rrrrrrrr¨r¨Gs(€€€€€ðAðAðAðAðArr¨có—eZdZd„ZdS)ÚSQLExecuteObservedcóZ—||_||_t||¦«|_g|_dSr )rJÚ clauseelementrr*r))rrJr­Ú multiparamsr%s rr&zSQLExecuteObserved.__init__Ss-€ØˆŒ Ø*ˆÔÝ)¨+°vÑ>Ô>ˆŒØˆŒˆˆrN)rrrr&rrrr«r«Rs#€€€€€ðððððrr«có—eZdZdS)ÚSQLCursorExecuteObservedNr rrrr°r°Zs€€€€€ð  €Drr°)r$r*rJÚ executemanycó —eZdZd„Zd„Zd„ZdS)Ú SQLAssertercó—g|_dSr )Ú accumulatedrs rr&zSQLAsserter.__init__ds€ØˆÔÐÐrcó"—|j|_|`dSr )rµÚ_finalrs rÚ_closezSQLAsserter._closegs€ØÔ&ˆŒ Ø Ð Ð Ð rcó*—t|Ž}t|j¦«}|rJ| d¦«}| |¦«|jrn|jrJ|j¦«‚|°J|r Jd¦«‚|js| ¦«dSdS)NrFz Additional SQL statements remain)r£rVr·r+rrrr)rr›r¡Úobservedr$s rÚassert_zSQLAsserter.assert_ks½€Ý�uˆ~ˆå˜œ Ñ$Ô$ˆØð 0Ø Ÿ š  Q™œˆIØ × "Ò " 9Ñ -Ô -Ð -ØÔð 0ØØÔ"ð 0Ø/˜dÔ/Ñ/Ô/�uð ð 0ð ð &Ø <Ð<Ñ <Ô <�5ØÔ!ð &Ø × #Ò #Ñ %Ô %Ð %Ð %Ð %ð &ð &rN)rrrr&r¸r»rrrr³r³csA€€€€€ððððððð&ð&ð&ð&ð&rr³c#óć‡K—t¦«ŠgŠtj|d¦«ˆfd„¦«}tj|d¦«ˆˆfd„¦«} ‰V—tj|d|¦«tj|d|¦«‰ ¦«dS#tj|d|¦«tj|d|¦«‰ ¦«wxYw)NÚbefore_executecó•—|||f‰dd…<dSr r)Úconnr­r®r%Úorigs €rÚconnection_executez)assert_engine..connection_execute‚sø€ð  ¨fÐ4ˆˆQˆQˆQ‰ˆˆrÚafter_cursor_executecó2•—|sdS‰jr"‰jdj|ur‰jd}n>t|‰d‰d‰d¦«}‰j |¦«|j t ||||¦«¦«dS)Néÿÿÿÿrr•r)rµrJr«Úappendr)r°) r¿Úcursorr$r*rJr±ÚobsÚasserterrÀs €€rÚcursor_executez%assert_engine..cursor_executeˆs´ø€ðð Ø ˆFð Ô ð -àÔ$ RÔ(Ô0°GÐ;Ð;àÔ& rÔ*ˆCˆCå$ W¨d°1¬g°t¸A´wÀÀQÄÑHÔHˆCØ Ô × 'Ò '¨Ñ ,Ô ,Ð ,Ø Œ×ÒÝ $ؘ: w° ñ ô ñ ô ð ð ð r)r³rÚ listens_forÚremover¸)ÚenginerÁrÉrÈrÀs @@rÚ assert_enginerÍ|søøèè€å‰}Œ}€Hà €Då Ô�vÐ/Ñ0Ô0ð5ð5ð5ð5ñ1Ô0ð5õ  Ô�vÐ5Ñ6Ô6ð ð ð ð ð ñ7Ô6ð ð*؈ˆˆå Œ �VÐ3°^ÑDÔDÐDÝ Œ �VÐ-Ð/AÑBÔBÐBØ�ŠÑÔÐÐÐøõ Œ �VÐ3°^ÑDÔDÐDÝ Œ �VÐ-Ð/AÑBÔBÐBØ�ŠÑÔÐÐøøøs ÁBÂAC)Ú collectionsÚ contextlibr6r5rrrÌrÚengine.defaultrÚ engine.utilrÚschemar Úobjectr rr"r.rnrwrŽr˜r£r¨r«Ú namedtupler°r³ÚcontextmanagerrÍrrrúrÖsððÐÐÐØÐÐÐØ € € € àÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ+Ð+Ð+Ð+Ð+Ð+Ø)Ð)Ð)Ð)Ð)Ð)Ø!Ð!Ð!Ð!Ð!Ð!ð  ð  ð  ð  ð  �ñ  ô  ð  ð  ð ð ð ð �:ñ ô ð ð.ð.ð.ð.ð.� ñ.ô.ð.ð8} ð} ð} ð} ð} �,ñ} ô} ð} ð@:ð:ð:ð:ð:ˆ{ñ:ô:ð:ð.+*ð+*ð+*ð+*ð+*�ñ+*ô+*ð+*ð\ ð ð ð ð �jñ ô ð ð AðAðAðAðAˆJñAôAðAð*5ð5ð5ð5ð5ˆZñ5ô5ð5ð2AðAðAðAðAˆñAôAðAððððð˜ñôðð ð ð ð ð Ø€KÔØ"Ø=Ð=Ð=ñôñ ô ð ð&ð&ð&ð&ð&�&ñ&ô&ð&ð2 Ôð&ð&ñÔð&ð&ð&r