Ë
    r™ãjãW  ã                   ó†  — d dl Z 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  G d„ dej*                  «      Z G d„ dej*                  «      Z G d„ dej*                  «      Z G d„ dej2                  ej4                  «      Zy)é    Né   )Úengines)Úfixtures)Úeq_)Úrequirements)ÚColumn)ÚTableé   )ÚDateTime)Úfunc)ÚInteger)Úquoted_name)Úselect)Úsql)ÚString)Útesting©Útextc                   ór   — e Zd ZdZed„ «       Zed„ «       Zd„ Zd„ Zd„ Z	d„ Z
ej                  d„ «       Zd	„ Zy
)ÚRowFetchTestTc                 ó¾   — t        d|t        dt        d¬«      t        dt        d«      «      «       t        d|t        dt        d¬«      t        dt        «      «       y )	NÚplain_pkÚidT©Úprimary_keyÚdataé2   Ú	has_datesÚtoday)r	   r   r   r   r   ©ÚclsÚmetadatas     úp/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_results.pyÚdefine_tableszRowFetchTest.define_tables    sP   € äØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�7œHÓ%õ		
ó    c                 ó$  — |j                  | j                  j                  j                  «       dddœdddœdddœg«       |j                  | j                  j                  j                  «       dt        j
                  dd	d
d
dd«      dœg«       y )Né   Úd1)r   r   r   Úd2r
   Úd3éÖ  é   é   r   )r   r   )ÚexecuteÚtablesr   Úinsertr   Údatetime©r!   Ú
connections     r#   Úinsert_datazRowFetchTest.insert_data/   s‰   € à×ÑØ�J‰J×Ñ×&Ñ&Ó(à $Ñ'Ø $Ñ'Ø $Ñ'ðô	
ð 	×ÑØ�J‰J× Ñ ×'Ñ'Ó)Ø¤× 1Ñ 1°$¸¸2¸rÀ1ÀaÓ HÑIÐJõ	
r%   c                 óL  — |j                  | j                  j                  j                  «       j	                  | j                  j                  j
                  j                  «      «      j                  «       }t        |j                  d«       t        |j                  d«       y ©Nr'   r(   )
r.   r/   r   r   Úorder_byÚcr   Úfirstr   r   ©Úselfr3   Úrows      r#   Útest_via_attrzRowFetchTest.test_via_attr?   sp   € Ø× Ñ Ø�K‰K× Ñ ×'Ñ'Ó)×2Ñ2°4·;±;×3GÑ3G×3IÑ3I×3LÑ3LÓMó
ç
‰%‹'ð 	ô 	ˆC�F‰F�AŒÜˆC�H‰H�dÕr%   c                 óX  — |j                  | j                  j                  j                  «       j	                  | j                  j                  j
                  j                  «      «      j                  «       }t        |j                  d   d«       t        |j                  d   d«       y )Nr   r'   r   r(   )
r.   r/   r   r   r7   r8   r   r9   r   Ú_mappingr:   s      r#   Útest_via_stringzRowFetchTest.test_via_stringG   s{   € Ø× Ñ Ø�K‰K× Ñ ×'Ñ'Ó)×2Ñ2°4·;±;×3GÑ3G×3IÑ3I×3LÑ3LÓMó
ç
‰%‹'ð 	ô 	ˆC�L‰L˜Ñ Ô"ÜˆC�L‰L˜Ñ  $Õ'r%   c                 ó0  — |j                  | j                  j                  j                  «       j	                  | j                  j                  j
                  j                  «      «      j                  «       }t        |d   d«       t        |d   d«       y )Nr   r'   r(   )	r.   r/   r   r   r7   r8   r   r9   r   r:   s      r#   Útest_via_intzRowFetchTest.test_via_intO   sp   € Ø× Ñ Ø�K‰K× Ñ ×'Ñ'Ó)×2Ñ2°4·;±;×3GÑ3G×3IÑ3I×3LÑ3LÓMó
ç
‰%‹'ð 	ô 	ˆC�‰F�AŒÜˆC�‰F�DÕr%   c                 óø  — |j                  | j                  j                  j                  «       j	                  | j                  j                  j
                  j                  «      «      j                  «       }t        |j                  | j                  j                  j
                  j                     d«       t        |j                  | j                  j                  j
                  j                     d«       y r6   )r.   r/   r   r   r7   r8   r   r9   r   r?   r   r:   s      r#   Útest_via_col_objectz RowFetchTest.test_via_col_objectW   s§   € Ø× Ñ Ø�K‰K× Ñ ×'Ñ'Ó)×2Ñ2°4·;±;×3GÑ3G×3IÑ3I×3LÑ3LÓMó
ç
‰%‹'ð 	ô 	ˆC�L‰L˜Ÿ™×-Ñ-×/Ñ/×2Ñ2Ñ3°QÔ7ÜˆC�L‰L˜Ÿ™×-Ñ-×/Ñ/×4Ñ4Ñ5°tÕ<r%   c                 óÖ  — |j                  t        | j                  j                  j                  j
                  | j                  j                  j                  j
                  j                  d«      «      j                  | j                  j                  j                  j                  «      «      }|j                  «       }t        |j                  «       ddg«       t        |d«       y )Nr   )r(   r(   )r.   r   r/   r   r8   r   Úlabelr7   r   r9   r   Úkeys)r;   r3   Úresultr<   s       r#   Útest_row_with_dupe_namesz%RowFetchTest.test_row_with_dupe_names_   s¥   € à×#Ñ#ÜØ—‘×$Ñ$×&Ñ&×+Ñ+Ø—‘×$Ñ$×&Ñ&×+Ñ+×1Ñ1°&Ó9ó÷ ‰h�t—{‘{×+Ñ+×-Ñ-×0Ñ0Ó1ó	
ˆð �l‰l‹nˆÜˆF�K‰K‹M˜F FÐ+Ô,ÜˆC�Õr%   c                 ó   — | j                   j                  }t        |j                  d«      j                  j
                  «      j                  «       }t        |j                  j                  |j                  d«      «      }|j                  |«      j                  «       }t        |j                  t        j                  dddddd«      «       y)zýtest that a scalar select as a column is returned as such
        and that type conversion works OK.

        (this is half a SQLAlchemy Core test and half to catch database
        backends that may have unusual behavior with scalar selects.)

        ÚxÚ	somelabelr+   r,   r-   r   N)r/   r   r   Úaliasr8   r   Úscalar_subqueryr   rF   r.   r9   r   rL   r1   )r;   r3   Ú	datetableÚsÚs2r<   s         r#   Útest_row_w_scalar_selectz%RowFetchTest.test_row_w_scalar_selectk   s”   € ð —K‘K×)Ñ)ˆ	Ü�9—?‘? 3Ó'×)Ñ)×/Ñ/Ó0×@Ñ@ÓBˆÜ�I—K‘K—N‘N A§G¡G¨KÓ$8Ó9ˆØ× Ñ  Ó$×*Ñ*Ó,ˆäˆC�M‰Mœ8×,Ñ,¨T°1°b¸"¸aÀÓCÕDr%   N)Ú__name__Ú
__module__Ú__qualname__Ú__backend__Úclassmethodr$   r4   r=   r@   rB   rD   r   Ú%duplicate_names_in_cursor_descriptionrI   rR   © r%   r#   r   r      sa   „ Ø€Kàñ
ó ð
ð ñ
ó ð
òò(òò=ð ×7Ñ7ñ	ó 8ð	óEr%   r   c                   óž   — e Zd ZdZed„ «       Zed„ «       Zdd„Z ej                  dg d¢«       ej                  ddd	g«      d
„ «       «       Z
y)ÚNameDenormalizeTestTc                 ó  — t        d|t        dt        d¬«      t        dt        «      t        dt        «      t        dt        «      t        t        dd¬	«      t        «      t        t        d
d¬	«      t        «      «      | j                  _        y )NÚdenormalize_tabler   Tr   Úall_lowercaseÚALL_UPPERCASEÚ	MixedCaseÚall_lowercase_quoted)ÚquoteÚALL_UPPERCASE_QUOTED)r	   r   r   r   r/   r]   r    s     r#   r$   z!NameDenormalizeTest.define_tables~   sg   € ä',ØØÜ�4œ¨dÔ3Ü�?¤GÓ,Ü�?¤GÓ,Ü�;¤Ó(Ü”;Ð5¸TÔBÄGÓLÜ”;Ð5¸TÔBÄGÓLó	(
ˆ�
‰
Õ$r%   c           
      óz   — |j                  | j                  j                  j                  «       dddddddœ«       y )Nr'   r,   é   é   é   é	   ©r   r^   r_   r`   ra   rc   )r.   r/   r]   r0   r2   s     r#   r4   zNameDenormalizeTest.insert_data‹   s=   € à×ÑØ�J‰J×(Ñ(×/Ñ/Ó1àØ!"Ø!"ØØ()Ø()ñõ
	
r%   Nc                 óp  — t        |j                  |«       |D ]7  }t        |j                  |   ||   «       t        t        ||«      ||   «       Œ9 t        |«      D ]  \  }}t        ||   ||   «       Œ |r=t	        |t        |«      «      D ]$  \  }\  }}t        |j                  |   ||   «       Œ& y y ©N)r   r?   ÚgetattrÚ	enumerateÚzip)r;   r<   ÚmappingÚinclude_colsÚkÚidxÚcols          r#   Ú_assert_row_mappingz'NameDenormalizeTest._assert_row_mapping™   s¹   € ÜˆC�L‰L˜'Ô"àò 	-ˆAÜ�—‘˜Q‘ ¨¡Ô,Ü”˜˜Q“ ¨¡Õ,ð	-ô   Ó(ò 	&‰FˆC�Ü��C‘˜' !™*Õ%ð	&ñ Ü!$ \´9¸WÓ3EÓ!Fò 3‘�‘X�c˜1Ü�C—L‘L Ñ% w¨q¡zÕ2ñ3ð r%   Ú	stmt_type)Ú
driver_sqlÚ	text_starÚcore_selectÚ	text_colsÚuse_driver_colsFc           
      óV  — |j                   s|j                  s|j                  r¥t        d«      j	                  | j
                  j                  «      }t        |j                  |«      «      }|j                  s|j                  r�t        |«      }|j                  rj |j                  | j
                  j                  j                  Ž }n<|j                  r t        | j
                  j                  «      }n|j                  «        |rddi}ni }|j                   r"|j                  |¬«      j                  «       }n!|j!                  |¬«      j                  «       }|j                  r|r$t"        j$                  j&                  j(                  s| j+                  |ddddd	d
dœ«       t"        j$                  j&                  j(                  rŠ|r| j+                  |ddddd	d
dœ«       y |j                  s|j                  r:| j+                  |ddddd	d
dœ| j
                  j                  j                  ¬«       y | j+                  |ddddd	d
dœd ¬«       y | j+                  |ddddd	d
dœ|j                  s|j                  r | j
                  j                  j                  nd ¬«       y )NÚ*Údriver_column_namesT)Úexecution_optionsr'   r,   re   rf   rg   rh   ri   )ÚIDÚALL_LOWERCASEr_   r`   ra   rc   )rp   )r   r^   Úall_uppercaser`   ra   Úall_uppercase_quoted)rv   rw   ry   r   Úselect_fromr/   r]   ÚstrÚcompiler   Úcolumnsr8   rx   ÚfailÚexec_driver_sqlÚoner.   r   ÚrequiresÚdenormalized_namesÚenabledrt   )r;   r3   ru   rz   ÚstmtÚ	text_stmtr~   r<   s           r#   Útest_cols_driver_colsz)NameDenormalizeTest.test_cols_driver_cols§   s”  € ð
 ×Ò 9×#6Ò#6¸)×:MÒ:MÜ˜#“;×*Ñ*¨4¯;©;×+HÑ+HÓIˆDÜ˜DŸL™L¨Ó4Ó5ˆIà×"Ò" i×&9Ò&9Ü˜I“�à×&Ò&Ø'˜4Ÿ<™<¨¯©×)FÑ)F×)HÑ)HÐI‘DØ×"Ò"Ü˜$Ÿ+™+×7Ñ7Ó8‰Dà�N‰NÔáØ!6¸Ð =Ñà "Ðà×ÒØ×,Ñ,ØÐ->ð -ó ç‰c‹eñ ð ×$Ñ$ØØ"3ð %ó ÷ ‰c‹eð ð ×!Ò!©/Ü×!Ñ!×4Ñ4×<Ò<Ø×$Ñ$ØàØ%&Ø%&Ø!"Ø,-Ø,-ñô
ô ×Ñ×.Ñ.×6Ò6ñ Ø×(Ñ(ØàØ)*Ø)*Ø%&Ø01Ø01ñõ
ð ×(Ò(¨I×,?Ò,?Ø×,Ñ,Øà"#Ø-.Ø-.Ø)*Ø45Ø45ñð &*§[¡[×%BÑ%B×%DÑ%Dð -õ ð ×,Ñ,Øà"#Ø-.Ø-.Ø)*Ø45Ø45ñð &*ð -õ ð ×$Ñ$ØàØ%&Ø%&Ø!"Ø,-Ø,-ñð !×,Ò,°	×0CÒ0Cð —K‘K×1Ñ1×3Ò3àð %õ r%   rk   )rS   rT   rU   rV   rW   r$   r4   rt   r   Ú	variationr�   rY   r%   r#   r[   r[   {   sy   „ Ø€Kàñ

ó ð

ð ñ
ó ð
ó3ð €W×ÑØÒLóð €W×ÑÐ(¨4°¨-Ó8ñhó 9óñhr%   r[   c                   ó^   — e Zd ZdZdZdZed„ «       Zd„ Zd„ Z	e
j                  d„ «       Zd„ Zy	)
ÚPercentSchemaNamesTestz¡tests using percent signs, spaces in table and column names.

    This didn't work for PostgreSQL / MySQL drivers for a long time
    but is now supported.

    )Úpercent_schema_namesTc           	      ó  — t        d|t        dt        «      t        dt        «      «      | j                  _        t        j                  dt        j                  d«      t        j                  d«      «      | j                  _        y )Nzpercent%tableúpercent%úspaces % more spaces)	r	   r   r   r/   Úpercent_tabler   ÚtableÚcolumnÚlightweight_percent_tabler    s     r#   r$   z$PercentSchemaNamesTest.define_tables"  sa   € ä#(ØØÜ�:œwÓ'ÜÐ)¬7Ó3ó	$
ˆ�
‰
Ô ô 03¯y©yØÜ�J‰J�zÓ"Ü�J‰JÐ-Ó.ó0
ˆ�
‰
Õ,r%   c                 óÀ   — | j                   j                  }dddœdddœdddœdddœfD ]"  }|j                  |j                  «       |«       Œ$ | j	                  |«       y ©Nr,   r-   ©r•   r–   rf   é   rh   é
   ©r/   r—   r.   r0   Ú_assert_table)r;   r3   r—   Úparamss       r#   Útest_single_roundtripz,PercentSchemaNamesTest.test_single_roundtrip0  sm   € ØŸ™×1Ñ1ˆà°BÑ7Ø°BÑ7Ø°BÑ7Ø°QÑ7ð	
ò 	?ˆFð ×Ñ˜}×3Ñ3Ó5°vÕ>ð	?ð 	×Ñ˜:Õ&r%   c                 óð   — | j                   j                  }|j                  |j                  «       dddœ«       |j                  |j                  «       dddœdddœdddœg«       | j	                  |«       y rœ   r    )r;   r3   r—   s      r#   Útest_executemany_roundtripz1PercentSchemaNamesTest.test_executemany_roundtrip;  s{   € ØŸ™×1Ñ1ˆØ×ÑØ× Ñ Ó"°ÈBÑ$Oô	
ð 	×ÑØ× Ñ Ó"à¸Ñ;Ø¸Ñ;Ø¸Ñ;ðô	
ð 	×Ñ˜:Õ&r%   c                 ó|  — | j                   j                  }|j                  |j                  «       dddœ«       |j                  |j                  «       j	                  |j
                  d   |j
                  d   «      dddœdd	dœdddœg«      }t        |j                  «       g d
¢«       | j                  |«       y )Nr,   r-   r�   r•   r–   rf   rž   rh   rŸ   )©rf   rž   ©rh   rŸ   ©rž   rh   )	r/   r—   r.   r0   Ú	returningr8   r   Úallr¡   )r;   r3   r—   rH   s       r#   Ú$test_executemany_returning_roundtripz;PercentSchemaNamesTest.test_executemany_returning_roundtripJ  s´   € àŸ™×1Ñ1ˆØ×ÑØ× Ñ Ó"°ÈBÑ$Oô	
ð ×#Ñ#Ø× Ñ Ó"×,Ñ,Ø—‘ 
Ñ+Ø—‘Ð 6Ñ7óð
 ¸Ñ;Ø¸Ñ;Ø¸Ñ;ðó

ˆô 	ˆF�J‰J‹LÒ5Ô6Ø×Ñ˜:Õ&r%   c                 óð  — | j                   j                  }| j                   j                  }||j                  «       ||j                  «       fD �]—  }t	        t        |j                  |j                  «       j                  |j                  d   «      «      «      g d¢«       t	        t        |j                  |j                  «       j                  |j                  d   j                  ddg«      «      j                  |j                  d   «      «      «      ddg«       |j                  |j                  «       j                  |j                  d   «      «      j                  «       }t	        |j                  d   d«       t	        |j                  d   d	«       t	        |j                  |j                  d      d«       t	        |j                  |j                  d      d	«       �Œš |j                  |j                  «       j                  |j                  d   d
i«      «       t	        t        |j                  |j                  «       j                  |j                  d   «      «      «      g d¢«       y )Nr•   ))r,   r-   r§   r¨   r©   r–   rh   rŸ   r¨   r©   r,   r-   é   ))r,   r®   )rf   r®   )rh   r®   )rž   r®   )r/   r—   rš   rM   r   Úlistr.   r   r7   r8   ÚwhereÚin_r9   r?   ÚupdateÚvalues)r;   Úconnr—   rš   r˜   r<   s         r#   r¡   z$PercentSchemaNamesTest._assert_table^  s  € ØŸ™×1Ñ1ˆØ$(§K¡K×$IÑ$IÐ!ð Ø×ÑÓ!Ø%Ø%×+Ñ+Ó-ð	
ó 	CˆEô ÜØ—L‘L §¡£×!8Ñ!8¸¿¹ÀÑ9LÓ!MÓNóò 5ô	ô ÜØ—L‘LØŸ™›ß™˜uŸw™wÐ'=Ñ>×BÑBÀAÀrÀ7ÓKÓLß!™ %§'¡'¨*Ñ"5Ó6óóð ˜'Ð"ô	ð —,‘,Ø—‘“×'Ñ'¨¯©°
Ñ(;Ó<óç‰e‹gð ô �—‘˜ZÑ(¨!Ô,Ü�—‘Ð3Ñ4°bÔ9ä�—‘˜UŸW™W ZÑ0Ñ1°1Ô5Ü�—‘˜UŸW™WÐ%;Ñ<Ñ=¸rÖBð?	CðB 	�‰Ø× Ñ Ó"×)Ñ)Ø—‘Ð!7Ñ8¸"Ð=óô	
ô 	ÜØ—‘Ø!×(Ñ(Ó*×3Ñ3Ø%Ÿ™¨
Ñ3óóóò 2õ		
r%   N)rS   rT   rU   Ú__doc__Ú__requires__rV   rW   r$   r£   r¥   r   Úinsert_executemany_returningr¬   r¡   rY   r%   r#   r’   r’     sN   „ ñð -€Là€Kàñ
ó ð
ò	'ò'ð ×.Ñ.ñ'ó /ð'ó&4
r%   r’   c                   óš  — e Zd ZdZdZd„ Zd„ Zd„ Z ej                  ddd„ dfddd	„ dfd
d e
d«      dfddd„ dfdd e
d«      j                  d¬«      dfdd e
d«      j                  d¬«      dfdd e
d«      j                  «       dfddd„ d ej                  ddg«      fddd„ dfddd„ dfdd¬«      d„ «       Zd„ Zd „ Zd!„ Zd"„ Zd#„ Zy$)%ÚServerSideCursorsTest)Úserver_side_cursorsTc                 ó†  — | j                   j                  j                  dk(  rt        |j                  «      S | j                   j                  j                  dk(  r+t        d«      j                  j                  }t        ||«      S | j                   j                  j                  dv r|j                  S | j                   j                  j                  dk(  r+t        d«      j                  j                  }t        ||«      S | j                   j                  j                  dk(  r|j                   S | j                   j                  j                  dk(  r%d	t        |«      j                  j                  «       vS | j                   j                  j                  d
v r|j                  S | j                   j                  j                  dk(  rt        |dd«      S | j                   j                  j                  dk(  rt        t        |dd«      «      S | j                   j                  j                  dk(  rt        |dd«      S y)NÚpsycopg2Úpymysqlzpymysql.cursors)ÚaiomysqlÚasyncmyÚaioodbcÚmysqldbzMySQLdb.cursorsÚmariadbconnectorÚmysqlconnectorÚbuffered)ÚasyncpgÚ	aiosqliteÚpg8000Úserver_sideFÚpsycopgÚnameÚoracledb)ÚengineÚdialectÚdriverÚboolrÊ   Ú
__import__ÚcursorsÚSSCursorÚ
isinstancerÈ   rÄ   ÚtyperS   Úlowerrl   )r;   ÚcursorÚsscursors      r#   Ú_is_server_sidez%ServerSideCursorsTest._is_server_sideœ  sÇ  € ð �;‰;×Ñ×%Ñ%¨Ò3Ü˜Ÿ™Ó$Ð$Ø�[‰[× Ñ ×'Ñ'¨9Ò4Ü!Ð"3Ó4×<Ñ<×EÑEˆHÜ˜f hÓ/Ð/Ø�[‰[× Ñ ×'Ñ'Ð+MÑMØ×%Ñ%Ð%Ø�[‰[× Ñ ×'Ñ'¨9Ò4Ü!Ð"3Ó4×<Ñ<×EÑEˆHÜ˜f hÓ/Ð/Ø�[‰[× Ñ ×'Ñ'Ð+=Ò=Ø—‘Ð&Ð&Ø�[‰[× Ñ ×'Ñ'Ð+;Ò;Ø¤T¨&£\×%:Ñ%:×%@Ñ%@Ó%BÐBÐBØ�[‰[× Ñ ×'Ñ'Ð+CÑCØ×%Ñ%Ð%Ø�[‰[× Ñ ×'Ñ'¨8Ò3Ü˜6 =°%Ó8Ð8Ø�[‰[× Ñ ×'Ñ'¨9Ò4Üœ ¨°Ó6Ó7Ð7Ø�[‰[× Ñ ×'Ñ'¨:Ò5Ü˜6 =°%Ó8Ð8àr%   c                 ó  — |rGt        j                  d«      5  t        j                  d|i¬«      | _        d d d «       | j                  S t        j                  d|i¬«      | _        | j                  S # 1 sw Y   | j                  S xY w)Nz­The create_engine.server_side_cursors parameter is deprecated and will be removed in a future release.  Please use the Connection.execution_options.stream_results parameter.rº   )Úoptions)r   Úexpect_deprecatedr   Útesting_enginerÌ   )r;   rº   s     r#   Ú_fixturezServerSideCursorsTest._fixture¸  s†   € ÙÜ×*Ñ*ðóñ ô &×4Ñ4Ø2Ð4GÐHô�”÷ð �{‰{Ðô "×0Ñ0Ø.Ð0CÐDôˆDŒKð �{‰{Ð÷ð �{‰{Ðús   ˜A3Á3Bc                 ól   — t        j                  dt         j                  «      j                  d„ |«      S )NzSELECT (\d+)c           	      ó”   — t        t        t        | j                  d«      «      «      j	                  t
        j                  «      «      S )Nr'   )r„   r   ÚintÚgroupr…   r   Údb)Úms    r#   ú<lambda>z1ServerSideCursorsTest.stringify.<locals>.<lambda>Ë  s+   € ”cœ&¤ Q§W¡W¨Q£Z£Ó1×9Ñ9¼'¿*¹*ÓEÓF€ r%   )Úrer…   ÚIÚsub)r;   Ústr_s     r#   Ú	stringifyzServerSideCursorsTest.stringifyÉ  s)   € Ü�z‰z˜/¬2¯4©4Ó0×4Ñ4ÙFÈó
ð 	
r%   Úglobal_stringc                 ó   —  | d«      S ©Núselect 1rY   ©ré   s    r#   rä   zServerSideCursorsTest.<lambda>Ï  s   € ±)¸JÓ2G€ r%   Úglobal_textc                 ó$   — t         | d«      «      S rì   r   rî   s    r#   rä   zServerSideCursorsTest.<lambda>Ó  ó   € œd¡9¨ZÓ#8Ó9€ r%   Úglobal_exprr'   Úglobal_off_explicitFc                 ó$   — t         | d«      «      S rì   r   rî   s    r#   rä   zServerSideCursorsTest.<lambda>Ú  rñ   r%   Ústmt_option©Ústream_resultsÚstmt_option_disabledÚfor_update_exprÚfor_update_stringc                 ó   —  | d«      S )NzSELECT 1 FOR UPDATErY   rî   s    r#   rä   zServerSideCursorsTest.<lambda>î  s   € ™iÐ(=Ó>€ r%   ÚsqliteÚmssqlÚ
text_no_ssc                 ó$   — t         | d«      «      S )Nú	select 42r   rî   s    r#   rä   zServerSideCursorsTest.<lambda>õ  s   € œd¡9¨[Ó#9Ó:€ r%   Útext_ss_optionc                 óD   — t         | d«      «      j                  d¬«      S )Nr   Trö   )r   r~   rî   s    r#   rä   zServerSideCursorsTest.<lambda>û  s$   € œd¡9¨[Ó#9Ó:×LÑLØ#ð Mó € r%   Úiaaaz*engine_ss_arg, statement, cursor_ss_status)Úid_Úargnamesc                 ó˜  — | j                  |«      }|j                  «       5 }t        |«      r!t        j                  || j
                  ¬«      }t        |t        «      r|j                  |«      }n|j                  |«      }t        | j                  |j                  «      |«       |j                  «        d d d «       y # 1 sw Y   y xY w)Nrî   )rÝ   ÚbeginÚcallabler   Úresolve_lambdaré   rÓ   r„   rˆ   r.   r   rØ   rÖ   Úclose)r;   Úengine_ss_argÚ	statementÚcursor_ss_statusrÌ   r´   rH   s          r#   Útest_ss_cursor_statusz+ServerSideCursorsTest.test_ss_cursor_statusÎ  s¡   € ðp —‘˜}Ó-ˆØ�\‰\‹^ð 	˜tÜ˜	Ô"Ü#×2Ñ2Ø¨¯©ô�	ô ˜)¤SÔ)Ø×-Ñ-¨iÓ8‘àŸ™ iÓ0�Ü�×$Ñ$ V§]¡]Ó3Ð5EÔFØ�L‰LŒN÷	÷ 	ñ 	ús   ¢BC Ã C	c                 ó*  — | j                  d«      }|j                  «       5 }|j                  d¬«      j                  | j	                  d«      «      }| j                  |j                  «      sJ ‚|j                  «        d d d «       y # 1 sw Y   y xY w)NFTrö   rí   )rÝ   Úconnectr~   rˆ   ré   rØ   rÖ   r
  )r;   rÌ   r´   rH   s       r#   Útest_conn_optionz&ServerSideCursorsTest.test_conn_option  s„   € Ø—‘˜uÓ%ˆà�^‰^Óð 	 à×+Ñ+Ø#ð ,ó ç‰o˜dŸn™n¨ZÓ8Ó9ð ð ×'Ñ'¨¯©Ô6Ð6Ð6ð �L‰LŒN÷'	÷ 	ñ 	ús   ¢AB	Â	Bc                 ó$  — | j                  d«      }t        d«      j                  d¬«      }|j                  «       5 }|j                  d¬«      j	                  |«      }| j                  |j                  «      rJ ‚	 d d d «       y # 1 sw Y   y xY w)NFr'   Trö   )rÝ   r   r~   r  r.   rØ   rÖ   )r;   rÌ   rP   r´   rH   s        r#   Ú&test_stmt_enabled_conn_option_disabledz<ServerSideCursorsTest.test_stmt_enabled_conn_option_disabled,  s�   € Ø—‘˜uÓ%ˆä�1‹I×'Ñ'°tÐ'Ó<ˆà�^‰^Óð 	; à×+Ñ+¸5Ð+ÓA×IÑIÈ!ÓLˆFØ×+Ñ+¨F¯M©MÔ:Ð:Ð:Ð:÷	;÷ 	;ñ 	;ús   ½?BÂBc                 ó˜  — | j                  d«      }t        t        j                  d«      j	                  d«      «      j                  d¬«      j                  «       }|j                  «       5 }|j                  |j                  «       «      }| j                  |j                  «      rJ ‚|j                  «        d d d «       t        d«      j                  |«      }|j                  «       5 }|j                  |«      }| j                  |j                  «      rJ ‚|j                  «        d d d «       y # 1 sw Y   Œ{xY w# 1 sw Y   y xY w)NFÚ1rK   Trö   r'   )rÝ   r   r   Úliteral_columnrF   r~   Úsubqueryr  r.   rØ   rÖ   r
  rƒ   )r;   rÌ   Ús1r´   rH   rQ   s         r#   Útest_aliases_and_ssz)ServerSideCursorsTest.test_aliases_and_ss6  s	  € Ø—‘˜uÓ%ˆä”3×%Ñ% cÓ*×0Ñ0°Ó5Ó6ßÑ¨dÐÓ3ß‰X‹Zð 	ð �\‰\‹^ð 	˜tØ—\‘\ "§)¡)£+Ó.ˆFØ×+Ñ+¨F¯M©MÔ:Ð:Ð:Ø�L‰LŒN÷	ô
 �A‹Y×"Ñ" 2Ó&ˆØ�\‰\‹^ð 	˜tØ—\‘\ "Ó%ˆFØ×+Ñ+¨F¯M©MÔ:Ð:Ð:Ø�L‰LŒN÷	ð 	÷	ð 	ú÷	ð 	ús   Á-AD4Ã,?E Ä4D=Å E	c                 óÌ  — | j                   }| j                  d«      }t        d|t        dt        dd¬«      t        dt        d«      «      «      }|j                  «       5 }|j                  |d¬«       |j                  |j                  «       t        d¬	«      «       |j                  |j                  «       t        d
¬	«      «       t        |j                  |j                  «       j                  |j                  j                  «      «      j!                  «       ddg«       |j                  |j#                  «       j%                  |j                  j                  dk(  «      j'                  |j                  j(                  dz   ¬	«      «       t        |j                  |j                  «       j                  |j                  j                  «      «      j!                  «       ddg«       |j                  |j+                  «       «       t        |j-                  t        t/        j0                  d«      «      j3                  |«      «      d«       d d d «       y # 1 sw Y   y xY w)NTÚ
test_tabler   ©r   Útest_needs_autoincrementr   r   ©Ú
checkfirstÚdata1©r   Údata2)r'   r   )r   r"  r   z updated)r   zdata2 updatedr|   r   )r"   rÝ   r	   r   r   r   r  Úcreater.   r0   Údictr   r   r7   r8   r   Úfetchallr²   r°   r³   r   ÚdeleteÚscalarr   Úcountrƒ   )r;   r"   ÚmdrÌ   r  r3   s         r#   Útest_roundtrip_fetchallz-ServerSideCursorsTest.test_roundtrip_fetchallJ  sã  € Ø�]‰]ˆà—‘˜tÓ$ˆÜØØÜØ”g¨4È$ôô �6œ6 "›:Ó&ó
ˆ
ð �\‰\‹^ð 	˜zØ×Ñ˜j°TÐÔ:Ø×Ñ˜z×0Ñ0Ó2´D¸gÔ4FÔGØ×Ñ˜z×0Ñ0Ó2´D¸gÔ4FÔGÜØ×"Ñ"Ø×%Ñ%Ó'×0Ñ0°·±·±ÓAóç‘(“*Ø˜|Ð,ô	ð ×ÑØ×!Ñ!Ó#ß‘�z—|‘|—‘¨!Ñ+Ó,ß‘˜ZŸ\™\×.Ñ.°Ñ;�Ó<ôô
 Ø×"Ñ"Ø×%Ñ%Ó'×0Ñ0°·±·±ÓAóç‘(“*ØÐ3Ð4ô	ð ×Ñ˜z×0Ñ0Ó2Ô3ÜØ×!Ñ!Üœ4Ÿ:™: c›?Ó+×7Ñ7¸
ÓCóð ô	÷-	÷ 	ñ 	ús   Á G1IÉI#c                 ó–  — | j                   }| j                  d«      }t        d|t        dt        dd¬«      t        dt        d«      «      «      }|j                  «       5 }|j                  |d¬«       |j                  |j                  «       t        dd	«      D �cg c]  }t        d
|z  ¬«      ‘Œ c}«       |j                  |j                  «       j                  |j                  j                  «      «      }t!        |j#                  d«      t        dd«      D �cg c]	  }|d
|z  f‘Œ c}«       t!        |j#                  d«      t        dd«      D �cg c]	  }|d
|z  f‘Œ c}«       t!        |j%                  «       t        dd	«      D �cg c]	  }|d
|z  f‘Œ c}«       d d d «       y c c}w c c}w c c}w c c}w # 1 sw Y   y xY w)NTr  r   r  r   r   r  r'   é   zdata%dr!  r,   re   rŸ   é   )r"   rÝ   r	   r   r   r   r  r#  r.   r0   Úranger$  r   r7   r8   r   r   Ú	fetchmanyr%  )r;   r"   r)  rÌ   r  r3   ÚirH   s           r#   Útest_roundtrip_fetchmanyz.ServerSideCursorsTest.test_roundtrip_fetchmanyt  s›  € Ø�]‰]ˆà—‘˜tÓ$ˆÜØØÜØ”g¨4È$ôô �6œ6 "›:Ó&ó
ˆ
ð �\‰\‹^ð 	O˜zØ×Ñ˜j°TÐÔ:Ø×ÑØ×!Ñ!Ó#Ü27¸¸2³,Ö?¨Q”˜8 a™<Ö(Ò?ôð
  ×'Ñ'Ø×!Ñ!Ó#×,Ñ,¨Z¯\©\¯_©_Ó=óˆFô Ø× Ñ  Ó#Ü,1°!°Q«KÖ8 q�!�X ‘\Ò"Ò8ôô Ø× Ñ  Ó$Ü,1°!°R«LÖ9 q�!�X ‘\Ò"Ò9ôô �—‘Ó!¼uÀRÈ»}Ö#M¸! Q¨°1©Ò$5Ò#MÔN÷'	Oð 	Oùò @ùò 9ùò :ùâ#M÷'	Oð 	OúsC   Á <F?ÂF+Â2A,F?ÄF0Ä,*F?ÅF5Å$)F?ÆF:ÆF?Æ+F?Æ?GN)rS   rT   rU   r¶   rV   rØ   rÝ   ré   r   Úcombinationsr   r~   Úwith_for_updateÚskip_ifr  r  r  r  r*  r1  rY   r%   r#   r¹   r¹   •  s[  „ ð ,€Là€Kòò8ò"
ð
 €W×ÑØ	˜$Ñ GÈÐNàØÙ9Øð		
ð 
˜™f Q›i¨Ð.à!ØÙ9Øð		
ð ØÙ�1‹I×'Ñ'°tÐ'Ó<Øð		
ð #ØÙ�1‹I×'Ñ'°uÐ'Ó=Øð		
ð 
˜D¡&¨£)×";Ñ";Ó"=¸tÐDð  ØÙ>ØØˆG�O‰O˜X wÐ/Ó0ð	
ð ØÙ:Øð		
ð Øñð ð	
ð Ø=ôg4ñjók4ðjò"ò0;òò((óT Or%   r¹   )r1   rå   Ú r   r   Ú
assertionsr   Úconfigr   Úschemar   r	   r   r   r   r   r   r   r   r   r   Ú
TablesTestr   r[   r’   ÚTestBaseÚAssertsExecutionResultsr¹   rY   r%   r#   ú<module>r<     sš   ðó Û 	å Ý Ý Ý !Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý ô[E�8×&Ñ&ô [Eô|X˜(×-Ñ-ô Xôv|
˜X×0Ñ0ô |
ô~OØ×Ñ�w×6Ñ6õOr%   