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(   úg/var/www/html/flaskapp/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    