
    g$                    X   % S SK Jr  S SKrS SKJr  S SK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  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*  \RV                  " 5       r,\,R[                  S/5         " S S\5      r " S S \\5      r\)(       a  S S!KJ.r.  O
 " S" S#5      r.S$\.l/        S-S% jr00 r1S&\2S''   \S( 5       r3\S) 5       r4     S.S* jr5 " S+ S,5      r6g)/    )annotationsN)contextmanager)Any)Dict)Column)inspect)MetaData)String)Table)testing)text)config)mock)eq_)
TablesTest)TestBase   )_get_dialect   )EnvironmentContext)MigrationContext)
Operations)sqla_compatcreate_mock_engine)sqla_14)sqla_2ztest.cfgc                      \ rS rSr\r\R                  " 5       S 5       r\R                  S 5       r	\R                  S 5       r
\R                  S 5       rSrg)r   &   c              #  x   #    UR                  SS9   [        U5      v   S S S 5        g ! , (       d  f       g = f7f)NT)_per_migration)begin_transactionr   )selfmigration_contexts     `/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/alembic/testing/fixtures.pyops_contextTestBase.ops_context)   s.     000E.// FEEs   :)	:
7:c                :    [         R                  " U[        SS9S9$ )NT)transaction_per_migrationoptsr   	configuredictr#   
connections     r%   r$   TestBase.migration_context.   s    ))TDA
 	
    c                <    [         R                  " U[        SSS9S9$ )NT)r)   as_sqlr*   r,   r/   s     r%   as_sql_migration_context!TestBase.as_sql_migration_context4   s!    ))TDN
 	
r2   c              #     #    [         R                  R                  5        nUv   S S S 5        g ! , (       d  f       g = f7fN)r   dbconnect)r#   conns     r%   r0   TestBase.connection:   s'     YY DJ !  s   A /	A 
=A  N)__name__
__module____qualname____firstlineno__r   is_sqlalchemy_futurer   fixturer&   r$   r5   r0   __static_attributes__r=   r2   r%   r   r   &   si    !__0 0 __
 

 __
 

 __ r2   r   c                      \ rS rSrSrg)r   @   r=   N)r>   r?   r@   rA   rD   r=   r2   r%   r   r   @   s    r2   r   )FutureEngineMixinc                      \ rS rSrSrSrg)rG   H   )sqlalchemy_14r=   N)r>   r?   r@   rA   __requires__rD   r=   r2   r%   rG   rG   H   s    )r2   rG   Tc                6   ^^ / mUU4S jn[        X5      mTT4$ )Nc                h   > TR                  [        U R                  TR                  S95      5        g N)dialect)appendstrcompilerO   )sqlmultiparamsparamsbufengines      r%   dumpcapture_db.<locals>.dumpR   s#    

3s{{6>>{:;<r2   r   )rO   rX   rV   rW   s     @@r%   
capture_dbrZ   O   s#    
C=  .F3;r2   zDict[Any, Any]_engsc               +  p  ^ ^#    T R                  SS5      (       a  [        R                  " 5       nO[        R                  " 5       nT R	                  SUS.5        [
        R                  mUU 4S jn[        R                  R                  [
        SU5         Uv   S S S 5        g ! , (       d  f       g = f7f)Nbytes_ioFsqlite)dialect_nameoutput_bufferc                 8   > UR                   " S0 TD6  T" U 0 UD6$ Nr=   updateargoptconfkws     r%   r-   )capture_context_buffer.<locals>.configuref   "    

RS C  r2   r-   )
popioBytesIOStringIOrd   r   r-   r   patchobject)ri   rV   r-   rh   s   `  @r%   capture_context_bufferrr   \   sx     	vvj%  jjlkkmIIx#>?''D! 
		-{I	F	 
G	F	Fs   BB6B%	B6%
B3/B6c               +    ^ ^^#    SSK Jn  SSKJn  [        R
                  " 5       mU" 5       nUR                  5       nUR                  US5      U4S j5       nT R                  SU05        [        R                  mUU 4S jn[        R                  R                  [        S	U5         Tv   S S S 5        g ! , (       d  f       g = f7f)
Nr   )_sqlite_file_dbr   )eventbefore_cursor_executec                .   > TR                  US-   5        g )N
)write)r;   cursor	statement
parameterscontextexecutemanyrV   s         r%   bce*capture_engine_context_buffer.<locals>.bcey   s    		)d"#r2   r0   c                 8   > UR                   " S0 TD6  T" U 0 UD6$ rb   rc   re   s     r%   r-   0capture_engine_context_buffer.<locals>.configure   rk   r2   r-   )envrt   
sqlalchemyru   rm   ro   r:   listens_forrd   r   r-   r   rp   rq   )	ri   rt   ru   engr;   r   r-   rV   rh   s	   `      @@r%   capture_engine_context_bufferr   n   s     $ 
++-C

C;;=D
t45$ 6$ II|T"#''D! 
		-{I	F	 
G	F	Fs   B#C(B6-	C6
C Cc                  ^^^ 0 nU(       a  [        US9US'    " U4S jS5      nU" 5       m " U4S jS[        5      nT(       a  TUS'   U(       a  X5S'   [        (       d  U S	:X  a  [        S
5      mSTl        O[        U 5      mUb  UTl        STl        T(       d  UU4S jn[        R                  " TUS9n	OTUS'   S n	U" TX5      n
[        U
5      [        R                  l        U
$ )N)naming_conventiontarget_metadatac                  .   > \ rS rSrS rU 4S jrS rSrg)op_fixture.<locals>.buffer_   c                    / U l         g r8   linesr#   s    r%   __init__$op_fixture.<locals>.buffer_.__init__   s	    DJr2   c                   > UR                  5       n[        R                  " SSU5      nT(       a0  [        R                  " SSU5      n[        R                  " SSU5      nU R                  R	                  U5        g )N[\n\t] z    z\;\n*$)stripresubr   rP   )r#   msgr4   s     r%   ry   !op_fixture.<locals>.buffer_.write   s[    ))+C&&B,C ffWb#.ffYC0JJc"r2   c                    g r8   r=   r   s    r%   flush!op_fixture.<locals>.buffer_.flush   s    r2   r   N)r>   r?   r@   rA   r   ry   r   rD   )r4   s   r%   buffer_r      s    			#	r2   r   c                  F   > \ rS rSrU 4S jrU 4S jrU 4S jrU 4S jrSrg)op_fixture.<locals>.ctx   c                   > T$ r8   r=   r#   rV   s    r%   get_bufop_fixture.<locals>.ctx.get_buf   s    Jr2   c                $   > / TR                   S S & g r8   r   r   s    r%   clear_assertions(op_fixture.<locals>.ctx.clear_assertions   s    CIIaLr2   c                   > [        TR                  U Vs/ s H  n[        R                  " SSU5      PM     sn5        g s  snf )Nr   r   )r   r   r   r   )r#   rS   srV   s      r%   assert_op_fixture.<locals>.ctx.assert_   s2     		cBcBFF9b!4cBCBs   "A 
c                   > TR                    H!  n[        R                  " SSU5      U;   d  M!    g     SU< STR                   < 35       e)Nr   r   zCould not locate fragment z in )r   r   r   )r#   rS   stmtrV   s      r%   assert_contains'op_fixture.<locals>.ctx.assert_contains   sD    		66)R-5 "II ur2   r=   N)	r>   r?   r@   rA   r   r   r   r   rD   )rV   s   r%   ctxr      s    			D
	 	r2   r   r4   literal_bindsmariadbmysql)
      r   MariaDBTc                   > [        U [        5      (       a  [        U 5      n U R                  (       d   e[        U R	                  TS95      nTR                  U5        g rN   )
isinstancerQ   r   supports_executionrR   ry   )r   
multiparamparamrS   rV   ctx_dialects       r%   executeop_fixture.<locals>.execute   sH    $$$Dz****dll;l78CIIcNr2   )rO   r   r`   )r	   r   r   r   server_version_infosupports_native_boolean#non_native_boolean_check_constraintr   Mockr   alembicop_proxy)rO   r4   r   r   native_booleanr+   r   r   r   r0   r}   rV   r   s    `         @@r%   
op_fixturer      s     D"*=N"O $ )C , X -_7w)+"7+*?' #7+!.<+ ;?7	 YY{GD
 #_
+z0G"7+GJJNr2   c                  :    \ rS rSrSrS rS rS rS rS
S jr	S	r
g)AlterColRoundTripFixture   )alter_columnc                    [         R                  R                  5       U l        [        R
                  " U R                  5      U l        [        U R                  5      U l        [        5       U l
        g r8   )r   r9   r:   r;   r   r-   r   r   r   r	   metadatar   s    r%   setUpAlterColRoundTripFixture.setUp   sE    II%%'	#--dii8TXX& 
r2   c                    [        SU5      n[        SU5      nU R                  R                  R                  X45      (       a   SU< SU< S35       eg )NqzType objects  and  didn't compare as equivalent)r   r   implcompare_type)r#   t1t2c1c2s        r%   _compare_type&AlterColRoundTripFixture._compare_type   sT    C_C_88==--
 
 	LDFK	L 
 
r2   c                    [        SXS9n[        SX4S9nU R                  R                  R                  XVXB5      (       a   SU< SU< S35       eg )Nr   )server_defaultzserver defaults r   r   )r   r   r   compare_server_default)r#   r   s1r   s2r   r   s          r%   _compare_server_default0AlterColRoundTripFixture._compare_server_default   sX    C/C/88==77B
 
 	OGI2N	O 
 
r2   c                *   [         R                  " U R                  5        U R                  R                  5          U R                  R                  U R                  5        S S S 5        U R                  R                  5         g ! , (       d  f       N)= fr8   )r   %_safe_rollback_connection_transactionr;   beginr   drop_allcloser   s    r%   tearDown!AlterColRoundTripFixture.tearDown   sT    99$))DYY__MM""499- 		 s   &B
BNc                n   [        UR                  SS5      UR                  S[        S5      5      UR                  SS5      UR                  SS 5      S9n[        S	U R                  U5      n[
        R                  " U R                  5         UR                  U R                  5        [        U R                  5      nUR                  S	5      S
   nU R                  R                  S	UR                  UR                  UR                  b  UR                  OSUR                   (       a  SOSUR                  SS 5      UR                  SS5      UR                  SS 5      UR                  SS 5      S9	  S S S 5        [        U R                  5      nUR                  S	5      S
   nUc  Un[#        US   SU;   a  US   OUR                  5        U R%                  US   UR                  SWS   5      5        [#        US   UR                  SUR                   5      5        U R'                  US   UR                  SS 5      UR                  SUS   5      SU;   a  US   R(                  5        g UR                  b%  UR                  R*                  R(                  5        g S 5        g ! , (       d  f       GN9= f)Nnamecolnametyper   nullableTr   )r   r   xr   F)existing_typeexisting_server_defaultexisting_nullabler   r   new_column_nametype_default)r   getr
   r   r   r   _ensure_scope_for_ddlr;   creater   get_columnsr   r   r   r   r   r   r   r   r   r   rf   )	r#   from_to_comparecolumntinspold_colnew_cols	            r%   _run_alter_col'AlterColRoundTripFixture._run_alter_col  sY   IIfi(IIffRj)YYz40 99%5t<	
 #t}}f-..tyy9HHTYY499%D&&s+A.G GG  $kk ,,8 ))*0//$uT2"ww'7? # 5ggfd+ !  :0 tyy!""3'*?GFO%0GFOfkk	
 	FOW[[A	
 	GJZ!IJ$$FOKK	4(KK0 $w. ()..	
 ,,8 ))--22	
 	
M :9s   C&J%%
J4)r;   r   r   r   r8   )r>   r?   r@   rA   rK   r   r   r   r   r  rD   r=   r2   r%   r   r      s$    
 %L#LO=
r2   r   )zpostgresql://)r   FNFN)7
__future__r   configparser
contextlibr   rm   r   typingr   r   r   r   r   r	   r
   r   r   r   sqlalchemy.testingr   r   sqlalchemy.testing.assertionsr   sqlalchemy.testing.fixturesr   SQLAlchemyTablesTestr   SQLAlchemyTestBaser   
assertionsr   environmentr   	migrationr   
operationsr   utilr   util.sqla_compatr   r   r   ConfigParsertesting_configreadrG   rB   rZ   r[   __annotations__rr   r   r   r   r=   r2   r%   <module>r     s   "  % 	 	          % # - J F  $ , ( #  1 & % **,   ZL !! 4	/ 	 =* * *.  & ~   "  4 Up^
 ^
r2   