ó
    øÞ j—^  ã                   óö  • S SK r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJ	r	  SSKJ
r
  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK J!r!   " S  S!\RD                  5      r# " S" S#\RD                  5      r$ " S$ S%\RJ                  5      r& " S& S'\RD                  5      r' " S( S)\RJ                  5      r( " S* S+\RD                  5      r) " S, S-\RD                  5      r* " S. S/\RV                  \*5      r, " S0 S1\RD                  5      r- " S2 S3\RJ                  5      r.g)4é    Né   )Útestingé   )Úassert_raises)Úconfig)Úengines)Úeq_)Úfixtures)Úis_not_none)Úis_true)Úmock)Úne_)Úprovide_metadata)Úexpect_raises)Úexpect_raises_message)Úrequirements)Ú set_default_schema_on_connection)ÚColumn)ÚTableé   )Ú	bindparam)Údialects)Úevent)Úexc)ÚInteger)Úliteral_column)Úselect)ÚString)ÚCompiled)Úinspect_getfullargspecc                   ó   • \ rS rSrSrS rSrg)ÚPingTesté)   Tc                 ó   • [         R                  R                  5        n[        [         R                  R                  R                  UR                  R                  5      5        S S S 5        g ! , (       d  f       g = f©N)r   ÚdbÚconnectr   ÚdialectÚdo_pingÚ
connectionÚdbapi_connection)ÚselfÚconns     Ú_/var/www/html/gaurav/venv/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_dialect.pyÚtest_do_pingÚPingTest.test_do_ping,   sJ   € Ü�Z‰Z×ÑÔ! TÜÜ—
‘
×"Ñ"×*Ñ*¨4¯?©?×+KÑ+KÓLô÷ "×!Ö!ús   ŸAA/Á/
A=© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__backend__r/   Ú__static_attributes__r1   ó    r.   r"   r"   )   s   † Ø€Kõr8   r"   c                   óf   • \ rS rSrSrS r\R                  " \" \" 5       5      S9S 5       r	S r
Srg)	ÚArgSignatureTesté3   a«  test that all visit_XYZ() in :class:`_sql.Compiler` subclasses have
``**kw``, for #8988.

This test uses runtime code inspection.   Does not need to be a
``__backend__`` test as it only needs to run once provided all target
dialects have been imported.

For third party dialects, the suite would be run with that third
party as a "--dburi", which means its compiler classes will have been
imported by the time this test runs.

c               #   ó4  #   • [         R                   H4  n U R                  S5      (       a  M  [        R                  " SU -  5        M6     [
        /nU(       a>  UR                  S5      nUR                  UR                  5       5        Uv •  U(       a  M=  g g 7f)NÚ_zsqlalchemy.dialects.%sr   )	r   Ú__all__Ú
startswithÚ	importlibÚimport_moduler   ÚpopÚextendÚ__subclasses__)ÚdÚstackÚclss      r.   Ú_all_subclassesÚ ArgSignatureTest._all_subclassesA   sr   é € Ü×!Ô!ˆAØ—<‘< ×$Ó$Ü×'Ò'Ð(@À1Ñ(DÖEñ "ô �
ˆæØ—)‘)˜A“,ˆCØ�L‰L˜×+Ñ+Ó-Ô.ØŠI÷ Šeùs   ‚(B®A&BÂB)Úparamsc              #   ó(   #   • UR                   v •  g 7fr%   )Úparam)r,   Úrequests     r.   Úall_subclassesÚArgSignatureTest.all_subclassesM   s   é € à�m‰mÓùs   ‚c           	      óØ   • UnUR                    HX  nUR                  S5      (       d  M  [        X#5      n[        U5      n[	        UR
                  SUR                   SU S35        MZ     g )NÚvisit_zCompiler visit method Ú.z:() does not accommodate for **kw in its argument signature)Ú__dict__r?   Úgetattrr    r   Úvarkwr2   )r,   rN   rG   ÚkÚmethÚinsps         r.   Ú test_all_visit_methods_accept_kwÚ1ArgSignatureTest.test_all_visit_methods_accept_kwQ   sc   € Øˆà—”ˆAØ�|‰|˜H×%Ó%Ü˜s“�ä-¨dÓ3�ÜØ—J‘JØ,¨S¯\©\¨N¸!¸A¸3ð ?Ið Iöò r8   r1   N)r2   r3   r4   r5   Ú__doc__rH   r   ÚfixtureÚlistrN   rY   r7   r1   r8   r.   r:   r:   3   s6   † ñò
ð ‡_‚_™D¡Ó!2Ó3Ñ4ñó 5ðõr8   r:   c                   óZ   • \ rS rSrSrSrSr\S 5       r\	R                  S 5       rS rSrg	)
ÚExceptionTesté`   zªTest 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                 ób   • [        SU[        S[        SSS9[        S[        S5      5      5        g )NÚ	manual_pkÚidTF©Úprimary_keyÚautoincrementÚdataé2   ©r   r   r   r   ©rG   Úmetadatas     r.   Údefine_tablesÚExceptionTest.define_tablesl   s,   € äØØÜ�4œ¨dÀ%ÑHÜ�6œ6 "›:Ó&õ		
r8   c           	      ó¸  • [         R                  R                  5        nUR                  5       nUR	                  U R
                  R                  R                  5       SSS.5        [        [        R                  UR                  U R
                  R                  R                  5       SSS.5        UR                  5         S S S 5        g ! , (       d  f       g = f)Nr   Úd1©rd   rh   )r   r&   r'   ÚbeginÚexecuteÚtablesrc   Úinsertr   r   ÚIntegrityErrorÚrollback)r,   r-   Útranss      r.   Útest_integrity_errorÚ"ExceptionTest.test_integrity_erroru   s˜   € ä�Y‰Y×ÑÔ  DØ—J‘J“LˆEØ�L‰LØ—‘×%Ñ%×,Ñ,Ó.°qÀ$Ñ0Gôô Ü×"Ñ"Ø—‘Ø—‘×%Ñ%×,Ñ,Ó.Ø $Ñ'ô	ð �N‰NÔ÷ !× Ö ús   ŸB#CÃ
Cc                 ó�  • [         R                  R                  5        n UR                  [	        [        S5      5      5         e! [        R                   a9  n[        U5      n[        UR                  5      [        U5      ;   d   e S nAOS nAff = f[        U[        5      (       d   e S S S 5        g ! , (       d  f       g = f)Nu   mÃ©il)r   r&   r'   rs   r   r   r   Ú
DBAPIErrorÚstrÚorigÚ
isinstance)r,   r-   ÚerrÚerr_strs       r.   Útest_exception_with_non_asciiÚ+ExceptionTest.test_exception_with_non_ascii†   sŽ   € Ü�Y‰Y×ÑÔ  Dð1ð —‘œV¤N°7Ó$;Ó<Ô=Ø�uøÜ—>‘>ó 1Ü˜c›(�ä˜3Ÿ8™8“}¬¨C«Ó0Ð0Õ0ûð1úô
 ˜g¤s×+Ñ+Ð+Ñ+÷ !× Ö ús.   ŸB7¡%AÁBÁ/BÂ	B7ÂBÂB7Â7
Cr1   N)r2   r3   r4   r5   r[   Úrun_deletesr6   Úclassmethodrm   r   Ú$duplicate_key_raises_integrity_errorry   r‚   r7   r1   r8   r.   r_   r_   `   sD   † ñð €Kà€Kàñ
ó ð
ð ×6Ñ6ñó 7ðõ ,r8   r_   c                   ó  • \ rS rSrSrSrS rS rS rS r	\
R                  R                  S 5       r\
R                  R                  \
R                  R                  S	 5       5       r\
R                  R                   S
 5       rSrg)ÚIsolationLevelTesté˜   T©Úisolation_levelc                 óÞ   • [         R                  " [        5      nUS   nUS   n[        U5      R	                  SU/5      nU(       a  UR                  5       $ [        R                  " S5        g )NÚdefaultÚ	supportedÚ
AUTOCOMMITz(no non-default isolation level available)r   Úget_isolation_levelsr   ÚsetÚ
differencerB   Ú	skip_test)r,   Úlevelsr�   rŽ   Úss        r.   Ú _get_non_default_isolation_levelÚ3IsolationLevelTest._get_non_default_isolation_level�   s\   € Ü×2Ò2´6Ó:ˆà˜Ñ#ˆØ˜;Ñ'ˆ	ä�	‹N×%Ñ% |°WÐ&=Ó>ˆÞØ—5‘5“7ˆNä×ÒÐGÕHr8   c                 ó–   • [        [        R                  R                  R                  [
        R                  " [        5      S   5        g )Nr�   )r	   r   r&   r(   Údefault_isolation_levelr   r�   )r,   s    r.   Útest_default_isolation_levelÚ/IsolationLevelTest.test_default_isolation_level©   s0   € ÜÜ�I‰I×Ñ×5Ñ5Ü×-Ò-¬fÓ5°iÑ@õ	
r8   c                 ó®  • U R                  5       n[        R                  R                  5        nUR	                  5       n[        X15        UR                  US9  [        UR	                  5       U5        UR                  R                  UR                  R                  5        [        UR	                  5       U5        S S S 5        g ! , (       d  f       g = f)NrŠ   )r–   r   r&   r'   Úget_isolation_levelr   Úexecution_optionsr	   r(   Úreset_isolation_levelr*   r+   )r,   Únon_defaultr-   Úexistings       r.   Ú test_non_default_isolation_levelÚ3IsolationLevelTest.test_non_default_isolation_level¯   sœ   € Ø×;Ñ;Ó=ˆä�Y‰Y×ÑÔ  DØ×/Ñ/Ó1ˆHä�Ô&à×"Ñ"°;Ð"Ñ?ä�×(Ñ(Ó*¨KÔ8à�L‰L×.Ñ.Ø—‘×0Ñ0ôô �×(Ñ(Ó*¨HÔ5÷ !× Ö ús   ¯BCÃ
Cc                 óh  • [         R                  " [        5      nUS   n[        U5      R	                  S/5       HÑ  n[        R
                  R                  5        nUR                  US9  [        UR                  5       U5        UR                  5       nUR                  5         [        UR                  5       U5        S S S 5        [        R
                  R                  5        n[        UR                  5       US   5        S S S 5        MÓ     g ! , (       d  f       NW= f! , (       d  f       Mö  = f)NrŽ   r�   rŠ   r�   )r   r�   r   r‘   r’   r&   r'   rž   r	   r�   rr   rw   )r,   r”   Ú
all_levelsÚlevelr-   rx   s         r.   Útest_all_levelsÚ"IsolationLevelTest.test_all_levelsÁ   sã   € Ü×2Ò2´6Ó:ˆà˜KÑ(ˆ
ä˜“_×/Ñ/°°Ö?ˆEÜ—‘×"Ñ"Ô$¨Ø×&Ñ&°uÐ&Ñ=ä�D×,Ñ,Ó.°Ô6àŸ
™
›�Ø—‘Ô ä�D×,Ñ,Ó.°Ô6÷ %ô —‘×"Ñ"Ô$¨ÜØ×,Ñ,Ó.Ø˜9Ñ%ô÷ %Ñ$ò @ß$Õ$ú÷ %Ö$ús   ÁA$DÃ&D"Ä
D	Ä"
D1	c                 ó"  • Un[        [        R                  SS< SUR                  R                  < SSR                  [        R                  " [        5      S   5      < 35         UR                  SS9  SSS5        g! , (       d  f       g= f)	z4test for the new get_isolation_level_values() methodúInvalid value 'ÚFOOú3' for isolation_level. Valid isolation levels for 'ú' are ú, rŽ   rŠ   N)
r   r   ÚArgumentErrorr(   ÚnameÚjoinr   r�   r   rž   )r,   Úconnection_no_transr*   s      r.   Ú#test_invalid_level_execution_optionÚ6IsolationLevelTest.test_invalid_level_execution_option×   su   € ð )ˆ
Ü"Ü×Òó Ø×"Ñ"×'Ô'Ø—	‘	Ü ×5Ò5´fÓ=¸kÑJõðõ
ð ×(Ñ(¸Ð(Ñ?÷
÷ 
ö 
ús   Á'B Â 
Bc                 ó:  • U" [        SS9S9n[        [        R                  SS< SUR                  R
                  < SSR                  [        R                  " [        5      S   5      < 35         UR                  5         S	S	S	5        g	! , (       d  f       g	= f)
zutest for the new get_isolation_level_values() method
and support for the dialect-level 'isolation_level' parameter.

r«   rŠ   ©Úoptionsrª   r¬   r­   r®   rŽ   N)Údictr   r   r¯   r(   r°   r±   r   r�   r   r'   )r,   Útesting_engineÚengs      r.   Útest_invalid_level_engine_paramÚ2IsolationLevelTest.test_invalid_level_engine_paramê   su   € ñ ¤T¸%Ñ%@ÑAˆÜ"Ü×Òó Ø—‘× Ô Ø—	‘	Ü ×5Ò5´fÓ=¸kÑJõðõ
ð �K‰KŒM÷
÷ 
ö 
ús   Á2BÂ
Bc                 ó^  • [         R                  " [        5      nUS   n[        [	        US   5      R                  US/5      5      S   nU" SU0S9nUR                  5        n[        UR                  5       U5        S S S 5        UR                  5        nUR                  US9  [        UR                  5       U5        S S S 5        UR                  5        n[        UR                  5       U5        S S S 5        g ! , (       d  f       N„= f! , (       d  f       NS= f! , (       d  f       g = f)Nr�   rŽ   r�   r   r‹   r¶   rŠ   )
r   r�   r   Úsortedr‘   r’   r'   r	   r�   rž   )r,   r¹   r”   r�   rŽ   Úer-   s          r.   Ú%test_dialect_user_setting_is_restoredÚ8IsolationLevelTest.test_dialect_user_setting_is_restored  s÷   € ä×2Ò2´6Ó:ˆØ˜Ñ#ˆäÜ�F˜;Ñ'Ó(×3Ñ3°W¸lÐ4KÓLóð ñ	ˆ	ñ Ð$5°yÐ#AÑBˆà�Y‰YŒ[˜DÜ�×(Ñ(Ó*¨IÔ6÷ ð �Y‰YŒ[˜DØ×"Ñ"°7Ð"Ñ;Ü�×(Ñ(Ó*¨GÔ4÷ ð �Y‰YŒ[˜DÜ�×(Ñ(Ó*¨IÔ6÷ ˆ[÷ �[ú÷ �[ú÷ �[ús$   Á#C<Â*DÃDÃ<
D
Ä
DÄ
D,r1   N)r2   r3   r4   r5   r6   Ú__requires__r–   rš   r¢   r§   r   ÚrequiresÚget_isolation_level_valuesr³   Ú#dialect_level_isolation_level_paramr»   Ú independent_readonly_connectionsrÀ   r7   r1   r8   r.   rˆ   rˆ   ˜   s—   † Ø€Kà'€Lò
Iò
ò6ò$ð, ×Ñ×0Ñ0ñ@ó 1ð@ð$ ×Ñ×0Ñ0Ø×Ñ×9Ñ9ñó :ó 1ðð* ×Ñ×6Ñ6ñ7ó 7ó7r8   rˆ   c                   óL  • \ rS rSrSrSrSr\S 5       rSS jr	S r
S	 rS
 r\R                  R                  \R                   " S/ SQ5      \R                   " SSS/5      S 5       5       5       r\R                  R$                  \R                   " SSS/5      S 5       5       rSrg)ÚAutocommitIsolationTesti  ra   )Ú
autocommitTc                 ó`   • [        SU[        S[        SSS9[        S[        S5      5      SS9  g )	NÚ
some_tablerd   TFre   rh   ri   )Útest_needs_acidrj   rk   s     r.   rm   Ú%AutocommitIsolationTest.define_tables  s/   € äØØÜ�4œ¨dÀ%ÑHÜ�6œ6 "›:Ó&Ø ó	
r8   Fc                 ó¬  • U(       a4  U R                   R                  R                  USS9  UR                  5         UR	                  5       nUR                  U R                   R                  R                  5       SSS.5        UR                  5         [        UR                  [        U R                   R                  R                  R                  5      5      U(       a  SOS 5        UR                  5         UR	                  5          UR                  U R                   R                  R                  5       5        S S S 5        g ! , (       d  f       g = f)NT)Ú
checkfirstr   z	some datarq   )rt   rË   ÚcreateÚcommitrr   rs   ru   rw   r	   Úscalarr   Úcrd   Údelete)r,   r-   rÉ   Úensure_tablerx   s        r.   Ú_test_conn_autocommitsÚ.AutocommitIsolationTest._test_conn_autocommits)  sÞ   € ÞØ�K‰K×"Ñ"×)Ñ)¨$¸4Ð)Ñ@Ø�K‰KŒMà—
‘
“ˆØ�‰Ø�K‰K×"Ñ"×)Ñ)Ó+°A¸{Ñ-Kô	
ð 	�‰ÔäØ�K‰Kœ˜tŸ{™{×5Ñ5×7Ñ7×:Ñ:Ó;Ó<Þ‰A ô	
ð 	�‰Œà�Z‰Z�\Ø�L‰L˜Ÿ™×/Ñ/×6Ñ6Ó8Ô9÷ �\Ž\ús   Ä4EÅ
Ec                 óÌ   • UnUR                  SS9nU R                  US5        UR                  R                  UR                  R
                  5        U R                  US5        g )Nr�   rŠ   TF)rž   rÖ   r(   rŸ   r*   r+   )r,   r²   r-   Úc2s       r.   Útest_autocommit_onÚ*AutocommitIsolationTest.test_autocommit_on=  sV   € Ø"ˆØ×#Ñ#°LÐ#ÐAˆØ×#Ñ# B¨Ô-à
�
‰
×(Ñ(¨¯©×)GÑ)GÔHà×#Ñ# D¨%Õ0r8   c                 ó,   • UnU R                  US5        g )NF)rÖ   ©r,   r²   r-   s      r.   Útest_autocommit_offÚ+AutocommitIsolationTest.test_autocommit_offF  s   € Ø"ˆØ×#Ñ# D¨%Õ0r8   c                 óÂ   • UnUR                  SS9nU R                  US5        UR                  [        R                  " [        5      S   S9  U R                  US5        g )Nr�   rŠ   Tr�   F)rž   rÖ   r   r�   r   rÝ   s      r.   Ú.test_turn_autocommit_off_via_default_iso_levelÚFAutocommitIsolationTest.test_turn_autocommit_off_via_default_iso_levelJ  sg   € ð #ˆØ×%Ñ%°lÐ%ÐCˆØ×#Ñ# D¨$Ô/à×ÑÜ(×=Ò=¼fÓEØñð 	ñ 	
ð
 	×#Ñ# D¨%Õ0r8   Úautocommit_setting)ÚfalseÚengineÚoptionÚblock_rollbackc                 ó¦  • 0 n[        U5      (       a  SUS'   UR                  (       a  SUS'   U" US9nUR                  5       nUR                  (       a  UR	                  SS9  U R                  UUR                  =(       d    UR                  SS9  [        R                  R                  UR                  SUR                  R                  S	9 nUR                  5         S S S 5        UR                  (       d  U(       d+  [        WR                  [        R                  " 5       /5        g [        WR                  / 5        g ! , (       d  f       Nh= f)
NTÚskip_autocommit_rollbackr�   r‹   r¶   rŠ   )rÕ   rw   )Úwraps)Úboolrå   r'   ræ   rž   rÖ   r   ÚpatchÚobjectr*   rw   Úcloserä   r	   Ú
mock_callsÚcall)r,   r¹   rã   rç   Úkwrå   r-   Úcheck_rollbacks           r.   Útest_autocommit_blockÚ-AutocommitIsolationTest.test_autocommit_blockX  s  € ð ˆÜ�×ÑØ-1ˆBÐ)Ñ*Ø×$×$Ø$0ˆBÐ Ñ!á¨Ñ+ˆà�~‰~ÓˆØ×$×$Ø×"Ñ"°<Ð"Ñ@Ø×#Ñ#ØØ×%Ñ%×BÐ);×)BÑ)BØð 	$ñ 	
ô
 �Z‰Z×ÑØ�O‰O˜Z¨t¯©×/GÑ/Gð ñ 
àØ�J‰JŒL÷
ð ×#×#®>Ü�×)Ñ)¬D¯IªI«K¨=Õ9ä�×)Ñ)¨2Õ.÷
õ 
ús   ÃEÅ
EÚuse_dialect_settingc                 ó  • U(       a	  U" SS0S9nOU" 5       R                  SS9n[        R                  " [        5      nUS   nUR	                  5        nU R                  US5        SSS5        UR	                  5        nUR                  US9  U R                  US5        SSS5        UR	                  5        nU R                  US5        SSS5        g! , (       d  f       Nt= f! , (       d  f       NK= f! , (       d  f       g= f)	ztest #10147r‹   r�   r¶   rŠ   r�   TNF)rž   r   r�   r   r'   rÖ   )r,   r¹   rõ   r¿   r”   r�   r-   s          r.   Ú#test_dialect_autocommit_is_restoredÚ;AutocommitIsolationTest.test_dialect_autocommit_is_restoredw  sÝ   € ö ÙÐ(9¸<Ð'HÑI‰AáÓ ×2Ñ2Ø ,ð 3ð ˆAô ×2Ò2´6Ó:ˆà˜Ñ#ˆà�Y‰YŒ[˜DØ×'Ñ'¨¨dÔ3÷ ð �Y‰YŒ[˜DØ×"Ñ"°7Ð"Ñ;Ø×'Ñ'¨¨eÔ4÷ ð �Y‰YŒ[˜DØ×'Ñ'¨¨dÔ3÷ ˆ[÷ �[ú÷ �[ú÷ �[ús$   ÁCÁ?"C&Â9C7Ã
C#Ã&
C4Ã7
Dr1   N)F)r2   r3   r4   r5   r„   rÂ   r6   r…   rm   rÖ   rÚ   rÞ   rá   r   rÃ   ré   Ú	variationró   rÆ   r÷   r7   r1   r8   r.   rÈ   rÈ     sÃ   † Ø€Kà"€Là€Kàñ
ó ð
ô:ò(1ò1ò1ð ×Ñ×.Ñ.Ø×ÒÐ+Ò-JÓKØ×ÒÐ'¨$°¨Ó7ñ/ó 8ó Ló /ð/ð8 ×Ñ×6Ñ6Ø×ÒÐ,¨t°U¨mÓ<ñ4ó =ó 7ó4r8   rÈ   c                   ó$   • \ rS rSr\S 5       rSrg)ÚEscapingTesti”  c                 óB  • U R                   n[        SU[        S[        S5      5      5      nUR	                  [
        R                  5        [
        R                  R                  5        nUR                  UR                  5       [        SS95        UR                  UR                  5       [        SS95        [        UR                  [        UR                  R                  5      R!                  UR                  R                  [#        S5      :H  5      5      S5        [        UR                  [        UR                  R                  5      R!                  UR                  R                  [#        S5      :H  5      5      S5        S	S	S	5        g	! , (       d  f       g	= f)
zltest that the DBAPI accommodates for escaped / nonescaped
percent signs in a way that matches the compiler

Útrh   ri   zsome % value)rh   zsome %% other valuez'some % value'z'some %% other value'N)rl   r   r   r   rÐ   r   r&   rr   rs   ru   r¸   r	   rÒ   r   rÓ   rh   Úwherer   )r,   Úmrý   r-   s       r.   Útest_percent_sign_round_tripÚ)EscapingTest.test_percent_sign_round_trip•  s  € ð �M‰MˆÜ�#�qœ& ¬°«Ó4Ó5ˆØ	�‰”—‘ÔÜ�Y‰Y�_‰_Ô $Ø�L‰L˜Ÿ™›¤T¨~Ñ%>Ô?Ø�L‰L˜Ÿ™›¤TÐ/DÑ%EÔFäØ—‘Ü˜1Ÿ3™3Ÿ8™8Ó$×*Ñ*ØŸ™Ÿ™¤NÐ3CÓ$DÑDóóð
 ôô Ø—‘Ü˜1Ÿ3™3Ÿ8™8Ó$×*Ñ*ØŸ™Ÿ™¤NÐ3JÓ$KÑKóóð
 &ô÷ ×Öús   Á*DFÆ
Fr1   N)r2   r3   r4   r5   r   r   r7   r1   r8   r.   rû   rû   ”  s   † Øñó ór8   rû   c                   ó4   • \ rS rSrSrSrS rS rS rS r	Sr
g	)
Ú WeCanSetDefaultSchemaWEventsTestiµ  T)Údefault_schema_name_switchc                 ó  • [         R                  R                  R                  n[        R
                  " 5       nUR                  5           S S S 5        [        UR                  R                  U5        g ! , (       d  f       N/= fr%   )r   r&   r(   Údefault_schema_namer   r¹   r'   r	   )r,   r  rº   s      r.   Útest_control_caseÚ2WeCanSetDefaultSchemaWEventsTest.test_control_caseº  sV   € Ü$Ÿi™i×/Ñ/×CÑCÐä×$Ò$Ó&ˆØ�[‰[�]Ø÷ ô 	ˆC�K‰K×+Ñ+Ð-@ÕA÷ �]ús   Á
A5Á5
Bc                 ó®  • [         R                  R                  R                  n[        R
                  " 5       n[        R                  " US5      S 5       nUR                  5        nUR                  R                  U5      n[        U[         R                  5        S S S 5        [        UR                  R                  U5        g ! , (       d  f       N/= f)Nr'   c                 óB   • [        [        U [        R                  5        g r%   ©r   r   Útest_schema©r+   Úconnection_records     r.   Ú
on_connectÚMWeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insert.<locals>.on_connectÈ  ó   € ä,ÜÐ(¬&×*<Ñ*<õr8   )r   r&   r(   r  r   r¹   r   Úlistens_forr'   Ú_get_default_schema_namer	   r  )r,   r  rº   r  r-   Úwhat_it_should_bes         r.   Útest_wont_work_wo_insertÚ9WeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insertÃ  sœ   € Ü$Ÿi™i×/Ñ/×CÑCÐä×$Ò$Ó&ˆä	×	Ò	˜3 	Ó	*ñ	ó 
+ð	ð
 �[‰[Œ]˜dØ #§¡× DÑ DÀTÓ JÐÜÐ!¤6×#5Ñ#5Ô6÷ ô 	ˆC�K‰K×+Ñ+Ð-@ÕA÷	 �]ús   Á'6CÃ
Cc                 ó€  • [         R                  " 5       n[        R                  " USSS9S 5       nUR	                  5        nUR
                  R                  U5      n[        U[        R                  5        S S S 5        [        UR
                  R                  [        R                  5        g ! , (       d  f       N== f)Nr'   T©ru   c                 óB   • [        [        U [        R                  5        g r%   r  r  s     r.   r  ÚRWeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connect.<locals>.on_connect×  r  r8   )r   r¹   r   r  r'   r(   r  r	   r   r  r  )r,   rº   r  r-   r  s        r.   Útest_schema_change_on_connectÚ>WeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connectÔ  s�   € Ü×$Ò$Ó&ˆä	×	Ò	˜3 	°$Ñ	7ñ	ó 
8ð	ð
 �[‰[Œ]˜dØ #§¡× DÑ DÀTÓ JÐÜÐ!¤6×#5Ñ#5Ô6÷ ô 	ˆC�K‰K×+Ñ+¬V×-?Ñ-?Õ@÷	 �]ús   Á6B/Â/
B=c                 ó*  • [         R                  " 5       n[        R                  " USSS9S 5       nUR	                  5        nUR                  5       nUR                  R                  U5      n[        U[        R                  5        UR                  5         UR                  R                  U5      n[        U[        R                  5        S S S 5        [        UR                  R                  [        R                  5        g ! , (       d  f       N== f)Nr'   Tr  c                 óB   • [        [        U [        R                  5        g r%   r  )r+   Úargs     r.   r  Ú\WeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactions.<locals>.on_connectæ  r  r8   )r   r¹   r   r  r'   rr   r(   r  r	   r   r  rw   r  )r,   rº   r  r-   rx   r  s         r.   Ú'test_schema_change_works_w_transactionsÚHWeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactionsã  sÈ   € Ü×$Ò$Ó&ˆä	×	Ò	˜3 	°$Ñ	7ñ	ó 
8ð	ð
 �[‰[Œ]˜dØ—J‘J“LˆEØ #§¡× DÑ DÀTÓ JÐÜÐ!¤6×#5Ñ#5Ô6Ø�N‰NÔà #§¡× DÑ DÀTÓ JÐÜÐ!¤6×#5Ñ#5Ô6÷ ô 	ˆC�K‰K×+Ñ+¬V×-?Ñ-?Õ@÷ �]ús   ÁBDÄ
Dr1   N)r2   r3   r4   r5   r6   rÂ   r  r  r  r!  r7   r1   r8   r.   r  r  µ  s$   † Ø€Kà2€LòBòBò"AõAr8   r  c                   ó   • \ rS rSrSrg)Ú&FutureWeCanSetDefaultSchemaWEventsTestiø  r1   N)r2   r3   r4   r5   r7   r1   r8   r.   r$  r$  ø  s   † ò 	r8   r$  c                   óè   • \ rS rSrSr\R                  " SSSSSSS	S
SSSSSSSSSSSSSSS9r\\R                  R                  S 5       5       r\R                  S 5       r\S 5       r\S 5       rSrg) ÚDifficultParametersTestiþ  T)Úboring)zper cent)z
per % cent)z%percent)zpar(ens))zpercent%(ens)yah)zcol:ons)Ú_starts_with_underscore)zdot.s)zmore :: %colons%)Ú_name)Ú___name)z[BracketsAndCase])Ú	42numbers)zpercent%signs)z
has spaces)z	/slashes/)zmore/slashes)zq?marks)Ú1param)z1col:onÚ	paramname)Úargnamesc                 óH  • Un[        SU[        S[        SS9[        U[        S5      SS95      nUR	                  U5        UR                  UR                  5       R                  SSUS	05      5        [        UR                  U   5      R                  UR                  U   S	:H  5      n[        UR                  U5      S	5        [        UR                  U   5      R                  UR                  U   [        U5      :H  5      nUR                  XdS	05      R                  5       n[        UR                  U   S	5        [        UR                  U   5      R                  UR                  U   R!                  S	S
/5      5      nUR                  U5      R                  5         g )Nrý   rd   T)rf   ri   F)Únullabler   z	some namezsome other_name)r   r   r   r   rÐ   rs   ru   Úvaluesr   rÓ   rþ   r	   rÒ   r   ÚfirstÚ_mappingÚin_)r,   r-  r*   rl   r°   rý   ÚstmtÚrows           r.   Ú!test_round_trip_same_named_columnÚ9DifficultParametersTest.test_round_trip_same_named_column  sc  € ð
 ˆäØØÜ�4œ¨dÑ3Ü�4œ ›¨eÑ4ó	
ˆð 	
�‰�Ôð 	×Ñ˜1Ÿ8™8›:×,Ñ,¨d°A°t¸[Ð-IÓJÔKô �a—c‘c˜$‘iÓ ×&Ñ& q§s¡s¨4¡y°KÑ'?Ó@ˆäˆJ×Ñ˜dÓ# [Ô1ô �a—c‘c˜$‘iÓ ×&Ñ& q§s¡s¨4¡y´I¸d³OÑ'CÓDˆà× Ñ  ¨kÐ':Ó;×AÑAÓCˆô 	ˆC�L‰L˜Ñ Ô,ô �a—c‘c˜$‘iÓ ×&Ñ&Ø�C‰C�‰I�M‰M˜;Ð(9Ð:Ó;ó
ˆð 	×Ñ˜4Ó ×&Ñ&Õ(r8   c              #   ó$  #   • [        SU[        S[        5      [        S[        S5      5      [        S[        S5      5      5      nUR	                  U5        UR                  UR                  5       SSSS	.S
SSS	.SSSS	.SSSS	./5        Uv •  g 7f)NÚmytableÚmyidr°   ri   Údescr   ÚaÚa_desc)r;  r°   r<  r   ÚbÚb_descr   rÓ   Úc_descé   rE   Úd_desc)r   r   r   r   rÐ   rs   ru   )r,   rl   r*   r:  s       r.   Úmultirow_fixtureÚ(DifficultParametersTest.multirow_fixtureB  s•   é € äØØÜ�6œ7Ó#Ü�6œ6 "›:Ó&Ü�6œ6 "›:Ó&ó
ˆð 	�‰�zÔ"à×ÑØ�N‰NÓà C°Ñ:Ø C°Ñ:Ø C°Ñ:Ø C°Ñ:ð	ô	
ð ‹ùs   ‚BBc                 óà   • Un[        UR                  R                  5      R                  UR                  R                  [        USS9:H  5      nUR                  XQS05      n[        US5        g )NÚx©ÚvaluerÓ   r   )r   rÓ   r;  rþ   r°   r   rÒ   r	   ©r,   r-  r*   rD  Útbl1r5  Úress          r.   Ú test_standalone_bindparam_escapeÚ8DifficultParametersTest.test_standalone_bindparam_escapeY  s]   € ð  ˆÜ�d—f‘f—k‘kÓ"×(Ñ(Ø�F‰F�K‰Kœ9 Y°cÑ:Ñ:ó
ˆð ×Ñ °#Ð&6Ó7ˆÜˆC��r8   c           	      óf  • Un[        UR                  R                  5      R                  UR                  R                  R                  [        USS/S95      5      R                  UR                  R                  5      nUR                  XQSS/05      R                  5       n[        USS/5        g )Nr=  r?  rH  rE   r   rB  )r   rÓ   r;  rþ   r°   r4  r   Úorder_byÚscalarsÚallr	   rJ  s          r.   Ú*test_standalone_bindparam_escape_expandingÚBDifficultParametersTest.test_standalone_bindparam_escape_expandingd  sˆ   € ð  ˆä�4—6‘6—;‘;Óß‰U�4—6‘6—;‘;—?‘?¤9¨Y¸sÀC¸jÑ#IÓJÓKß‰X�d—f‘f—k‘kÓ"ð 	ð × Ñ  °C¸°:Ð'>Ó?×CÑCÓEˆÜˆC�!�Q�Õr8   r1   N)r2   r3   r4   r5   r6   r   ÚcombinationsÚtough_parametersr   r   Úunusual_column_name_charactersr7  r\   rD  rM  rS  r7   r1   r8   r.   r&  r&  þ  sÃ   † Ø€Kà×+Ò+ØØØØØØØØ$ØØØØØØØØØØØØØØñ-Ðð2 Ø×Ñ×7Ñ7ñ$)ó 8ó ð$)ðL ‡_�_ñó ðð, ñó ðð ñó ór8   r&  c                   ót   • \ rS rSrSrSr\S 5       r\R                  S 5       r
S rS rS rS	 rS
 rS rSrg)ÚReturningGuardsTestis  z=test that the various 'returning' flags are set appropriatelyTc                 ób   • [        SU[        S[        SSS9[        S[        S5      5      5        g )Nrý   rd   TFre   rh   ri   rj   rk   s     r.   rm   Ú!ReturningGuardsTest.define_tablesx  s,   € äØØÜ�4œ¨dÀ%ÑHÜ�6œ6 "›:Ó&õ		
r8   c                 óD   ^^• U R                   R                  mUU4S jnU$ )Nc           
      óò  >• U R                  TR                  R                  5      n U(       a¹  U(       dt  [        [        R
                  STR                  R                   STR                  R                   S35         TR                  U USSS0USSS0US	SS
0/5        S S S 5        g TR                  U USSS0USSS0US	SS
0/5      n[        UR                  5       / SQ5        g U(       d8  [        [        R                  5         TR                  XSSS05        S S S 5        g TR                  XSSS05      n[        UR                  5       S/5        g ! , (       d  f       g = f! , (       d  f       g = f)NzDialect z\+zW with current server capabilities does not support .*RETURNING when executemany is usedr   rh   rp   r   Úd2r   Úd3)©r   )r   )r   r`  )Ú	returningrÓ   rd   r   r   ÚStatementErrorr(   r°   Údriverrs   r	   rR  r   r|   )r5  ÚexecutemanyÚid_param_nameÚexpect_successÚresultr*   rý   s        €€r.   ÚgoÚ(ReturningGuardsTest.run_stmt.<locals>.go…  sv  ø€ Ø—>‘> !§#¡#§&¡&Ó)ˆDæÞ%ô /Ü×*Ñ*Ø# J×$6Ñ$6×$;Ñ$;Ð#<¸BØ%×-Ñ-×4Ñ4Ð5ð 6?ð@õð #×*Ñ*Ø à!.°°6¸4Ð @Ø!.°°6¸4Ð @Ø!.°°6¸4Ð @ðô÷ð ð  (×/Ñ/Øà*¨A¨v°tÐ<Ø*¨A¨v°tÐ<Ø*¨A¨v°tÐ<ðó�Fô ˜Ÿ
™
›Ò&8Õ9æ%ô '¤s§~¡~Õ6Ø"×*Ñ*Ø °!°V¸TÐ"Bô÷ 7Ð6ð
 (×/Ñ/Ø¨a°¸Ð>ó�Fô ˜Ÿ
™
› t fÕ-÷Kõ ú÷: 7Õ6ús   Á>"EÄE(Å
E%Å(
E6)rt   rý   )r,   r*   rh  rý   s    ` @r.   Úrun_stmtÚReturningGuardsTest.run_stmt�  s   ù€ à�K‰K�M‰Mˆö-	.ð^ ˆ	r8   c                 óŽ   • U R                   R                  nUR                  5       nU" USSUR                  R                  5        g )NFrd   )rt   rý   ru   r(   Úinsert_returning©r,   r*   rj  rý   r5  s        r.   Útest_insert_singleÚ&ReturningGuardsTest.test_insert_single¶  s4   € Ø�K‰K�M‰Mˆà�x‰x‹zˆá��u˜d J×$6Ñ$6×$GÑ$GÕHr8   c                 óŽ   • U R                   R                  nUR                  5       nU" USSUR                  R                  5        g )NTrd   )rt   rý   ru   r(   Úinsert_executemany_returningrn  s        r.   Útest_insert_manyÚ$ReturningGuardsTest.test_insert_many½  s7   € Ø�K‰K�M‰Mˆà�x‰x‹zˆáØ�$˜˜j×0Ñ0×MÑMõ	
r8   c                 óD  • U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g ©
Nr   rp   rq   r   r^  r   r_  Úb_idF)rt   rý   rs   ru   Úupdaterþ   rÓ   rd   r   r(   Úupdate_returningrn  s        r.   Útest_update_singleÚ&ReturningGuardsTest.test_update_singleÆ  ó‡   € Ø�K‰K�M‰Mˆà×ÑØ�H‰H‹Jà $Ñ'Ø $Ñ'Ø $Ñ'ðô	
ð �x‰x‹z×Ñ §¡§¡¬)°FÓ*;Ñ ;Ó<ˆá��u˜f j×&8Ñ&8×&IÑ&IÕJr8   c                 óD  • U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g ©
Nr   rp   rq   r   r^  r   r_  rw  T)rt   rý   rs   ru   rx  rþ   rÓ   rd   r   r(   Úupdate_executemany_returningrn  s        r.   Útest_update_manyÚ$ReturningGuardsTest.test_update_manyÖ  óŠ   € Ø�K‰K�M‰Mˆà×ÑØ�H‰H‹Jà $Ñ'Ø $Ñ'Ø $Ñ'ðô	
ð �x‰x‹z×Ñ §¡§¡¬)°FÓ*;Ñ ;Ó<ˆáØ�$˜ 
× 2Ñ 2× OÑ Oõ	
r8   c                 óD  • U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g rv  )rt   rý   rs   ru   rÔ   rþ   rÓ   rd   r   r(   Údelete_returningrn  s        r.   Útest_delete_singleÚ&ReturningGuardsTest.test_delete_singleè  r|  r8   c                 óD  • U R                   R                  nUR                  UR                  5       SSS.SSS.SSS./5        UR	                  5       R                  UR                  R                  [        S5      :H  5      nU" US	SUR                  R                  5        g r~  )rt   rý   rs   ru   rÔ   rþ   rÓ   rd   r   r(   Údelete_executemany_returningrn  s        r.   Útest_delete_manyÚ$ReturningGuardsTest.test_delete_manyø  r‚  r8   r1   N)r2   r3   r4   r5   r[   r6   r…   rm   r   r\   rj  ro  rs  rz  r€  r…  r‰  r7   r1   r8   r.   rY  rY  s  sV   † ÙGà€Kàñ
ó ð
ð ‡_�_ñ2ó ð2òhIò
òKò 
ò$Kõ 
r8   rY  )/r@   Ú r   r   r   r   r	   r
   r   r   r   r   r   Ú
assertionsr   r   r   Ú	provisionr   Úschemar   r   r   r   r   r   r   r   r   r   Úsql.compilerr   Úutilr    ÚTestBaser"   r:   Ú
TablesTestr_   rˆ   rÈ   rû   r  ÚFutureEngineMixinr$  r&  rY  r1   r8   r.   Ú<module>r”     s&  ðó å Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý &Ý .Ý !Ý 8Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý $Ý *ôˆx× Ñ ô ô*�x×(Ñ(ô *ôZ5,�H×'Ñ'ô 5,ôp}7˜×*Ñ*ô }7ô@y4˜h×1Ñ1ô y4ôx�8×$Ñ$ô ôB@A x×'8Ñ'8ô @AôF	Ø×ÑÐ @ô	ôr˜h×/Ñ/ô rôjU
˜(×-Ñ-õ U
r8   