
    -ji                         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   " S S\	\5      rg)    )nullcontextN)Column)Integer)MetaData)Table   )AutogenFixtureTest   )testing)config)eq_)expect_warnings)is_)is_true)mock)TestBasec                       \ rS rSrSrSrS rS rS r\	R                  " S S S	 S
 5      S 5       r\	R                  " S S S S 5      S 5       rSrg)AutogenerateComputedTest   )computed_columnsTc                     [         R                  R                  R                  (       a  [	        5       nU$ [        5       nU$ )N)r   requirements"computed_columns_warn_no_persistedenabledr   r   )selfctxs     e/home/james-whalen/.local/lib/python3.13/site-packages/alembic/testing/suite/test_autogen_computed.py_fixture_ctx%AutogenerateComputedTest._fixture_ctx   s4    AAII!#C 
 -C
    c                    [        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                  5          U R                  X5      nS S S 5        [        W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 ! , (       d  f       N= f)NuseridTprimary_keyfoo5r   
add_column   r
   )r   r   r   r   saComputedr   _fixturer   namecomputedr   
isinstancer   	persistedstrsqltextr   m1m2diffscs        r   test_add_computed_column1AutogenerateComputedTest.test_add_computed_column   s   ZZfb&wDAB4d35'2;;s#34		
  MM")E ! 	E!HQK&E!HQK E!HQKe$!HQK  
1bkk*+AKKC		NC  ! s   =E
Ec                    [        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                  5          U R                  X5      nS S S 5        [        WS   S   S5        [        US   S	   S5        US   S
   n[        UR                  S5        [        [        UR                  [        R
                  5      5        [        [        UR                  [        R
                  5      5        g ! , (       d  f       N= f)Nr"   r#   Tr$   r&   r'   r   remove_columnr)   r
   )r   r   r   r   r*   r+   r   r,   r   r-   r   r/   r.   server_defaultr3   s        r   test_remove_computed_column4AutogenerateComputedTest.test_remove_computed_column8   s    ZZ4d35'2;;s#34		
 	fb&wDAB MM")E ! 	E!HQK)E!HQK !HQKAFFE
1::r{{34
1++R[[9: ! s   =D44
Ec                  2    S [         R                  " S5      4$ Nbar*5r*   r+    r    r   <lambda>!AutogenerateComputedTest.<lambda>Q   s    r{{7+,r    c                  2    [         R                  " S5      S 4$ r@   rB   rC   r    r   rD   rE   R   s    "++g&-r    c                  X    [         R                  " S5      [         R                  " SSS94$ )NrA   bar * 42T)r0   rB   rC   r    r   rD   rE   S   s!    KK KK
d3
r    c                  Z    [         R                  " S5      [         R                  " S5      4$ )NrA   rH   rB   rC   r    r   rD   rE   W   s    W%r{{:'>?r    c           
         [         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       o`R                  5          U R                  XE5      nS S S 5        S S S 5        [        WR                  [        R                  " S5      /5        [        [        W5      / 5        g ! , (       d  f       NW= f! , (       d  f       N`= 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,   r   
mock_callscalllistr   	test_case
arg_before	arg_afterr4   r5   	mock_warnr6   s           r   !test_cant_change_computed_warning:AutogenerateComputedTest.test_cant_change_computed_warningP   s%    !( 6 6y MFH M
ZZ%-RJ<
#+B)	4d35'"5'/J/	
 	4d35'"5'.I.	
 ZZ+,	;L;L;NMM")E <O, 	  YYHIJ	

 	DK <O;N,,s$   EE0E
E	E
E c                      g)N)NNrC   rC   r    r   rD   rE   |   s    r    c                  Z    [         R                  " S5      [         R                  " S5      4$ )Nr'   rB   rC   r    r   rD   rE   }   s    S!2;;s#34r    c                  Z    [         R                  " S5      [         R                  " S5      4$ r@   rB   rC   r    r   rD   rE   ~   s    W%r{{7';<r    c                  Z    [         R                  " S5      [         R                  " S5      4$ )NrA   z
bar * 
	5rB   rC   r    r   rD   rE      s    W%r{{?'CDr    c           
         [         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       o`R                  5          U R                  XE5      nS S S 5        S S S 5        [        WR                  / 5        [        [        W5      / 5        g ! , (       d  f       NB= f! , (       d  f       NK= f)Nr"   r#   Tr$   rK   r&   rL   )r   rM   rN   r   r   r   r   r   rO   r   r,   r   rP   rR   rS   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+,	;L;L;NMM")E <O,I  "%DK	 <O;N,,s$   D=D,0D=,
D:	6D==
ErC   N)__name__
__module____qualname____firstlineno____requires____backend__r   r8   r=   r   combinationsrX   r_   __static_attributes__rC   r    r   r   r      sw    (LK!2;0 ,	-	
 	@  D 4<D	r    r   )
contextlibr   
sqlalchemyr*   r   r   r   r   _autogen_fixturesr	    r   r   r   r   r   r   r   r   r   rC   r    r   <module>rm      sC    "      1    &    I18 Ir    