Ë
    ðmxi£/  ã                  ó  — d dl m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  ej(                  «        G d„ d«      «       Zda G d„ d«      Zy)é    )ÚannotationsNé   )Ú
assertions)Úconfig)Úeq_)Údrop_all_tables_from_metadata)Úpicklersé   )ÚColumn)Úfunc)ÚInteger)Úselect)ÚTable)ÚDeclarativeBase)ÚMappedAsDataclass)Úregistryc                  ó  — e Zd ZdZdZdZdZdZdd„Z e	j                  «       d„ «       Z e	j                  «       d„ «       Z e	j                  «       d„ «       Z e	j                  «       d„ «       Z e	j                  «       d	„ «       Ze	j                  d
„ «       Ze	j                  d„ «       Z e	j                  «       d„ «       Z e	j                  «       d„ «       Z e	j                  «       d„ «       Z e	j                  «       d„ «       Z e	j                   e«       ¬«      d„ «       Z e	j                  «       d„ «       Z e	j                  dD � ���cg c]  }dD ]  }dD ]  }|||f‘Œ	 Œ Œ c}}}} ¬«      d„ «       Zyc c}}}} w )ÚTestBase© NFc                ó   — |sJ |«       ‚y ©Nr   )ÚselfÚvalÚmsgs      úW/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/testing/fixtures/base.pyÚassert_zTestBase.assert_1   s   € Ùˆ�C‹‰só    c              #  óœ   K  — t         j                  j                  }d t         j                  _        d –— |t         j                  _        y ­wr   )r   ÚdbÚ_compiled_cache)r   Ú_caches     r   ÚnocachezTestBase.nocache4   s0   è ø€ ä—‘×*Ñ*ˆØ$(Œ�	‰	Ô!ÛØ$*Œ�	‰	Õ!ùs   ‚A
Ac              #  óœ   K  — t        | dd «      xs t        j                  }|j                  «       5 }|–— d d d «       y # 1 sw Y   y xY w­w©NÚbind)Úgetattrr   r   Úconnect)r   ÚengÚconns      r   Úconnection_no_transzTestBase.connection_no_trans;   sA   è ø€ ä�d˜F DÓ)Ò6¬V¯Y©Yˆà�[‰[‹]ð 	˜dØŠJ÷	÷ 	ñ 	üs   ‚0A²A ·	AÁ A	ÁAc              #  óò   K  — t        | dd «      xs t        j                  }|j                  «       }|j	                  «       }|a|–— d a|j                  r|j                  «        |j                  «        y ­wr$   )	r&   r   r   r'   ÚbeginÚ_connection_fixture_connectionÚ	is_activeÚrollbackÚclose)r   r(   r)   Útranss       r   Ú
connectionzTestBase.connectionB   sb   è ø€ ô �d˜F DÓ)Ò6¬V¯Y©Yˆà�{‰{‹}ˆØ—
‘
“ˆà)-Ð&ØŠ
à)-Ð&à�?Š?Ø�N‰NÔð 	�
‰
�ùs   ‚A5A7c              #  óª   ‡‡K  — g Šg Šdˆˆfd„	}|–— ‰D ]  }	 |j                  «        Œ ‰D ]  }	 |j                  «        Œ y #  Y Œ3xY w#  Y Œ"xY w­w)Nc                óP   •— ‰j                  | «       |r‰j                  | «       y y r   )Úappend)ÚresultÚconsumeÚto_closeÚ
to_consumes     €€r   Úgoz/TestBase.close_result_when_finished.<locals>.go\   s%   ø€ Ø�O‰O˜FÔ#ÙØ×!Ñ! &Õ)ð r   )F)Úallr0   )r   r:   Úrr8   r9   s      @@r   Úclose_result_when_finishedz#TestBase.close_result_when_finishedW   sk   ùè ø€ àˆØˆ
ö	*ð
 ŠØò 	ˆAðØ—‘•ð	ð
 ò 	ˆAðØ—‘•	ñ	øðÙûðÙüs2   „AšAªA²AÁAÁA	ÁAÁAÁAc           
   #  óÈ   K  — t        |t        t        j                  «       j	                  t        j                  d«      ddd«      i¬«      }|–— |j                  «        y ­w)Né2   ÚmysqlÚmariadbÚoracle)ÚmetadataÚtype_annotation_map)r   ÚstrÚsaÚStringÚwith_variantÚdispose)r   rC   Úregs      r   r   zTestBase.registrym   sO   è ø€ äØä”R—Y‘Y“[×-Ñ-Ü—I‘I˜b“M 7¨I°xóð!ô
ˆð Š	Ø�‰�ùs   ‚A A"c              #  óp   ‡K  — |Š G ˆfd„dt         «      }|–— |j                  j                  «        y ­w)Nc                  ó~   •— e Zd ZW ° Ze ej                  «       j                   ej                  d«      ddd«      iZy)ú TestBase.decl_base.<locals>.Baser?   r@   rA   rB   N©	Ú__name__Ú
__module__Ú__qualname__rC   rE   rF   rG   rH   rD   ©Ú_mds   €r   ÚBaserM   ~   s;   ø„ ÙˆHà�Y�R—Y‘Y“[×-Ñ-Ø�B—I‘I˜b“M 7¨I°xóð#Ñr   rT   )r   r   rI   ©r   rC   rT   rS   s      @r   Ú	decl_basezTestBase.decl_basez   s/   øè ø€ àˆö	”?ô 	ð Š
Ø�‰×ÑÕùs   ƒ36c              #  óz   ‡K  — |Š G ˆfd„dt         t        «      }|–— |j                  j                  «        y ­w)Nc                  ó|   •— e Zd ZW ° Ze ej                  «       j                   ej                  d«      dd«      iZy)ú#TestBase.dc_decl_base.<locals>.Baser?   r@   rA   NrN   rR   s   €r   rT   rY   �   s9   ø„ ÙˆHà�Y�R—Y‘Y“[×-Ñ-Ø�B—I‘I˜b“M 7¨Ióð#Ñr   rT   )r   r   r   rI   rU   s      @r   Údc_decl_basezTestBase.dc_decl_base‰   s2   øè ø€ àˆö	Ô$¤oô 	ð Š
Ø�‰×ÑÕùs   ƒ8;c              #  ó   K  — |–— y ­wr   r   )r   Úfuture_enginer2   s      r   Úfuture_connectionzTestBase.future_connection˜   s   è ø€ ð
 Óùó   ‚c              #  ó   K  — d –— y ­wr   r   )r   s    r   r\   zTestBase.future_engineŸ   s	   è ø€ äùr^   c              #  ój   ‡K  — ddl mŠ 	 	 	 dˆfd„	}|–— ‰j                  j                  d«       y ­w)Nr   )Úenginesc                ó>   •— |€i }d|d<   ‰j                  | ||¬«      S )NÚfixtureÚscope)ÚurlÚoptionsÚasyncio)Útesting_engine)re   rf   rg   ra   s      €r   Úgen_testing_enginez3TestBase.testing_engine.<locals>.gen_testing_engine§   s:   ø€ ð
 ˆØ�Ø(ˆG�GÑØ×)Ñ)ØØØð *ó ð r   rc   )NNF)Ú ra   Útesting_reaperÚ_drop_testing_engines)r   ri   ra   s     @r   rh   zTestBase.testing_engine£   s6   øè ø€ åð ØØõ	ð !Ò à×Ñ×4Ñ4°YÕ?ùs   ƒ03c                ó   ‡— ˆfd„}|S )Nc                 ó   •— d| d<    ‰di | ¤ŽS )NTrg   r   r   )Úkwrh   s    €r   r:   z)TestBase.async_testing_engine.<locals>.go»   s   ø€ Ø ˆBˆy‰MÙ!Ñ' BÑ'Ð'r   r   )r   rh   r:   s    ` r   Úasync_testing_enginezTestBase.async_testing_engine¹   s   ø€ ô	(ð ˆ	r   )Úparamsc              #  ó(   K  — |j                   –— y ­wr   )Úparam)r   Úrequests     r   r	   zTestBase.picklersÁ   s   è ø€ à�m‰mÓùs   ‚c              #  óž  K  — ddl m} |j                  «       }||j                  _        |–— |j                  `t
        rft
        j                  «       rRt
        j                  «       }|j                  «        t
        j                  «       5  t        |t
        «       ddd«       yt        |t        j                  «       y# 1 sw Y   yxY w­w)z>Provide bound MetaData for a single test, dropping afterwards.r
   )ÚschemaN)Úsqlrv   ÚMetaDataÚinstancerC   r-   Úin_transactionÚget_transactionr/   r,   r   r   r   )r   rt   rv   rC   r1   s        r   rC   zTestBase.metadataÅ   s¢   è ø€ õ 	"à—?‘?Ó$ˆØ$,ˆ×ÑÔ!ØŠØ×ÑÐ%õ +Ü.×=Ñ=Ô?ä2×BÑBÓDˆEØ�N‰NÔÜ/×5Ñ5Ó7ñ Ü-ØÔ<ô÷ð ô
 *¨(´F·I±IÕ>÷ð üs   ‚B
CÂCÂ$CÃC
ÃC)TF)ÚnoneÚexecuter,   c                óÔ   ‡‡‡‡— |j                   \  ŠŠŠt        d|t        dt        «      «      Št	        | dd «      xs t
        j                  }‰j                  |«       ˆˆˆˆfd„}|S )NÚtestÚdatar%   c           	     ó¦  •— | j                  «       5 }‰�rÌt        j                  j                  j                  st        j
                  d«       |r| j                  «       }n|j                  «       }|5  |r#| j                  ‰
j                  «       ddi«       n"|j                  ‰
j                  «       ddi«       ‰r|j                  «        n|j                  «        ‰	dk7  r¬t        j                  t        j                  j                  d«      5  ‰	dk(  rH|r#| j                  ‰
j                  «       ddi«       nK|j                  ‰
j                  «       ddi«       n(‰	dk(  r#|r| j                  «        n|j                  «        d d d «       d d d «       |r$| j                  ‰
j                  «       dd	i«       �n˜|j                  ‰
j                  «       dd	i«       �nt|r#| j                  ‰
j                  «       ddi«       n"|j                  ‰
j                  «       ddi«       |r$‰r| j                  «        n4| j                  «        n#‰r|j                  «        n|j                  «        ‰	dk7  rßt        j                  t        j                  j                  d«      5  ‰	dk(  rH|r#| j                  ‰
j                  «       ddi«       n~|j                  ‰
j                  «       ddi«       n[‰	dk(  r.t!        |d«      r|j                  «        n9| j                  «        n(‰	d
k(  r#|r| j                  «        n|j                  «        d d d «       d d d «       d}‰r|dz  }‰s|dz  }|rFt#        | j%                  t'        t)        j*                  «       «      j-                  ‰
«      «      |«       y | j/                  «       5 }t#        |j%                  t'        t)        j*                  «       «      j-                  ‰
«      «      |«       d d d «       y # 1 sw Y   �Œ�xY w# 1 sw Y   �Œ”xY w# 1 sw Y   ŒâxY w# 1 sw Y   ŒæxY w# 1 sw Y   y xY w)Nzsavepoints not enabledr€   é
   r|   z‚Can't operate on closed transaction inside context manager.  Please complete the context manager before emitting further commands.r}   é   r,   é   Úbegin_nestedr   é   )r,   r   ÚrequirementsÚ
savepointsÚenabledÚ	skip_testr…   r}   Úinsertr/   Úcommitr   Úexpect_raises_messagerF   ÚexcÚInvalidRequestErrorÚhasattrr   Úscalarr   r   ÚcountÚselect_fromr'   )ÚsubjectÚtrans_on_subjectÚexecute_on_subjectr1   Únested_transÚexpected_committedr)   r…   r/   Úsecond_operationÚts          €€€€r   Úrun_testz4TestBase.trans_ctx_manager_fixture.<locals>.run_testð   sŠ  ø€ Ø—‘“ð ^9 EÚÜ!×.Ñ.×9Ñ9×AÒAÜ×(Ñ(Ð)AÔBÙ)Ø'.×';Ñ';Ó'=™à',×'9Ñ'9Ó';˜à%ñ $=Ù-Ø#ŸO™O¨A¯H©H«J¸À¸ÕEà!ŸM™M¨!¯(©(«*°v¸r°lÔCñ $Ø(×1Ñ1Õ3à(×/Ñ/Ô1à+¨vÒ5Ü!+×!AÑ!AÜ "§¡× :Ñ :ð!Dó"ñ =ð $4°yÒ#@Ù'9Ø(/¯©Ø,-¯H©H«J¸À¸õ)*ð ).¯©°a·h±h³jÀ6È2À,Õ(OØ%5¸Ò%@Ù'9Ø(/×(<Ñ(<Õ(>à(-×(:Ñ(:Ô(<÷'=÷#$=ñR *ØŸ™¨¯©«
°V¸R°LÖAàŸ™ a§h¡h£j°6¸2°,Ö?ñ *ØŸ™¨¯©«
°V¸R°LÕAàŸ™ a§h¡h£j°6¸2°,Ô?á'Ù#Ø#×,Ñ,Õ.à#ŸN™NÕ,á#Ø!ŸN™NÕ,à!ŸL™LœNà'¨6Ò1Ü'×=Ñ=ÜŸF™F×6Ñ6ð@óñ 9ð  0°9Ò<Ù#5Ø$+§O¡O°A·H±H³JÀÈÀÕ$Mà$)§M¡M°!·(±(³*¸vÀr¸lÕ$KØ!1°WÒ!<Ü#*¨5°'Ô#:Ø$)§K¡K¥Mà$+§M¡M¥OØ!1°^Ò!CÙ#5Ø$+×$8Ñ$8Õ$:à$)×$6Ñ$6Ô$8÷+9÷S^9ð@ "#ÐÙð # aÑ'Ð"Ùð # aÑ'Ð"á!ÜØ—N‘N¤6¬$¯*©*«,Ó#7×#CÑ#CÀAÓ#FÓGØ&õð
 —_‘_Ó&ð ¨$ÜØŸ™¤F¬4¯:©:«<Ó$8×$DÑ$DÀQÓ$GÓHØ*ô÷ð ÷m=ñ =ú÷#$=ñ $=ú÷@9ð 9ú÷S^9ð ^9ú÷`ð úse   ’A"P;Á4BP"ÄA6PÆP"ÆDP;Ê%B)P/ÍP;ÏAQÐPÐP"Ð"P,	Ð'P;Ð/P8	Ð4P;Ð;QÑQ)rs   r   r   r   r&   r   r   Úcreate)	r   rt   rC   r(   r›   r…   r/   r™   rš   s	        @@@@r   Útrans_ctx_manager_fixturez"TestBase.trans_ctx_manager_fixtureÝ   s[   û€ ð 4;·=±=Ñ0ˆÐ" Lä�&˜(¤F¨6´7Ó$;Ó<ˆÜ�d˜F DÓ)Ò6¬V¯Y©Yˆà	�‰�Œ÷u	ðn ˆr   r   )rO   rP   rQ   Ú__requires__Ú__unsupported_on__Ú__only_on__Ú__skip_if__Ú"__leave_connections_for_teardown__r   r   rc   r"   r*   r2   r=   r   rV   rZ   r]   r\   rh   rp   r	   rC   r�   )Ú.0r/   r™   r…   s   0000r   r   r      s  „ ð €Lð Ðð €Kð €Kð
 */Ð&óð €V‡^�^Óñ+ó ð+ð €V‡^�^Óñó ðð €V‡^�^Óñó ðð( €V‡^�^Óñó ðð* €V‡^�^Óñ
ó ð
ð ‡^�^ñ ó ð ð ‡^�^ñ ó ð ð €V‡^�^Óñó ðð €V‡^�^Óñó ðð €V‡^�^Óñ@ó ð@ð* €V‡^�^Óñó ðð €V‡^�^™8›:Ô&ñó 'ðð €V‡^�^Óñ?ó ð?ð. €V‡^�^ð *÷
ñ 
àØ$@ò
ð !ð!ò	
ð ð Ð'¨Ò6ð
Ø6ð
Ø6õ
ô
ñó
ñùõ
s   ÅE:r   c                  ó   — e Zd ZdZy)ÚFutureEngineMixinz alembic's suite still using thisN)rO   rP   rQ   Ú__doc__r   r   r   r¥   r¥   m  s   „ Ú*r   r¥   )Ú
__future__r   Ú
sqlalchemyrF   rj   r   r   r   Úutilr   r	   r   r   r   r   r   Úormr   r   r   Úmark_base_test_classr   r-   r¥   r   r   r   ú<module>r¬      sn   ðõ #ã Ý Ý Ý Ý 0Ý Ý Ý Ý Ý Ý Ý "Ý $Ý ð €×ÑÓ÷Jð Jó ðJðZ
 "&Ð ÷+ò +r   