o
    {g                     @   s   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 deeZdS )    N)Column)Integer)MetaData)Table   )AutogenFixtureTest   )testing)eq_)is_)is_true)mock)TestBasec                   @   st   e Zd ZdZdZdd Zdd Zedd d	d d
d dd dd Z	edd dd dd dd dd Z
dS )AutogenerateComputedTest)computed_columnsTc              
   C   s   t  }t  }td|tdtdd td|tdtddtdttd | ||}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Computed_fixturer
   namecomputedr   
isinstancer   	persistedstrsqltextselfm1m2diffsc r(   m/var/www/html/usg.absolutems/venv/lib/python3.10/site-packages/alembic/testing/suite/test_autogen_computed.pytest_add_computed_column   s"   z1AutogenerateComputedTest.test_add_computed_columnc              
   C   s   t  }t  }td|tdtddtdttd td|tdtdd | ||}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   server_defaultr"   r(   r(   r)   test_remove_computed_column,   s    z4AutogenerateComputedTest.test_remove_computed_columnc                   C   s   d t dfS Nbar*5r   r   r(   r(   r(   r)   <lambda>D       z!AutogenerateComputedTest.<lambda>c                   C   s   t dd fS r.   r0   r(   r(   r(   r)   r1   E   r2   c                   C   s   t dt jdddfS )Nr/   bar * 42T)r   r0   r(   r(   r(   r)   r1   F   s   c                   C      t dt dfS )Nr/   r3   r0   r(   r(   r(   r)   r1   J       c                 C   s   t j|fi t \}}t }t }|d u rg n|g}|d u r!g n|g}td|tdtddtdttdtg|R   td|tdtddtdttdtg|R   td}| 	||}W d    n1 shw   Y  t
|jt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
   
mock_callscalllistr#   	test_case
arg_before	arg_afterr$   r%   	mock_warnr&   r(   r(   r)   !test_cant_change_computed_warningC   s6   

z:AutogenerateComputedTest.test_cant_change_computed_warningc                   C   s   dS )N)NNr(   r(   r(   r(   r)   r1   o   s    c                   C      t dt dfS )Nr   r0   r(   r(   r(   r)   r1   p   r5   c                   C   rD   r.   r0   r(   r(   r(   r)   r1   q   r5   c                   C   r4   )Nr/   z
bar * 
	5r0   r(   r(   r(   r)   r1   r   r5   c                 C   s   t j|fi t \}}t }t }|d u rg n|g}|d u r!g n|g}td|tdtddtdttdtg|R   td|tdtddtdttdtg|R   td}| 	||}W d    n1 shw   Y  t
|jg  t
t|g  d S )Nr   r   Tr   r6   r   r7   )r	   r8   r9   r   r   r   r   r   r:   r   r
   r;   r=   r>   r(   r(   r)   test_computed_unchangedn   s0   z0AutogenerateComputedTest.test_computed_unchangedN)__name__
__module____qualname____requires____backend__r*   r-   r	   combinationsrC   rE   r(   r(   r(   r)   r      s&    
	"r   )
sqlalchemyr   r   r   r   r   _autogen_fixturesr    r	   r
   r   r   r   r   r   r(   r(   r(   r)   <module>   s    