
    	ha0                       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dS )    )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D                       d             ZdS )TestBase NFc                    |s
J |            d S Nr   )selfvalmsgs      m/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/sqlalchemy/testing/fixtures/base.pyassert_zTestBase.assert_1   s    Cs    c              #  x   K   t           j        j        }d t           j        _        d V  |t           j        _        d S r   )r   db_compiled_cache)r   _caches     r   nocachezTestBase.nocache4   s3      *$(	!$*	!!!r   c              #     K   t          | dd           pt          j        }|                                5 }|V  d d d            d S # 1 swxY w Y   d S Nbind)getattrr   r   connect)r   engconns      r   connection_no_transzTestBase.connection_no_trans;   s      dFD))6VY[[]] 	dJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA
A
c              #    K   t          | dd           pt          j        }|                                }|                                }|a|V  d a|j        r|                                 |                                 d S r$   )	r&   r   r   r'   begin_connection_fixture_connection	is_activerollbackclose)r   r(   r)   transs       r   
connectionzTestBase.connectionB   s|       dFD))6VY{{}}

)-&


)-&? 	NN 	

r   c              #     K   g g dfd	}|V  D ]}	 |                                  #  Y xY wD ]}	 |                                 #  Y xY wd S )NFc                d                         |            |r                     |            d S d S r   )append)resultconsumeto_close
to_consumes     r   goz/TestBase.close_result_when_finished.<locals>.go\   sA    OOF### *!!&)))))* *r   )F)allr0   )r   r:   rr8   r9   s      @@r   close_result_when_finishedz#TestBase.close_result_when_finishedW   s      
	* 	* 	* 	* 	* 	* 	*
  	 	A 	 	A						 	s   .2AAc           
   #     K   t          |t          t          j                                        t          j        d          ddd          i          }|V  |                                 d S )N2   mysqlmariadboracle)metadatatype_annotation_map)r   strsaStringwith_variantdispose)r   rC   regs      r   r   zTestBase.registrym   sj      RY[[--IbMM7Ix !
 
 
 			r   c              #  t   K   | G fddt                     }|V  |j                                         d S )Nc                  ~    e Zd Z Ze ej                                         ej        d          ddd          iZdS ) TestBase.decl_base.<locals>.Baser?   r@   rA   rB   N	__name__
__module____qualname__rC   rE   rF   rG   rH   rD   _mds   r   BaserM   ~   sN        HYRY[[--BIbMM7Ix #r   rT   )r   r   rI   r   rC   rT   rS   s      @r   	decl_basezTestBase.decl_basez   se      	 	 	 	 	 	 	? 	 	 	 


r   c              #     K   | G fddt           t                    }|V  |j                                         d S )Nc                  |    e Zd Z Ze ej                                         ej        d          dd          iZdS )#TestBase.dc_decl_base.<locals>.Baser?   r@   rA   NrN   rR   s   r   rT   rY      sL        HYRY[[--BIbMM7I #r   rT   )r   r   r   rI   rU   s      @r   dc_decl_basezTestBase.dc_decl_base   sh      	 	 	 	 	 	 	$o 	 	 	 


r   c              #     K   |V  d S r   r   )r   future_enginer2   s      r   future_connectionzTestBase.future_connection   s      
 r   c              #     K   d V  d S r   r   )r   s    r   r\   zTestBase.future_engine   s      r   c              #  l   K   ddl m 	 	 	 	 	 	 dfd	}|V  j                            d           d S )Nr   )enginesFc                J    |i }d|d<                        | ||||          S )Nfixturescope)urloptionsasynciotransfer_staticpool
share_pool)testing_engine)rd   re   futurerf   rg   rh   r`   s         r   gen_testing_enginez3TestBase.testing_engine.<locals>.gen_testing_engine   sE     (GG))$7% *   r   rb   )NNNFFF) r`   testing_reaper_drop_testing_engines)r   rk   r`   s     @r   ri   zTestBase.testing_engine   sv        %	 	 	 	 	 	& !   44Y?????r   c                    fd}|S )Nc                     d| d<    di | S )NTrf   r   r   )kwri   s    r   r:   z)TestBase.async_testing_engine.<locals>.go   s"     ByM!>''B'''r   r   )r   ri   r:   s    ` r   async_testing_enginezTestBase.async_testing_engine   s#    	( 	( 	( 	( 	( 	r   )paramsc              #     K   |j         V  d S r   )param)r   requests     r   r	   zTestBase.picklers   s      mr   c              #    K   ddl m} |                                }||j        _        |V  |j        `t
          rt
                                          rvt
                                          }|                                 t
          	                                5  t          |t
                     ddd           dS # 1 swxY w Y   dS t          |t          j                   dS )z>Provide bound MetaData for a single test, dropping afterwards.r
   )schemaN)sqlrx   MetaDatainstancerC   r-   in_transactionget_transactionr/   r,   r   r   r   )r   rv   rx   rC   r1   s        r   rC   zTestBase.metadata   s/      	"!!!!!??$$$,!% +	?.==??	? 3BBDDENN/5577  -<                   
 *(FI>>>>>s   B==CCc                ,    g | ]}d D ]}dD ]}|||fS ))noneexecuter,   TFr   ).0r/   second_operationbegin_nesteds       r   
<listcomp>zTestBase.<listcomp>   s`     
 
 
$@
 
 !!	
 
  '6
 
 
 
 
r   r   c                    |j         \  t          d|t          dt                              t	          | dd           pt
          j        }                    |           fd}|S )Ntestdatar%   c           	     	   |                                  5 }rt          j        j        j        st          j        d           |r|                                 }n|                                }|5  |r+|                     
                                ddi           n*|                    
                                ddi           r|	                                 n|
                                 	dk    rt          j        t          j        j        d          5  	dk    rX|r+|                     
                                ddi           n\|                    
                                ddi           n1	dk    r+|r|                                  n|                                 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |r,|                     
                                dd	i           n|                    
                                dd	i           n|r+|                     
                                ddi           n*|                    
                                ddi           |r,r| 	                                 n@| 
                                 n+r|	                                 n|
                                 	dk    rt          j        t          j        j        d          5  	dk    rX|r+|                     
                                ddi           n|                    
                                ddi           nq	dk    r:t!          |d          r|                                  nF|                                   n1	d
k    r+|r|                                  n|                                 d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d}r|dz  }s|dz  }|rVt#          |                     t'          t)          j                                                  
                    |           d S |                                 5 }t#          |                    t'          t)          j                                                  
                    |           d d d            d S # 1 swxY w Y   d S )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,      r   r      )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/   r   ts          r   run_testz4TestBase.trans_ctx_manager_fixture.<locals>.run_test   sQ    ^9E ]9!.9A C()ABBB) <'.';';'='=','9'9';';% $= $=- D#OOAHHJJEEEE!MM!((**vrlCCC $ 2(113333(//111+v55!+!A " :!D" " = = $4y#@#@'9 %P(/,-HHJJ)* )* )* )* ).ahhjj62,(O(O(O(O%5%@%@'9 %=(/(<(<(>(>(>(>(-(:(:(<(<(<'= = = = = = = = = = = = = = =#$= $= $= $= $= $= $= $= $= $= $= $= $= $= $=R * @

VRLAAAAahhjj62,???? * @

VRLAAAAahhjj62,???' 	+# -#,,....#NN,,,,# +!NN,,,,!LLNNN'611'=F6@  9 9  09<<#5 !L$+OOAHHJJ$M$M$M$M$)MM!((**vrl$K$K$K$K!1W!<!<#*5'#:#: !4$)KKMMMM$+MMOOOO!1^!C!C#5 !9$+$8$8$:$:$:$:$)$6$6$8$8$8+9 9 9 9 9 9 9 9 9 9 9 9 9 9 9S^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9 ^9@ "# ( #a'" ( #a'"! 
NN6$*,,#7#7#C#CA#F#FGG&    
 __&& $F4:<<$8$8$D$DQ$G$GHH*                   s   AP1B-GBF:.G:F>>GF>GPG	PG	D8PCO-!P-O1	1P4O1	5PPPAS--S14S1)ru   r   r   r   r&   r   r   create)	r   rv   rC   r(   r   r   r/   r   r   s	        @@@@r   trans_ctx_manager_fixturez"TestBase.trans_ctx_manager_fixture   s     4;=0"L&(F67$;$;<<dFD))6VY	u	 u	 u	 u	 u	 u	 u	 u	n r   r   )rO   rP   rQ   __requires____unsupported_on____only_on____skip_if__"__leave_connections_for_teardown__r   r   rb   r"   r*   r2   r=   r   rV   rZ   r]   r\   ri   rr   r	   rC   r   r   r   r   r   r      s        L  K K
 */&    V^+ + + V^   V^  ( V^  * V^
 
 
 ^    ^  ^    ^  V^   V^   V^@ @ @4 V^   V^88::&&&  '& V^? ? ?. V^
 
)
 
 

 
 
 
 
  r   r   c                      e Zd ZdZdS )FutureEngineMixinz alembic's suite still using thisN)rO   rP   rQ   __doc__r   r   r   r   r   r  s        ****r   r   )
__future__r   
sqlalchemyrF   rl   r   r   r   utilr   r	   r   r   r   r   r   ormr   r   r   mark_base_test_classr   r-   r   r   r   r   <module>r      s   # " " " " "                       0 0 0 0 0 0                                     " " " " " " $ $ $ $ $ $       O O O O O O O Od
 "& + + + + + + + + + +r   