
    ZeIi                         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  G d de	e          ZdS )    )nullcontextN)Column)Integer)MetaData)Table   )AutogenFixtureTest   )testing)config)eq_)expect_warnings)is_)is_true)mock)TestBasec                       e Zd 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dS )AutogenerateComputedTest)computed_columnsTc                 l    t           j        j        j        rt	                      }nt                      }|S )N)r   requirements"computed_columns_warn_no_persistedenabledr   r   )selfctxs     p/var/www/html/MCyber-Diagnostic/venv/lib/python3.11/site-packages/alembic/testing/suite/test_autogen_computed.py_fixture_ctxz%AutogenerateComputedTest._fixture_ctx   s.    AI 	 !##CC--C
    c                 <   t                      }t                      }t          d|t          dt          d                     t          d|t          dt          d          t          dt          t	          j        d                               |                                 5  |                     ||          }d d d            n# 1 swxY w Y   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           d S )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_columnz1AutogenerateComputedTest.test_add_computed_column   s   ZZZZfb&wDAAABBB4d3335'2;s#3#344		
 	
 	
    	* 	*MM"b))E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	E!HQK&&&E!HQK   E!HQKe$$$!HQK 
1bk**+++AKC	NNC        $CCCc                    t                      }t                      }t          d|t          dt          d          t          dt          t	          j        d                               t          d|t          dt          d                     |                                 5  |                     ||          }d d d            n# 1 swxY w Y   t          |d         d         d           t          |d         d	         d           |d         d
         }t          |j	        d           t          t          |j        t          j                             t          t          |j        t          j                             d S )Nr    r!   Tr"   r$   r%   r   remove_columnr'   r
   )r   r   r   r   r(   r)   r   r*   r   r+   r   r-   r,   server_defaultr1   s        r   test_remove_computed_columnz4AutogenerateComputedTest.test_remove_computed_column8   s   ZZZZ4d3335'2;s#3#344		
 	
 	
 	fb&wDAAABBB   	* 	*MM"b))E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	E!HQK)))E!HQK   !HQKAFE
1:r{33444
1+R[99:::::r7   c                  .    d t          j        d          fS Nbar*5r(   r)    r   r   <lambda>z!AutogenerateComputedTest.<lambda>Q   s    r{7++, r   c                  .    t          j        d          d fS r=   r?   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>R   s    "+g&&- r   c                  V    t          j        d          t          j        dd          fS )Nr>   bar * 42T)r.   r?   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>S   s(    K  K
d333
 r   c                  R    t          j        d          t          j        d          fS )Nr>   rD   r?   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>W   s    W%%r{:'>'>? r   c           
      2   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|R             t	          d|t          dt          d          t          dt                    t          dt          g|R             t          j        d          5 }| 	                                5  | 
                    ||          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |j        t          j        d          g           t          t          |          g            d S )	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_afterr2   r3   	mock_warnr4   s           r   !test_cant_change_computed_warningz:AutogenerateComputedTest.test_cant_change_computed_warningP   s    !( 6y M MFHH M M
IZZZZ%-RRJ<
#+BB)	4d3335'""5'/J///	
 	
 	
 	4d3335'""5'.I...	
 	
 	
 Z+,, 	*	4;L;L;N;N 	* 	*MM"b))E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	 YHIIJ	
 	
 	

 	DKK6   8ED0$E0D4	4E7D4	8EEEc                      dS )N)NNr@   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>|   s     r   c                  R    t          j        d          t          j        d          fS )Nr%   r?   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>}   s    S!!2;s#3#34 r   c                  R    t          j        d          t          j        d          fS r=   r?   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>~   s    W%%r{7';';< r   c                  R    t          j        d          t          j        d          fS )Nr>   z
bar * 
	5r?   r@   r   r   rA   z!AutogenerateComputedTest.<lambda>   s    W%%r{?'C'CD r   c           
         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|R             t	          d|t          dt          d          t          dt                    t          dt          g|R             t          j        d          5 }| 	                                5  | 
                    ||          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |j        g            t          t          |          g            d S )Nr    r!   Tr"   rG   r$   rH   )r   rI   rJ   r   r   r   r   r   rK   r   r*   r   rL   rN   rO   s           r   test_computed_unchangedz0AutogenerateComputedTest.test_computed_unchanged{   s    !( 6y M MFHH M M
IZZZZ%-RRJ<
#+BB)	4d3335'""5'/J///	
 	
 	
 	4d3335'""5'.I...	
 	
 	
 Z+,, 	*	4;L;L;N;N 	* 	*MM"b))E	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*I "%%%DKKrU   N)__name__
__module____qualname____requires____backend__r   r6   r;   r   combinationsrT   r[   r@   r   r   r   r      s        (LK  ! ! !2; ; ;0 W,,	-	-	
 	
 	@?      D W44<<DD	     r   r   )
contextlibr   
sqlalchemyr(   r   r   r   r   _autogen_fixturesr	    r   r   r   r   r   r   r   r   r   r@   r   r   <module>rf      sN   " " " " " "                             1 1 1 1 1 1                   & & & & & &                        I I I I I18 I I I I Ir   