
    +h                         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  G d dee      Zy)    N)Column)Integer)MetaData)Table   )AutogenFixtureTest   )testing)eq_)is_)is_true)mock)TestBasec                       e Zd ZdZdZd Zd Z ej                  d d d d       d	        Z	 ej                  d
 d d d       d        Z
y)AutogenerateComputedTest)computed_columnsTc                 ^   t               }t               }t        d|t        dt        d             t        d|t        dt        d      t        dt        t	        j
                  d                   | j                  ||      }t        |d   d   d       t        |d   d	   d       t        |d   d
   j                  d       |d   d
   j                  }t        t        |t        j
                               t        |j                  d        t        t        |j                        d       y )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        ^/var/www/html/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_computed.pytest_add_computed_columnz1AutogenerateComputedTest.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                 B   t               }t               }t        d|t        dt        d      t        dt        t	        j
                  d                   t        d|t        dt        d             | j                  ||      }t        |d   d   d       t        |d   d	   d       |d   d
   }t        |j                  d       t        t        |j                  t        j
                               t        t        |j                  t        j
                               y )Nr   r   Tr   r   r   r   remove_columnr   r	   )r   r   r   r   r   r   r   r   r   r   r!   r    server_defaultr%   s        r+   test_remove_computed_columnz4AutogenerateComputedTest.test_remove_computed_column,   s    ZZ4d35'2;;s#34		
 	fb&wDABb"%E!HQK)E!HQK !HQKAFFE
1::r{{34
1++R[[9:r-   c                  0    d t        j                  d      fS Nbar*5r   r    r-   r+   <lambda>z!AutogenerateComputedTest.<lambda>D   s    r{{7+, r-   c                  0    t        j                  d      d fS r3   r5   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>E   s    "++g&- r-   c                  Z    t        j                  d      t        j                  dd      fS )Nr4   bar * 42T)r"   r5   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>F   s#    KK KK
d3
 r-   c                  V    t        j                  d      t        j                  d      fS )Nr4   r:   r5   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>J   s    W%r{{:'>? r-   c           
      p   t        j                  |fi t               \  }}t               }t               }|g n|g}|g n|g}t	        d|t        dt        d      t        dt              t        dt        g|        t	        d|t        dt        d      t        dt              t        dt        g|        t        j                  d      5 }| j                  ||      }d d d        t        j                  t        j                  d      g       t        t              g        y # 1 sw Y   IxY w)	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_warningz:AutogenerateComputedTest.test_cant_change_computed_warningC   s    !( 6 6y MFH M
IZZ%-RJ<
#+B)	4d35'"5'/J/	
 	4d35'"5'.I.	
 ZZ+, 	*	MM"b)E	* 	  YYHIJ	

 	DK	* 	*s   D,,D5c                       y)N)NNr6   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>o   s    r-   c                  V    t        j                  d      t        j                  d      fS )Nr   r5   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>p   s    S!2;;s#34 r-   c                  V    t        j                  d      t        j                  d      fS r3   r5   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>q   s    W%r{{7';< r-   c                  V    t        j                  d      t        j                  d      fS )Nr4   z
bar * 
	5r5   r6   r-   r+   r7   z!AutogenerateComputedTest.<lambda>r   s    W%r{{?'CD r-   c           
      H   t        j                  |fi t               \  }}t               }t               }|g n|g}|g n|g}t	        d|t        dt        d      t        dt              t        dt        g|        t	        d|t        dt        d      t        dt              t        dt        g|        t        j                  d      5 }| j                  ||      }d d d        t        j                  g        t        t              g        y # 1 sw Y   5xY w)Nr   r   Tr   r=   r   r>   )r
   r?   r@   r   r   r   r   r   rA   r   r   rB   rD   rE   s           r+   test_computed_unchangedz0AutogenerateComputedTest.test_computed_unchangedn   s    !( 6 6y MFH M
IZZ%-RJ<
#+B)	4d35'"5'/J/	
 	4d35'"5'.I.	
 ZZ+, 	*	MM"b)E	*I  "%DK		* 	*s   DD!N)__name__
__module____qualname____requires____backend__r,   r1   r
   combinationsrJ   rP   r6   r-   r+   r   r      sv    (LK!0;. W,	-	
 	@  D W4<D	r-   r   )
sqlalchemyr   r   r   r   r   _autogen_fixturesr    r
   r   r   r   r   r   r   r6   r-   r+   <module>rZ      s:         1      @18 @r-   