
    3j2                        S SK Jr  S SKJr  S SKJr  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  \	R.                  " 5        " S S5      5       rSq " S S5      rg)    )annotations)Callable)SequenceN   )
assertions)config)eq_)drop_all_tables_from_metadata)picklers   )Column)func)Integer)select)Table)DeclarativeBase)MappedAsDataclassregistryc                  ~   \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS	\S
'   Sr	S\S'   S\S'   S"S jr
\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  S 5       r\R                  S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " \" 5       S9S 5       r\R                  " 5       S 5       r\R                  " 5       S 5       r\R                  " S V VVVs/ s H  nS   H  nS  H  nXU4PM	     M     M     snnnn S9S! 5       rSrgs  snnnn f )#TestBase    ztuple[str, ...]__requires____unsupported_on__Nztuple[str, ...] | str | None__only_on__z#Sequence[Callable[[], bool]] | None__skip_if__Fbool"__leave_connections_for_teardown____backend__c                     U(       d   U5       eg Nr   )selfvalmsgs      Z/home/wildlama/miniconda3/lib/python3.13/site-packages/sqlalchemy/testing/fixtures/base.pyassert_TestBase.assert_6   s    Cs    c              #     #    [         R                  R                  nS [         R                  l        S v   U[         R                  l        g 7fr"   )r   db_compiled_cache)r#   _caches     r&   nocacheTestBase.nocache9   s/     **$(		!$*		!s   A
Ac              #     #    [        U SS 5      =(       d    [        R                  nUR                  5        nUv   S S S 5        g ! , (       d  f       g = f7fNbind)getattrr   r+   connect)r#   engconns      r&   connection_no_transTestBase.connection_no_trans@   s5     dFD)6VYY[[]dJ ]]s   5AA	A
AAc              #    #    [        U SS 5      =(       d    [        R                  nUR                  5       nUR	                  5       nUqUv   S qUR                  (       a  UR                  5         UR                  5         g 7fr1   )	r3   r   r+   r4   begin_connection_fixture_connection	is_activerollbackclose)r#   r5   r6   transs       r&   
connectionTestBase.connectionG   sa      dFD)6VYY{{}

)-&
)-&??NN 	

s   A?Bc              #     ^^#    / m/ mSUU4S jjnUv   T H  n UR                  5         M     T H  n UR                  5         M     g !    M8  = f!    M&  = f7f)Nc                Z   > TR                  U 5        U(       a  TR                  U 5        g g r"   )append)resultconsumeto_close
to_consumes     r&   go/TestBase.close_result_when_finished.<locals>.goa   s%    OOF#!!&) r)   )F)allr>   )r#   rI   rrG   rH   s      @@r&   close_result_when_finished#TestBase.close_result_when_finished\   se     
	* 	*
 A 
 A	 s2   AA	AAAAAAAc           
   #     #    [        U[        [        R                  " 5       R	                  [        R                  " S5      SSS5      0S9nUv   UR                  5         g 7f)N2   mysqlmariadboracle)metadatatype_annotation_map)r   strsaStringwith_variantdispose)r#   rT   regs      r&   r   TestBase.registryr   sN     RYY[--IIbM7Ix!
 	s   AA!c              #  r   ^#    Um " U4S jS[         5      nUv   UR                  R                  5         g 7f)Nc                     > \ rS rSr Y r\\R                  " 5       R                  \R                  " S5      SSS5      0r	Sr
g) TestBase.decl_base.<locals>.Base   rP   rQ   rR   rS   r   N__name__
__module____qualname____firstlineno__rT   rV   rW   rX   rY   rU   __static_attributes___mds   r&   Baser_      s7    HRYY[--IIbM7Ix#r)   ri   )r   r   rZ   r#   rT   ri   rh   s      @r&   	decl_baseTestBase.decl_base   s.     	? 	 
s   47c              #  |   ^#    Um " U4S jS[         [        5      nUv   UR                  R                  5         g 7f)Nc                     > \ rS rSr Y r\\R                  " 5       R                  \R                  " S5      SS5      0r	Sr
g)#TestBase.dc_decl_base.<locals>.Base   rP   rQ   rR   r   Nra   rg   s   r&   ri   ro      s5    HRYY[--IIbM7I#r)   ri   )r   r   r   rZ   rj   s      @r&   dc_decl_baseTestBase.dc_decl_base   s1     	$o 	 
s   9<c              #     #    Uv   g 7fr"   r   )r#   future_enginer@   s      r&   future_connectionTestBase.future_connection   s     
    c              #     #    S v   g 7fr"   r   )r#   s    r&   rt   TestBase.future_engine   s     rw   c              #  n   ^#    SSK Jm     SU4S jjnUv   TR                  R                  S5        g 7f)Nr   )enginesc                :   > Uc  0 nSUS'   TR                  U UUS9$ )Nfixturescope)urloptionsasyncio)testing_engine)r   r   r   r{   s      r&   gen_testing_engine3TestBase.testing_engine.<locals>.gen_testing_engine   s:    
 (GG)) *  r)   r}   )NNF) r{   testing_reaper_drop_testing_engines)r#   r   r{   s     @r&   r   TestBase.testing_engine   s5      	 ! 44Y?s   25c                   ^ U4S jnU$ )Nc                    > SU S'   T" S0 U D6$ )NTr   r   r   )kwr   s    r&   rI   )TestBase.async_testing_engine.<locals>.go   s     ByM!'B''r)   r   )r#   r   rI   s    ` r&   async_testing_engineTestBase.async_testing_engine   s    	( 	r)   )paramsc              #  (   #    UR                   v   g 7fr"   )param)r#   requests     r&   r   TestBase.picklers   s     mms   c              #    #    SSK Jn  UR                  5       nX1R                  l        Uv   UR                  ?[
        (       ak  [
        R                  5       (       aR  [
        R                  5       nUR                  5         [
        R                  5          [        U[
        5        SSS5        g[        U[        R                  5        g! , (       d  f       g= f7f)z>Provide bound MetaData for a single test, dropping afterwards.r   )schemaN)sqlr   MetaDatainstancerT   r;   in_transactionget_transactionr=   r:   r
   r   r+   )r#   r   r   rT   r?   s        r&   rT   TestBase.metadata   s      	"??$$,!% +*.==??2BBDENN/557-< 87
 *(FII> 87s   BCC
&$C

CCc              #  Z   ^^#    SSK Jm  S mUU4S jnUv   Tc   eTR                  T	 g 7f)Nr   r   c                Z   > U R                   mT(       d   S5       eU TR                  T'   U $ )Nzname is required)nameimpls)dialect_clsr   r   s    r&   rI   'TestBase.thirdparty_dialect.<locals>.go   s0    ##D+++4#.HNN4 r)   )dialectsr   r   )r#   rI   r   r   s     @@r&   thirdparty_dialectTestBase.thirdparty_dialect   s2     (	 NN4 s   '+)TF)noneexecuter:   c                   ^^^^ UR                   u  mmm[        SU[        S[        5      5      m[	        U SS 5      =(       d    [
        R                  nTR                  U5        UUUU4S jnU$ )Ntestdatar2   c           	     	  > U R                  5        nT(       Ga  [        R                  R                  R                  (       d  [        R
                  " S5        U(       a  U R                  5       nOUR                  5       nU   U(       a#  U R                  T
R                  5       SS05        O"UR                  T
R                  5       SS05        T(       a  UR                  5         OUR                  5         T	S:w  a  [        R                  " [        R                  R                  S5         T	S:X  aM  U(       a#  U R                  T
R                  5       SS05        OQUR                  T
R                  5       SS05        O.T	S:X  a(  U(       a  U R                  5         OUR                  5         S S S 5        S S S 5        U(       a$  U R                  T
R                  5       SS	05        GOUR                  T
R                  5       SS	05        GOU(       a#  U R                  T
R                  5       SS05        O"UR                  T
R                  5       SS05        U(       a)  T(       a  U R                  5         O9U R                  5         O(T(       a  UR                  5         OUR                  5         T	S:w  a  [        R                  " [        R                  R                  S5         T	S:X  aM  U(       a#  U R                  T
R                  5       SS05        OUR                  T
R                  5       SS05        OgT	S:X  a3  [!        US5      (       a  UR                  5         O?U R                  5         O.T	S
:X  a(  U(       a  U R                  5         OUR                  5         S S S 5        S S S 5        SnT(       a  US-  nT(       d  US-  nU(       aG  [#        U R%                  ['        [(        R*                  " 5       5      R-                  T
5      5      U5        g U R/                  5        n[#        UR%                  ['        [(        R*                  " 5       5      R-                  T
5      5      U5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       g = f)Nzsavepoints not enabledr   
   r   zCan'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_messagerW   excInvalidRequestErrorhasattrr	   scalarr   r   countselect_fromr4   )subjecttrans_on_subjectexecute_on_subjectr?   nested_transexpected_committedr6   r   r=   second_operationts          r&   run_test4TestBase.trans_ctx_manager_fixture.<locals>.run_test  sf   E!..99AA(()AB)'.';';'=','9'9';%-#OOAHHJE!MM!((*vrlC $(113(//1+v5!+!A!A " : :!D" $4y#@'9(/,-HHJ)* ).ahhj62,(O%5%@'9(/(<(<(>(-(:(:(<'"# &R *
VRLAahhj62,? *
VRLAahhj62,?'##,,.#NN,#!NN,!LLN'61'==FF66@  09<#5$+OOAHHJ$M$)MM!((*vrl$K!1W!<#*5'#:#:$)KKM$+MMO!1^!C#5$+$8$8$:$)$6$6$8+S !@ "# #a'" #a'"!NN6$**,#7#C#CA#FG&
 __&$F4::<$8$D$DQ$GH* '&m" "# &@ S !` '&se   A2R1B*R.BQ;0R8D0R1(B;R#R1+AS;
R
R
R	R1
R.	)R11
S 
S)r   r   r   r   r3   r   r+   create)	r#   r   rT   r5   r   r   r=   r   r   s	        @@@@r&   trans_ctx_manager_fixture"TestBase.trans_ctx_manager_fixture   sa     4;==0"L&(F67$;<dFD)6VYY	u	 u	n r)   r"   )rb   rc   rd   re   r   __annotations__r   r   r   r   r'   r   r}   r.   r7   r@   rM   r   rk   rq   ru   rt   r   r   r   rT   r   r   rf   ).0r=   r   r   s   0000r&   r   r      s,    %'L/& +-, 15K-4 8<K4;
 05&4 ^^+ + ^^  ^^ ( ^^ * ^^
 
 ^^    ^^    ^^  ^^  ^^@ @* ^^  ^^8:& ' ^^? ?. ^^! !" ^^ *
)$@ ! 6! 7$@ 7)



s   "F7r   c                      \ rS rSrSrSrg)FutureEngineMixini  z alembic's suite still using thisr   N)rb   rc   rd   re   __doc__rf   r   r)   r&   r   r     s    *r)   r   )
__future__r   collections.abcr   r   
sqlalchemyrW   r   r   r   r	   utilr
   r   r   r   r   r   r   ormr   r   r   mark_base_test_classr   r;   r   r   r)   r&   <module>r      sr    # $ $     0       " $  ^ ^ ^B "& + +r)   