§
    eŠtj—^  ã                   óÐ  — d dl Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlm	Z	 ddlm
Z
 ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z!  G d „ d!ej"        ¦  «        Z# G d"„ d#ej"        ¦  «        Z$ G d$„ d%ej%        ¦  «        Z& G d&„ d'ej"        ¦  «        Z' G d(„ d)ej%        ¦  «        Z( G d*„ d+ej"        ¦  «        Z) G d,„ d-ej"        ¦  «        Z* G d.„ d/ej+        e*¦  «        Z, G d0„ d1ej"        ¦  «        Z- G d2„ d3ej%        ¦  «        Z.dS )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                   ó   — e Zd ZdZd„ ZdS )ÚPingTestTc                 óê   — t           j                             ¦   «         5 }t          t           j        j                             |j        j        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)r   ÚdbÚconnectr   ÚdialectÚdo_pingÚ
connectionÚdbapi_connection)ÚselfÚconns     úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/testing/suite/test_dialect.pyÚtest_do_pingzPingTest.test_do_ping,   s¤   € ÝŒZ×ÒÑ!Ô!ð 	 TÝÝ”
Ô"×*Ò*¨4¬?Ô+KÑLÔLñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ÿ<A(Á(A,Á/A,N)Ú__name__Ú
__module__Ú__qualname__Ú__backend__r.   © ó    r-   r"   r"   )   s(   € € € € € Ø€Kðð ð ð ð r4   r"   c                   ót   — e Zd ZdZd„ Z ej         e e¦   «         ¦  «        ¬¦  «        d„ ¦   «         Zd„ Z	dS )ÚArgSignatureTestaË  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               #   ó  K  — t           j        D ].} |                      d¦  «        st          j        d| z  ¦  «         Œ/t
          g}|rD|                     d¦  «        }|                     |                     ¦   «         ¦  «         |V — |°Bd S d S )NÚ_zsqlalchemy.dialects.%sr   )	r   Ú__all__Ú
startswithÚ	importlibÚimport_moduler   ÚpopÚextendÚ__subclasses__)ÚdÚstackÚclss      r-   Ú_all_subclassesz ArgSignatureTest._all_subclassesA   sª   è è € ÝÔ!ð 	Fð 	FˆAØ—<’< Ñ$Ô$ð FÝÔ'Ð(@À1Ñ(DÑEÔEÐEøå�
ˆàð 	Ø—)’)˜A‘,”,ˆCØ�LŠL˜×+Ò+Ñ-Ô-Ñ.Ô.Ð.ØˆIˆIˆIð ð 	ð 	ð 	ð 	ð 	r4   )Úparamsc              #   ó   K  — |j         V — d S r$   )Úparam)r+   Úrequests     r-   Úall_subclasseszArgSignatureTest.all_subclassesM   s   è è € àŒmÐÐÐÐÐr4   c           	      óÈ   — |}|j         D ]W}|                     d¦  «        r@t          ||¦  «        }t          |¦  «        }t	          |j        d|j        › d|› d�¦  «         ŒXd S )NÚvisit_zCompiler visit method ú.z:() does not accommodate for **kw in its argument signature)Ú__dict__r:   Úgetattrr    r   Úvarkwr/   )r+   rH   rB   ÚkÚmethÚinsps         r-   Ú test_all_visit_methods_accept_kwz1ArgSignatureTest.test_all_visit_methods_accept_kwQ   s’   € Øˆà”ð 		ð 		ˆAØ�|Š|˜HÑ%Ô%ð Ý˜s A‘”�å-¨dÑ3Ô3�ÝØ”JðI¨S¬\ð Ið I¸Að Ið Ið Iñô ð øð		ð 		r4   N)
r/   r0   r1   Ú__doc__rC   r   ÚfixtureÚlistrH   rR   r3   r4   r-   r6   r6   3   sy   € € € € € ðð ð
ð 
ð 
ð €W„_˜D˜D  Ñ!2Ô!2Ñ3Ô3Ð4Ñ4Ô4ðð ñ 5Ô4ððð ð ð ð r4   r6   c                   óV   — e Zd ZdZdZdZed„ ¦   «         Zej	        d„ ¦   «         Z
d„ ZdS )ÚExceptionTestz¶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                 óŒ   — t          d|t          dt          dd¬¦  «        t          dt          d¦  «        ¦  «        ¦  «         d S )NÚ	manual_pkÚidTF©Úprimary_keyÚautoincrementÚdataé2   ©r   r   r   r   ©rB   Úmetadatas     r-   Údefine_tableszExceptionTest.define_tablesl   sK   € åØØÝ�4�¨dÀ%ÐHÑHÔHÝ�6�6 "™:œ:Ñ&Ô&ñ		
ô 	
ð 	
ð 	
ð 	
r4   c           	      ó®  — t           j                             ¦   «         5 }|                     ¦   «         }|                     | j        j                             ¦   «         dddœ¦  «         t          t          j
        |j        | j        j                             ¦   «         dddœ¦  «         |                     ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr   Úd1©r[   r_   )r   r%   r&   ÚbeginÚexecuteÚtablesrZ   Úinsertr   r   ÚIntegrityErrorÚrollback)r+   r,   Útranss      r-   Útest_integrity_errorz"ExceptionTest.test_integrity_erroru   s  € åŒY×ÒÑ Ô ð 	 DØ—J’J‘L”LˆEØ�LŠLØ”Ô%×,Ò,Ñ.Ô.°qÀ$Ð0GÐ0Gñô ð õ ÝÔ"Ø”Ø”Ô%×,Ò,Ñ.Ô.Ø $Ð'Ð'ñ	ô ð ð �NŠNÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ŸBC
Ã
CÃCc                 ó¨  — t           j                             ¦   «         5 }	 |                     t	          t          d¦  «        ¦  «        ¦  «         J ‚# t          j        $ r>}t          |¦  «        }t          |j	        ¦  «        t          |¦  «        v sJ ‚Y d }~nd }~ww xY wt          |t          ¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nu   mÃ©il)r   r%   r&   ri   r   r   r   Ú
DBAPIErrorÚstrÚorigÚ
isinstance)r+   r,   ÚerrÚerr_strs       r-   Útest_exception_with_non_asciiz+ExceptionTest.test_exception_with_non_ascii†   s  € ÝŒY×ÒÑ Ô ð 	, Dð1ð —’�V¥N°7Ñ$;Ô$;Ñ<Ô<Ñ=Ô=Ð=Ø�uøÝ”>ð 1ð 1ð 1Ý˜c™(œ(�å˜3œ8‘}”}­¨C©¬Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0øøøøð1øøøõ
 ˜g¥sÑ+Ô+Ð+Ð+Ð+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s4   ŸC¡1AÁBÁ!4BÂCÂBÂCÃCÃCN)r/   r0   r1   rS   Úrun_deletesr2   Úclassmethodrd   r   Ú$duplicate_key_raises_integrity_errorro   rw   r3   r4   r-   rW   rW   `   sq   € € € € € ðð ð €Kà€Kàð
ð 
ñ „[ð
ð Ô6ðð ñ 7Ô6ðð ,ð ,ð ,ð ,ð ,r4   rW   c                   óÐ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Ze	j
        j        d„ ¦   «         Ze	j
        j        e	j
        j        d„ ¦   «         ¦   «         Ze	j
        j        d	„ ¦   «         Zd
S )ÚIsolationLevelTestT©Úisolation_levelc                 óô   — t          j        t          ¦  «        }|d         }|d         }t          |¦  «                             d|g¦  «        }|r|                     ¦   «         S t          j        d¦  «         d S )NÚdefaultÚ	supportedÚ
AUTOCOMMITz(no non-default isolation level available)r   Úget_isolation_levelsr   ÚsetÚ
differencer=   Ú	skip_test)r+   Úlevelsr€   r�   Úss        r-   Ú _get_non_default_isolation_levelz3IsolationLevelTest._get_non_default_isolation_level�   sr   € ÝÔ2µ6Ñ:Ô:ˆà˜Ô#ˆØ˜;Ô'ˆ	å�	‰NŒN×%Ò% |°WÐ&=Ñ>Ô>ˆØð 	IØ—5’5‘7”7ˆNåÔÐGÑHÔHÐHÐHÐHr4   c                 óˆ   — t          t          j        j        j        t          j        t          ¦  «        d         ¦  «         d S )Nr€   )r	   r   r%   r'   Údefault_isolation_levelr   rƒ   )r+   s    r-   Útest_default_isolation_levelz/IsolationLevelTest.test_default_isolation_level©   s<   € ÝÝŒIÔÔ5ÝÔ-­fÑ5Ô5°iÔ@ñ	
ô 	
ð 	
ð 	
ð 	
r4   c                 óà  — |                       ¦   «         }t          j                             ¦   «         5 }|                     ¦   «         }t          ||¦  «         |                     |¬¦  «         t          |                     ¦   «         |¦  «         |j         	                    |j
        j        ¦  «         t          |                     ¦   «         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr}   )r‰   r   r%   r&   Úget_isolation_levelr   Úexecution_optionsr	   r'   Úreset_isolation_levelr)   r*   )r+   Únon_defaultr,   Úexistings       r-   Ú test_non_default_isolation_levelz3IsolationLevelTest.test_non_default_isolation_level¯   s  € Ø×;Ò;Ñ=Ô=ˆåŒY×ÒÑ Ô ð 	6 DØ×/Ò/Ñ1Ô1ˆHå�˜+Ñ&Ô&Ð&à×"Ò"°;Ð"Ñ?Ô?Ð?å�×(Ò(Ñ*Ô*¨KÑ8Ô8Ð8àŒL×.Ò.Ø”Ô0ñô ð õ �×(Ò(Ñ*Ô*¨HÑ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   ³B#C#Ã#C'Ã*C'c                 óÄ  — t          j        t          ¦  «        }|d         }t          |¦  «                             dg¦  «        D �]}t          j                             ¦   «         5 }|                     |¬¦  «         t          | 	                    ¦   «         |¦  «         | 
                    ¦   «         }|                     ¦   «          t          | 	                    ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             ¦   «         5 }t          | 	                    ¦   «         |d         ¦  «         d d d ¦  «         n# 1 swxY w Y   �Œd S )Nr�   r‚   r}   r€   )r   rƒ   r   r„   r…   r%   r&   r�   r	   rŽ   rh   rm   )r+   r‡   Ú
all_levelsÚlevelr,   rn   s         r-   Útest_all_levelsz"IsolationLevelTest.test_all_levelsÁ   s¯  € ÝÔ2µ6Ñ:Ô:ˆà˜KÔ(ˆ
å˜‘_”_×/Ò/°°Ñ?Ô?ð 	ñ 	ˆEÝ”×"Ò"Ñ$Ô$ð 7¨Ø×&Ò&°uÐ&Ñ=Ô=Ð=å�D×,Ò,Ñ.Ô.°Ñ6Ô6Ð6àŸ
š
™œ�Ø—’Ñ Ô Ð å�D×,Ò,Ñ.Ô.°Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ ”×"Ò"Ñ$Ô$ð ¨ÝØ×,Ò,Ñ.Ô.Ø˜9Ô%ñô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ùð	ð 	s%   Á&BC5Ã5C9	Ã<C9	Ä)EÅE	ÅE	c                 ó"  — |}t          t          j        dd›d|j        j        ›dd                     t          j        t          ¦  «        d         ¦  «        ›�¦  «        5  | 	                    d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	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_optionz6IsolationLevelTest.test_invalid_level_execution_option×   sù   € ð )ˆ
Ý"ÝÔÐð ��ØÔ"Ô'Ð'Ð'Ø—	’	Ý Ô5µfÑ=Ô=¸kÔJñô ð ðñ
ô 
ð 	@ð 	@ð ×(Ò(¸Ð(Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@ð 	@ð 	@s   Á BÂBÂBc                 óN  —  |t          d¬¦  «        ¬¦  «        }t          t          j        dd›d|j        j        ›dd                     t          j        t          ¦  «        d         ¦  «        ›�¦  «        5  | 
                    ¦   «          d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z…test 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_paramz2IsolationLevelTest.test_invalid_level_engine_paramê   sò   € ð ˆn¥T¸%Ð%@Ñ%@Ô%@ÐAÑAÔAˆÝ"ÝÔÐð ��Ø”Ô Ð Ð Ø—	’	Ý Ô5µfÑ=Ô=¸kÔJñô ð ðñ
ô 
ð 	ð 	ð �KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á8BÂBÂ!Bc                 óà  — t          j        t          ¦  «        }|d         }t          t	          |d         ¦  «                             |dg¦  «        ¦  «        d         } |d|i¬¦  «        }|                     ¦   «         5 }t          |                     ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5 }| 	                    |¬¦  «         t          |                     ¦   «         |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         5 }t          |                     ¦   «         |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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_restoredz8IsolationLevelTest.test_dialect_user_setting_is_restored  s  € åÔ2µ6Ñ:Ô:ˆØ˜Ô#ˆåÝ�F˜;Ô'Ñ(Ô(×3Ò3°W¸lÐ4KÑLÔLñô ð ô	ˆ	ð ˆNÐ$5°yÐ#AÐBÑBÔBˆà�YŠY‰[Œ[ð 	7˜DÝ�×(Ò(Ñ*Ô*¨IÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð �YŠY‰[Œ[ð 	5˜DØ×"Ò"°7Ð"Ñ;Ô;Ð;Ý�×(Ò(Ñ*Ô*¨GÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð �YŠY‰[Œ[ð 	7˜DÝ�×(Ò(Ñ*Ô*¨IÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7s6   Â#B0Â0B4Â7B4Ã9DÄDÄDÄ3#E#Å#E'Å*E'N)r/   r0   r1   r2   Ú__requires__r‰   rŒ   r“   r—   r   ÚrequiresÚget_isolation_level_valuesr¢   Ú#dialect_level_isolation_level_paramr©   Ú independent_readonly_connectionsr­   r3   r4   r-   r|   r|   ˜   s×   € € € € € Ø€Kà'€Lð
Ið 
Ið 
Ið
ð 
ð 
ð6ð 6ð 6ð$ð ð ð, ÔÔ0ð@ð @ñ 1Ô0ð@ð$ ÔÔ0ØÔÔ9ðð ñ :Ô9ñ 1Ô0ðð* ÔÔ6ð7ð 7ñ 7Ô6ð7ð 7ð 7r4   r|   c                   ó4  — e Zd ZdZdZdZed„ ¦   «         Zdd„Zd„ Z	d„ Z
d	„ Zej        j         ej        d
g d¢¦  «         ej        dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Zej        j         ej        dddg¦  «        d„ ¦   «         ¦   «         ZdS )ÚAutocommitIsolationTestrX   )Ú
autocommitTc                 ó�   — t          d|t          dt          dd¬¦  «        t          dt          d¦  «        ¦  «        d¬¦  «         d S )	NÚ
some_tabler[   TFr\   r_   r`   )Útest_needs_acidra   rb   s     r-   rd   z%AutocommitIsolationTest.define_tables  sS   € åØØÝ�4�¨dÀ%ÐHÑHÔHÝ�6�6 "™:œ:Ñ&Ô&Ø ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r4   Fc                 ó¢  — |r5| j         j                             |d¬¦  «         |                     ¦   «          |                     ¦   «         }|                     | j         j                             ¦   «         dddœ¦  «         |                     ¦   «          t          | 	                    t          | j         j        j        j        ¦  «        ¦  «        |rdnd ¦  «         |                     ¦   «          |                     ¦   «         5  |                     | j         j                             ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NT)Ú
checkfirstr   z	some datarg   )rj   r·   ÚcreateÚcommitrh   ri   rk   rm   r	   Úscalarr   Úcr[   Údelete)r+   r,   rµ   Úensure_tablern   s        r-   Ú_test_conn_autocommitsz.AutocommitIsolationTest._test_conn_autocommits)  sl  € Øð 	ØŒKÔ"×)Ò)¨$¸4Ð)Ñ@Ô@Ð@Ø�KŠK‰MŒMˆMà—
’
‘”ˆØ�ŠØŒKÔ"×)Ò)Ñ+Ô+°A¸{Ð-KÐ-Kñ	
ô 	
ð 	
ð 	�ŠÑÔÐåØ�KŠK�˜tœ{Ô5Ô7Ô:Ñ;Ô;Ñ<Ô<ØÐ%ˆAˆA ñ	
ô 	
ð 	
ð 	�Š‰Œˆà�ZŠZ‰\Œ\ð 	:ð 	:Ø�LŠL˜œÔ/×6Ò6Ñ8Ô8Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   Ä2EÅEÅEc                 óÖ   — |}|                      d¬¦  «        }|                      |d¦  «         |j                             |j        j        ¦  «         |                      |d¦  «         d S )Nr‚   r}   TF)r�   rÁ   r'   r�   r)   r*   )r+   r¡   r,   Úc2s       r-   Útest_autocommit_onz*AutocommitIsolationTest.test_autocommit_on=  sj   € Ø"ˆØ×#Ò#°LÐ#ÑAÔAˆØ×#Ò# B¨Ñ-Ô-Ð-à
Œ
×(Ò(¨¬Ô)GÑHÔHÐHà×#Ò# D¨%Ñ0Ô0Ð0Ð0Ð0r4   c                 ó6   — |}|                       |d¦  «         d S )NF)rÁ   ©r+   r¡   r,   s      r-   Útest_autocommit_offz+AutocommitIsolationTest.test_autocommit_offF  s#   € Ø"ˆØ×#Ò# D¨%Ñ0Ô0Ð0Ð0Ð0r4   c                 óô   — |}|                      d¬¦  «        }|                      |d¦  «         |                      t          j        t          ¦  «        d         ¬¦  «         |                      |d¦  «         d S )Nr‚   r}   Tr€   F)r�   rÁ   r   rƒ   r   rÆ   s      r-   Ú.test_turn_autocommit_off_via_default_iso_levelzFAutocommitIsolationTest.test_turn_autocommit_off_via_default_iso_levelJ  s†   € ð #ˆØ×%Ò%°lÐ%ÑCÔCˆØ×#Ò# D¨$Ñ/Ô/Ð/à×ÒÝ(Ô=½fÑEÔEØôð 	ñ 	
ô 	
ð 	
ð
 	×#Ò# D¨%Ñ0Ô0Ð0Ð0Ð0r4   Úautocommit_setting)ÚfalseÚengineÚoptionÚblock_rollbackc                 óT  — i }t          |¦  «        rd|d<   |j        rd|d<    ||¬¦  «        }|                     ¦   «         }|j        r|                     d¬¦  «         |                      ||j        p|j        d¬¦  «         t          j                             |j	        d|j	        j
        ¬	¦  «        5 }|                     ¦   «          d d d ¦  «         n# 1 swxY w Y   |j        s|s)t          |j        t          j        ¦   «         g¦  «         d S t          |j        g ¦  «         d S )
NTÚskip_autocommit_rollbackr‚   r~   r¤   r}   )rÀ   rm   )Úwraps)ÚboolrÌ   r&   rÍ   r�   rÁ   r   ÚpatchÚobjectr)   rm   ÚcloserË   r	   Ú
mock_callsÚcall)r+   r§   rÊ   rÎ   ÚkwrÌ   r,   Úcheck_rollbacks           r-   Útest_autocommit_blockz-AutocommitIsolationTest.test_autocommit_blockX  s‹  € ð ˆÝ�ÑÔð 	2Ø-1ˆBÐ)Ñ*ØÔ$ð 	1Ø$0ˆBÐ Ñ!à�¨Ð+Ñ+Ô+ˆà�~Š~ÑÔˆØÔ$ð 	AØ×"Ò"°<Ð"Ñ@Ô@Ð@Ø×#Ò#ØØÔ%ÐBÐ);Ô)BØð 	$ñ 	
ô 	
ð 	
õ
 ŒZ×ÒØŒO˜Z¨t¬Ô/Gð ñ 
ô 
ð 	àØ�JŠJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Ô#ð 	/¨>ð 	/Ý�Ô)­D¬I©K¬K¨=Ñ9Ô9Ð9Ð9Ð9å�Ô)¨2Ñ.Ô.Ð.Ð.Ð.s   Â5CÃCÃCÚuse_dialect_settingc                 ó`  — |r |ddi¬¦  «        }n |¦   «                               d¬¦  «        }t          j        t          ¦  «        }|d         }|                     ¦   «         5 }|                      |d¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «         5 }|                      |¬¦  «         |                      |d¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «         5 }|                      |d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	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_restoredz;AutocommitIsolationTest.test_dialect_autocommit_is_restoredw  só  € ð ð 	Ø�Ð(9¸<Ð'HÐIÑIÔIˆAˆAà�Ñ Ô ×2Ò2Ø ,ð 3ñ ô ˆAõ Ô2µ6Ñ:Ô:ˆà˜Ô#ˆà�YŠY‰[Œ[ð 	4˜DØ×'Ò'¨¨dÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð �YŠY‰[Œ[ð 	5˜DØ×"Ò"°7Ð"Ñ;Ô;Ð;Ø×'Ò'¨¨eÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð �YŠY‰[Œ[ð 	4˜DØ×'Ò'¨¨dÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s6   Á%BÂBÂBÂ'-C Ã C$Ã'C$Ã?D#Ä#D'Ä*D'N)F)r/   r0   r1   rx   r®   r2   ry   rd   rÁ   rÄ   rÇ   rÉ   r   r¯   rÐ   Ú	variationrÚ   r²   rÝ   r3   r4   r-   r´   r´     s"  € € € € € Ø€Kà"€Là€Kàð
ð 
ñ „[ð
ð:ð :ð :ð :ð(1ð 1ð 1ð1ð 1ð 1ð1ð 1ð 1ð ÔÔ.Ø€WÔÐ+Ð-JÐ-JÐ-JÑKÔKØ€WÔÐ'¨$°¨Ñ7Ô7ð/ð /ñ 8Ô7ñ LÔKñ /Ô.ð/ð8 ÔÔ6Ø€WÔÐ,¨t°U¨mÑ<Ô<ð4ð 4ñ =Ô<ñ 7Ô6ð4ð 4ð 4r4   r´   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚEscapingTestc                 ó�  — | j         }t          d|t          dt          d¦  «        ¦  «        ¦  «        }|                     t
          j        ¦  «         t
          j                             ¦   «         5 }|                     | 	                    ¦   «         t          d¬¦  «        ¦  «         |                     | 	                    ¦   «         t          d¬¦  «        ¦  «         t          |                     t          |j        j        ¦  «                             |j        j        t#          d¦  «        k    ¦  «        ¦  «        d¦  «         t          |                     t          |j        j        ¦  «                             |j        j        t#          d¦  «        k    ¦  «        ¦  «        d¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )
z|test that the DBAPI accommodates for escaped / nonescaped
        percent signs in a way that matches the compiler

        Útr_   r`   zsome % value)r_   zsome %% other valuez'some % value'z'some %% other value'N)rc   r   r   r   r»   r   r%   rh   ri   rk   r¦   r	   r½   r   r¾   r_   Úwherer   )r+   Úmrâ   r,   s       r-   Útest_percent_sign_round_tripz)EscapingTest.test_percent_sign_round_trip•  s¼  € ð ŒMˆÝ�#�q�& ­°©¬Ñ4Ô4Ñ5Ô5ˆØ	�Š•”ÑÔÐÝŒY�_Š_ÑÔð 	 $Ø�LŠL˜Ÿš™œ¥T¨~Ð%>Ñ%>Ô%>Ñ?Ô?Ð?Ø�LŠL˜Ÿš™œ¥TÐ/DÐ%EÑ%EÔ%EÑFÔFÐFåØ—’Ý˜1œ3œ8Ñ$Ô$×*Ò*Øœœ¥NÐ3CÑ$DÔ$DÒDñô ñô ð
 ñô ð õ Ø—’Ý˜1œ3œ8Ñ$Ô$×*Ò*Øœœ¥NÐ3JÑ$KÔ$KÒKñô ñô ð
 &ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á1D=F;Æ;F?ÇF?N)r/   r0   r1   r   rå   r3   r4   r-   rà   rà   ”  s.   € € € € € Øðð ñ Ôðð ð r4   rà   c                   ó.   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ ZdS )Ú WeCanSetDefaultSchemaWEventsTestT)Údefault_schema_name_switchc                 óæ   — t           j        j        j        }t	          j        ¦   «         }|                     ¦   «         5  	 d d d ¦  «         n# 1 swxY w Y   t          |j        j        |¦  «         d S r$   )r   r%   r'   Údefault_schema_namer   r§   r&   r	   )r+   rê   r¨   s      r-   Útest_control_casez2WeCanSetDefaultSchemaWEventsTest.test_control_caseº  s¢   € Ý$œiÔ/ÔCÐåÔ$Ñ&Ô&ˆØ�[Š[‰]Œ]ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	ˆCŒKÔ+Ð-@ÑAÔAÐAÐAÐAs   ¾AÁAÁAc                 óˆ  — t           j        j        j        }t	          j        ¦   «         }t          j        |d¦  «        d„ ¦   «         }|                     ¦   «         5 }|j         	                    |¦  «        }t          |t           j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        |¦  «         d S )Nr&   c                 óF   — t          t          | t          j        ¦  «         d S r$   ©r   r   Útest_schema©r*   Úconnection_records     r-   Ú
on_connectzMWeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insert.<locals>.on_connectÈ  ó)   € å,ÝÐ(­&Ô*<ñô ð ð ð r4   )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_insertz9WeCanSetDefaultSchemaWEventsTest.test_wont_work_wo_insertÃ  sï   € Ý$œiÔ/ÔCÐåÔ$Ñ&Ô&ˆå	Ô	˜3 	Ñ	*Ô	*ð	ð 	ñ 
+Ô	*ð	ð
 �[Š[‰]Œ]ð 	7˜dØ #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ 	ˆCŒKÔ+Ð-@ÑAÔAÐAÐAÐAs   Á5BÂB!Â$B!c                 ót  — t          j        ¦   «         }t          j        |dd¬¦  «        d„ ¦   «         }|                     ¦   «         5 }|j                             |¦  «        }t          |t          j	        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j
        t          j	        ¦  «         d S )Nr&   T©rk   c                 óF   — t          t          | t          j        ¦  «         d S r$   rî   rð   s     r-   rò   zRWeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connect.<locals>.on_connect×  ró   r4   )r   r§   r   rô   r&   r'   rõ   r	   r   rï   rê   )r+   r¨   rò   r,   rö   s        r-   Útest_schema_change_on_connectz>WeCanSetDefaultSchemaWEventsTest.test_schema_change_on_connectÔ  sè   € ÝÔ$Ñ&Ô&ˆå	Ô	˜3 	°$Ð	7Ñ	7Ô	7ð	ð 	ñ 
8Ô	7ð	ð
 �[Š[‰]Œ]ð 	7˜dØ #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ 	ˆCŒKÔ+­VÔ-?Ñ@Ô@Ð@Ð@Ð@s   Á5B	Â	BÂBc                 ó,  — t          j        ¦   «         }t          j        |dd¬¦  «        d„ ¦   «         }|                     ¦   «         5 }|                     ¦   «         }|j                             |¦  «        }t          |t          j
        ¦  «         |                     ¦   «          |j                             |¦  «        }t          |t          j
        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          |j        j        t          j
        ¦  «         d S )Nr&   Trù   c                 óF   — t          t          | t          j        ¦  «         d S r$   rî   )r*   Úargs     r-   rò   z\WeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactions.<locals>.on_connectæ  ró   r4   )r   r§   r   rô   r&   rh   r'   rõ   r	   r   rï   rm   rê   )r+   r¨   rò   r,   rn   rö   s         r-   Ú'test_schema_change_works_w_transactionszHWeCanSetDefaultSchemaWEventsTest.test_schema_change_works_w_transactionsã  s/  € ÝÔ$Ñ&Ô&ˆå	Ô	˜3 	°$Ð	7Ñ	7Ô	7ð	ð 	ñ 
8Ô	7ð	ð
 �[Š[‰]Œ]ð 	7˜dØ—J’J‘L”LˆEØ #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6Ø�NŠNÑÔÐà #¤× DÒ DÀTÑ JÔ JÐÝÐ!¥6Ô#5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ 	ˆCŒKÔ+­VÔ-?Ñ@Ô@Ð@Ð@Ð@s   ÁBC%Ã%C)Ã,C)N)	r/   r0   r1   r2   r®   rë   r÷   rû   rÿ   r3   r4   r-   rç   rç   µ  sh   € € € € € Ø€Kà2€LðBð Bð BðBð Bð Bð"Að Að AðAð Að Að Að Ar4   rç   c                   ó   — e Zd ZdS )Ú&FutureWeCanSetDefaultSchemaWEventsTestN)r/   r0   r1   r3   r4   r-   r  r  ø  s   € € € € € ð 	€Dr4   r  c                   óä   — e Zd ZdZ ej        dddddddd	d
ddddddddddddd¬¦  «        Zeej        j	        d„ ¦   «         ¦   «         Z
ej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚDifficultParametersTestT)Ú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                 óú  — |}t          d|t          dt          d¬¦  «        t          |t          d¦  «        d¬¦  «        ¦  «        }|                     |¦  «         |                     |                     ¦   «                              dd|d	i¦  «        ¦  «         t          |j	        |         ¦  «         
                    |j	        |         d	k    ¦  «        }t          |                     |¦  «        d	¦  «         t          |j	        |         ¦  «         
                    |j	        |         t          |¦  «        k    ¦  «        }|                     ||d	i¦  «                             ¦   «         }t          |j        |         d	¦  «         t          |j	        |         ¦  «         
                    |j	        |                              d	d
g¦  «        ¦  «        }|                     |¦  «                             ¦   «          d S )Nrâ   r[   T)r]   r`   F)Únullabler   z	some namezsome other_name)r   r   r   r   r»   ri   rk   Úvaluesr   r¾   rã   r	   r½   r   ÚfirstÚ_mappingÚin_)r+   r
  r)   rc   rŸ   râ   ÚstmtÚrows           r-   Ú!test_round_trip_same_named_columnz9DifficultParametersTest.test_round_trip_same_named_column  s¸  € ð
 ˆåØØÝ�4�¨dÐ3Ñ3Ô3Ý�4� ™œ¨eÐ4Ñ4Ô4ñ	
ô 
ˆð 	
�Š�ÑÔÐð 	×Ò˜1Ÿ8š8™:œ:×,Ò,¨d°A°t¸[Ð-IÑJÔJÑKÔKÐKõ �a”c˜$”iÑ Ô ×&Ò& q¤s¨4¤y°KÒ'?Ñ@Ô@ˆåˆJ×Ò˜dÑ#Ô# [Ñ1Ô1Ð1õ �a”c˜$”iÑ Ô ×&Ò& q¤s¨4¤yµI¸d±O´OÒ'CÑDÔDˆà× Ò  ¨¨kÐ':Ñ;Ô;×AÒAÑCÔCˆõ 	ˆCŒL˜Ô Ñ,Ô,Ð,õ �a”c˜$”iÑ Ô ×&Ò&ØŒC�ŒI�MŠM˜;Ð(9Ð:Ñ;Ô;ñ
ô 
ˆð 	×Ò˜4Ñ Ô ×&Ò&Ñ(Ô(Ð(Ð(Ð(r4   c              #   ól  K  — t          d|t          dt          ¦  «        t          dt          d¦  «        ¦  «        t          dt          d¦  «        ¦  «        ¦  «        }|                     |¦  «         |                     |                     ¦   «         dddd	œd
ddd	œdddd	œdddd	œg¦  «         |V — d S )NÚmytableÚmyidrŸ   r`   Údescr   ÚaÚa_desc)r  rŸ   r  r   ÚbÚb_descr   r¾   Úc_descé   r@   Úd_desc)r   r   r   r   r»   ri   rk   )r+   rc   r)   r  s       r-   Úmultirow_fixturez(DifficultParametersTest.multirow_fixtureB  sÏ   è è € åØØÝ�6�7Ñ#Ô#Ý�6�6 "™:œ:Ñ&Ô&Ý�6�6 "™:œ:Ñ&Ô&ñ
ô 
ˆð 	�Š�zÑ"Ô"Ð"à×ÒØ�NŠNÑÔà C°Ð:Ð:Ø C°Ð:Ð:Ø C°Ð:Ð:Ø C°Ð:Ð:ð	ñ	
ô 	
ð 	
ð ˆˆˆˆˆr4   c                 óì   — |}t          |j        j        ¦  «                             |j        j        t          |d¬¦  «        k    ¦  «        }|                     ||di¦  «        }t          |d¦  «         d S )NÚx©Úvaluer¾   r   )r   r¾   r  rã   rŸ   r   r½   r	   ©r+   r
  r)   r   Útbl1r  Úress          r-   Ú test_standalone_bindparam_escapez8DifficultParametersTest.test_standalone_bindparam_escapeY  sp   € ð  ˆÝ�d”f”kÑ"Ô"×(Ò(ØŒFŒK�9 Y°cÐ:Ñ:Ô:Ò:ñ
ô 
ˆð ×Ò  y°#Ð&6Ñ7Ô7ˆÝˆC�‰Œˆˆˆr4   c           	      ót  — |}t          |j        j        ¦  «                             |j        j                             t          |ddg¬¦  «        ¦  «        ¦  «                             |j        j        ¦  «        }|                     ||ddgi¦  «         	                    ¦   «         }t          |ddg¦  «         d S )Nr  r  r#  r@   r   r  )r   r¾   r  rã   rŸ   r  r   Úorder_byÚscalarsÚallr	   r%  s          r-   Ú*test_standalone_bindparam_escape_expandingzBDifficultParametersTest.test_standalone_bindparam_escape_expandingd  s¢   € ð  ˆå�4”6”;ÑÔßŠU�4”6”;—?’?¥9¨Y¸sÀC¸jÐ#IÑ#IÔ#IÑJÔJÑKÔKßŠX�d”f”kÑ"Ô"ð 	ð × Ò  ¨	°C¸°:Ð'>Ñ?Ô?×CÒCÑEÔEˆÝˆC�!�Q�ÑÔÐÐÐr4   N)r/   r0   r1   r2   r   ÚcombinationsÚtough_parametersr   r   Úunusual_column_name_charactersr  rT   r   r(  r-  r3   r4   r-   r  r  þ  sø   € € € € € Ø€Kà+�wÔ+ØØØØØØØØ$ØØØØØØØØØØØØØØð-ñ ô Ðð2 ØÔÔ7ð$)ð $)ñ 8Ô7ñ Ôð$)ðL „_ðð ñ „_ðð, ðð ñ Ôðð ðð ñ Ôðð ð r4   r  c                   óp   — e Zd ZdZdZed„ ¦   «         Zej        d„ ¦   «         Z	d„ Z
d„ Zd„ Zd„ Zd	„ Zd
„ ZdS )ÚReturningGuardsTestz=test that the various 'returning' flags are set appropriatelyTc                 óŒ   — t          d|t          dt          dd¬¦  «        t          dt          d¦  «        ¦  «        ¦  «         d S )Nrâ   r[   TFr\   r_   r`   ra   rb   s     r-   rd   z!ReturningGuardsTest.define_tablesx  sK   € åØØÝ�4�¨dÀ%ÐHÑHÔHÝ�6�6 "™:œ:Ñ&Ô&ñ		
ô 	
ð 	
ð 	
ð 	
r4   c                 ó.   ‡‡— | j         j        Šˆˆfd„}|S )Nc           
      óè  •— |                       ‰j        j        ¦  «        } |rÂ|sut          t          j        d‰j        j        › d‰j        j        › d�¦  «        5  ‰ 	                    | |dddi|dddi|d	dd
ig¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ‰ 	                    | |dddi|dddi|d	dd
ig¦  «        }t          |                     ¦   «         g d¢¦  «         d S |sNt          t          j        ¦  «        5  ‰ 	                    | |dddi¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ‰ 	                    | |dddi¦  «        }t          |                     ¦   «         dg¦  «         d S )NzDialect z\+zW with current server capabilities does not support .*RETURNING when executemany is usedr   r_   rf   r   Úd2r   Úd3)©r   )r   )r   r8  )Ú	returningr¾   r[   r   r   ÚStatementErrorr'   rŸ   Údriverri   r	   r,  r   rq   )r  ÚexecutemanyÚid_param_nameÚexpect_successÚresultr)   râ   s        €€r-   Úgoz(ReturningGuardsTest.run_stmt.<locals>.go…  st  ø€ Ø—>’> !¤#¤&Ñ)Ô)ˆDàð *.Ø%ð :õ /ÝÔ*ð@ JÔ$6Ô$;ð @ð @Ø%Ô-Ô4ð@ð @ð @ñô ð ð ð #×*Ò*Ø à!.°°6¸4Ð @Ø!.°°6¸4Ð @Ø!.°°6¸4Ð @ðñô ð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð  (×/Ò/Øà*¨A¨v°tÐ<Ø*¨A¨v°tÐ<Ø*¨A¨v°tÐ<ðñô �Fõ ˜Ÿ
š
™œÐ&8Ð&8Ð&8Ñ9Ô9Ð9Ð9Ð9à%ð .õ '¥s¤~Ñ6Ô6ð ð Ø"×*Ò*Ø  =°!°V¸TÐ"Bñô ð ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ð
 (×/Ò/Ø˜}¨a°¸Ð>ñô �Fõ ˜Ÿ
š
™œ t fÑ-Ô-Ð-Ð-Ð-s$   Á&BÂBÂBÄ D(Ä(D,Ä/D,)rj   râ   )r+   r)   r@  râ   s    ` @r-   Úrun_stmtzReturningGuardsTest.run_stmt�  s3   øø€ àŒKŒMˆð-	.ð -	.ð -	.ð -	.ð -	.ð -	.ð^ ˆ	r4   c                 óv   — | j         j        }|                     ¦   «         } ||dd|j        j        ¦  «         d S )NFr[   )rj   râ   rk   r'   Úinsert_returning©r+   r)   rA  râ   r  s        r-   Útest_insert_singlez&ReturningGuardsTest.test_insert_single¶  s:   € ØŒKŒMˆà�xŠx‰zŒzˆàˆ��u˜d JÔ$6Ô$GÑHÔHÐHÐHÐHr4   c                 óv   — | j         j        }|                     ¦   «         } ||dd|j        j        ¦  «         d S )NTr[   )rj   râ   rk   r'   Úinsert_executemany_returningrD  s        r-   Útest_insert_manyz$ReturningGuardsTest.test_insert_many½  sE   € ØŒKŒMˆà�xŠx‰zŒzˆàˆØ�$˜˜jÔ0ÔMñ	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S ©
Nr   rf   rg   r   r6  r   r7  Úb_idF)rj   râ   ri   rk   Úupdaterã   r¾   r[   r   r'   Úupdate_returningrD  s        r-   Útest_update_singlez&ReturningGuardsTest.test_update_singleÆ  ó¤   € ØŒKŒMˆà×ÒØ�HŠH‰JŒJà $Ð'Ð'Ø $Ð'Ð'Ø $Ð'Ð'ðñ	
ô 	
ð 	
ð �xŠx‰zŒz×Ò ¤¤­)°FÑ*;Ô*;Ò ;Ñ<Ô<ˆàˆ��u˜f jÔ&8Ô&IÑJÔJÐJÐJÐJr4   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S ©
Nr   rf   rg   r   r6  r   r7  rK  T)rj   râ   ri   rk   rL  rã   r¾   r[   r   r'   Úupdate_executemany_returningrD  s        r-   Útest_update_manyz$ReturningGuardsTest.test_update_manyÖ  ó¯   € ØŒKŒMˆà×ÒØ�HŠH‰JŒJà $Ð'Ð'Ø $Ð'Ð'Ø $Ð'Ð'ðñ	
ô 	
ð 	
ð �xŠx‰zŒz×Ò ¤¤­)°FÑ*;Ô*;Ò ;Ñ<Ô<ˆàˆØ�$˜ 
Ô 2Ô Oñ	
ô 	
ð 	
ð 	
ð 	
r4   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S rJ  )rj   râ   ri   rk   r¿   rã   r¾   r[   r   r'   Údelete_returningrD  s        r-   Útest_delete_singlez&ReturningGuardsTest.test_delete_singleè  rO  r4   c                 ó:  — | j         j        }|                     |                     ¦   «         dddœdddœdddœg¦  «         |                     ¦   «                              |j        j        t          d¦  «        k    ¦  «        } ||d	d|j	        j
        ¦  «         d S rQ  )rj   râ   ri   rk   r¿   rã   r¾   r[   r   r'   Údelete_executemany_returningrD  s        r-   Útest_delete_manyz$ReturningGuardsTest.test_delete_manyø  rT  r4   N)r/   r0   r1   rS   r2   ry   rd   r   rT   rA  rE  rH  rN  rS  rW  rZ  r3   r4   r-   r2  r2  s  s¹   € € € € € ØGÐGà€Kàð
ð 
ñ „[ð
ð „_ð2ð 2ñ „_ð2ðhIð Ið Ið
ð 
ð 
ðKð Kð Kð 
ð 
ð 
ð$Kð Kð Kð 
ð 
ð 
ð 
ð 
r4   r2  )/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"   r6   Ú
TablesTestrW   r|   r´   rà   rç   ÚFutureEngineMixinr  r  r2  r3   r4   r-   ú<module>rd     s  ðð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø .Ð .Ð .Ð .Ð .Ð .Ø !Ð !Ð !Ð !Ð !Ð !Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ˆxÔ ñ ô ð ð*ð *ð *ð *ð *�xÔ(ñ *ô *ð *ðZ5,ð 5,ð 5,ð 5,ð 5,�HÔ'ñ 5,ô 5,ð 5,ðp}7ð }7ð }7ð }7ð }7˜Ô*ñ }7ô }7ð }7ð@y4ð y4ð y4ð y4ð y4˜hÔ1ñ y4ô y4ð y4ðxð ð ð ð �8Ô$ñ ô ð ðB@Að @Að @Að @Að @A xÔ'8ñ @Aô @Að @AðF	ð 	ð 	ð 	ð 	ØÔÐ @ñ	ô 	ð 	ðrð rð rð rð r˜hÔ/ñ rô rð rðjU
ð U
ð U
ð U
ð U
˜(Ô-ñ U
ô U
ð U
ð U
ð U
r4   