
    g                         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\\5      rg)    N)Column)Integer)MetaData)Table   )AutogenFixtureTest   )testing)config)eq_)
exclusions)is_)is_true)mock)TestBasec                   >   \ rS rSrSrSrS rS r\R                  " S S S S	 5      \
R                  R                  S
 5       5       r\R                  " S S S S S \
R                  R                  45      S 5       r\
R                  R                   S 5       rSrg)AutogenerateComputedTest   )computed_columnsTc                 R   [        5       n[        5       n[        SU[        S[        SS95        [        SU[        S[        SS9[        S[        [        R
                  " S5      5      5        U R                  X5      n[        US   S   S5        [        US   S	   S5        [        US   S
   R                  S5        US   S
   R                  n[        [        U[        R
                  5      5        [        UR                  S 5        [        [        UR                  5      S5        g )NuseridTprimary_keyfoo5r   
add_column   r	   )r   r   r   r   saComputed_fixturer   namecomputedr   
isinstancer   	persistedstrsqltextselfm1m2diffscs        s/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/alembic/testing/suite/test_autogen_computed.pytest_add_computed_column1AutogenerateComputedTest.test_add_computed_column   s    ZZfb&wDAB4d35'2;;s#34		
 b%E!HQK&E!HQK E!HQKe$!HQK  
1bkk*+AKKC		NC     c                 J   [        5       n[        5       n[        SU[        S[        SS9[        S[        [        R
                  " S5      5      5        [        SU[        S[        SS95        U R                  X5      n[        US   S   S5        [        US   S	   S5        US   S
   n[        UR                  S5        [        R                  R                  R                  (       a.  [        [        UR                  [        R
                  5      5        O[!        UR                  S 5        [        R                  R"                  R                  (       aa  [        [        UR$                  [        R&                  5      5        [        [)        UR$                  R*                  R,                  5      S5        g [        R                  R                  R                  (       a.  [        [        UR                  [        R
                  5      5        g [!        UR                  S 5        g )Nr   r   Tr   r   r   r   remove_columnr   r	   )r   r   r   r   r   r    r!   r   r"   r   requirementscomputed_reflects_normallyenabledr   r$   r#   r   #computed_reflects_as_server_defaultserver_defaultDefaultClauser&   argtextr(   s        r.   test_remove_computed_column4AutogenerateComputedTest.test_remove_computed_column.   sh   ZZ4d35'2;;s#34		
 	fb&wDABb%E!HQK)E!HQK !HQKAFFE99AAJqzz2;;78

D!BBJJJq//1A1ABCA$$((--.4  ;;CCJqzz2;;78

D!r1   c                  2    S [         R                  " S5      4$ Nbar*5r   r     r1   r.   <lambda>!AutogenerateComputedTest.<lambda>P   s    r{{7+,r1   c                  2    [         R                  " S5      S 4$ r?   rA   rB   r1   r.   rC   rD   Q   s    "++g&-r1   c                  X    [         R                  " S5      [         R                  " SSS94$ )Nr@   bar * 42T)r%   rA   rB   r1   r.   rC   rD   R   s!    KK KK
d3
r1   c                  Z    [         R                  " S5      [         R                  " S5      4$ )Nr@   rG   rA   rB   r1   r.   rC   rD   V   s    W%r{{:'>?r1   c           
      t   [         R                  " U40 [        5       D6u  p#[        5       n[        5       nUc  / OU/nUc  / OU/n[	        SU[        S[        SS9[        S[        5      [        S[        /UQ76 5        [	        SU[        S[        SS9[        S[        5      [        S[        /UQ76 5        [        R                  " S5       nU R                  XE5      nS S S 5        [        WR                  [        R                  " S5      /5        [        [        W5      / 5        g ! , (       d  f       NO= f)	Nr   r   Tr   barr   alembic.util.warnz/Computed default on user.foo cannot be modified)r
   resolve_lambdalocalsr   r   r   r   r   patchr!   r   
mock_callscalllistr)   	test_case
arg_before	arg_afterr*   r+   	mock_warnr,   s           r.   !test_cant_change_computed_warning:AutogenerateComputedTest.test_cant_change_computed_warningO   s    !( 6 6y MFH M
ZZ%-RJ<
#+B)	4d35'"5'/J/	
 	4d35'"5'.I.	
 ZZ+,	MM")E - 	  YYHIJ	

 	DK -,s   D))
D7c                      g)N)NNrB   rB   r1   r.   rC   rD   |   s    r1   c                  Z    [         R                  " S5      [         R                  " S5      4$ )Nr   rA   rB   r1   r.   rC   rD   }   s    S!2;;s#34r1   c                  Z    [         R                  " S5      [         R                  " S5      4$ r?   rA   rB   r1   r.   rC   rD   ~   s    W%r{{7';<r1   c                  Z    [         R                  " S5      [         R                  " S5      4$ )Nr@   z
bar * 
	5rA   rB   r1   r.   rC   rD      s    W%r{{?'CDr1   c                  2    [         R                  " S5      S 4$ r?   rA   rB   r1   r.   rC   rD      s    R[[)40r1   c           
      J   [         R                  " U40 [        5       D6u  p#[        5       n[        5       nUc  / OU/nUc  / OU/n[	        SU[        S[        SS9[        S[        5      [        S[        /UQ76 5        [	        SU[        S[        SS9[        S[        5      [        S[        /UQ76 5        [        R                  " S5       nU R                  XE5      nS S S 5        [        WR                  / 5        [        [        W5      / 5        g ! , (       d  f       N:= f)Nr   r   Tr   rJ   r   rK   )r
   rL   rM   r   r   r   r   r   rN   r!   r   rO   rQ   rR   s           r.   test_computed_unchanged0AutogenerateComputedTest.test_computed_unchanged{   s     !( 6 6y MFH M
ZZ%-RJ<
#+B)	4d35'"5'/J/	
 	4d35'"5'.I.	
 ZZ+,	MM")E -I  "%DK	 -,s   D
D"c                    [        5       n[        5       n[        SU[        S[        SS9[        S[        5      [        S[        [        R
                  " S5      5      5        [        SU[        S[        SS9[        S[        5      [        S[        5      5        U R                  X5      n[        US   S   S   S	5        [        US   S   S
   S5        [        US   S   S   S5        US   S   S   nUS   S   S   n[        US5        [        [        U[        R                  5      5        [        R                  " [        S5      (       a*  [        [        UR                   R"                  5      S5        g[        R                  " [        S5      (       a*  [        [        UR                   R"                  5      S5        gg)zAsserts the current behavior which is that on PG and Oracle,
the GENERATED ALWAYS AS is reflected as a server default which we can't
tell is actually "computed", so these come out as a modification to
the server default.

r   r   Tr   rJ   r   zbar + 42r   modify_defaultr   r	   N
postgresqlz
(bar + 42)oraclez"BAR"+42)r   r   r   r   r   r    r!   r   r   r   r$   r9   r   againstr   r&   r:   r;   )r)   r*   r+   r,   oldnews         r.   (test_remove_computed_default_on_computedAAutogenerateComputedTest.test_remove_computed_default_on_computed   sg    ZZ4d35'"5'2;;z#:;	
 	4d35'"5'"	
 b%E!HQKN,-E!HQKNF#E!HQKNE"Ahqk"oAhqk"oC
3 0 012fl33CGGLL!<011CGGLL!:. 2r1   rB   N)__name__
__module____qualname____firstlineno____requires____backend__r/   r<   r
   combinationsr   r4   r5   rW   )computed_doesnt_reflect_as_server_defaultr_   r7   rj   __static_attributes__rB   r1   r.   r   r      s    (LK!0"B ,	-	
 	@ 33  4 D 4<D0II	
		< <<(/ =(/r1   r   )
sqlalchemyr   r   r   r   r   _autogen_fixturesr    r
   r   r   r   r   r   r   r   r   rB   r1   r.   <module>rx      s@         1    !    z/18 z/r1   