U
    ^g%i                     @   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)sqla_compat   )AutogenFixtureTest   )testing)config)eq_)is_true)TestBasec                   @   s   e Zd ZdZdZdd Zdd Zdd Zd	d
 Ze	
deddfedddfeddedddfeddeddfedddddedddddfeddddeddddfejjdd Zdd Zdd  ZdS )!AutogenerateIdentityTest)Zidentity_columnsTc                 C   s   t  }t  }td|tdtj td|tdtjtdttjdddd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|jd d S )Nuserotherid      start	incrementTZprimary_keyr   
add_column   r	   )r   r   r   saTextr   Identity_fixturer   nameidentityr   
isinstancer   r   )selfm1m2diffsi r'   j/var/www/html/api-medvista/venv/lib/python3.8/site-packages/alembic/testing/suite/test_autogen_identity.pytest_add_identity_column   s,    
z1AutogenerateIdentityTest.test_add_identity_columnc              
   C   s   t  }t  }td|tdttjddddd td| | ||}t|d d d	 t|d d d |d d }t|jd t	t
|jtj t|jjd t|jjd d S )
Nr   r   r   r	   r   Tr   r   Zremove_column)r   r   r   r   r   r   r   r   r   r   r!   r    r   r   )r"   r#   r$   r%   cr'   r'   r(   test_remove_identity_column1   s*    
z4AutogenerateIdentityTest.test_remove_identity_columnc                 C   sT   t  }t  }||fD ]$}tjdd}td|tdt| q| ||}t|g  d S )Nr   r   r   r   )r   r   r   r   r   r   r   r   )r"   r#   r$   mid_r%   r'   r'   r(   test_no_change_identity_columnM   s    z7AutogenerateIdentityTest.test_no_change_identity_columnc              	   C   s   t  }t  }tjrddd}n
ddd}td|tdttjdd tjf ddi|}td|tdt| | ||}t	j
jd	krtt|d
 t|d d d d n
t|g  d S )NT)Zoracle_on_nullZoracle_order)Zon_nullorderr   r   r   r,   r   oracler   r   modify_default)r   r   Zidentity_has_dialect_kwargsr   r   r   r   r   r   r   dbr   r   lenr   )r"   r#   r$   argsr.   r%   r'   r'   r(   test_dialect_kwargs_changesY   s    
z4AutogenerateIdentityTest.test_dialect_kwargs_changesNr   r,   r   r   F)alwaysr   r   d   )r   Zminvaluemaxvaluecycle
   r	   i'  )r   r   r9   i  c                 C   s   |rt jf |fnd}|r(t jf |fnd}t }t }td|tdtf| tdt j td|tdtf| tdt j | ||}tt	|d d |d d }t|d d t|d d t|d	 d |d
 }|d }	dd }
|
|| |
||	 d S )Nr'   r   r   r   r   r   r2   r   r	   r      c                 S   sH   | r8t t|tj |  D ]\}}tt||| qnt |dk d S )N)NF)r   r!   r   r   itemsr   getattr)kwZidtkvr'   r'   r(   check   s
    z<AutogenerateIdentityTest.test_change_identity.<locals>.check)
r   r   r   r   r   r   r   r   r   r4   )r"   beforeafterZ
arg_beforeZ	arg_afterr#   r$   r%   oldnewrB   r'   r'   r(   test_change_identitym   s6    


z-AutogenerateIdentityTest.test_change_identityc              
   C   s   t  }t  }td|tdttdtj td|tdttjdddtdtj | ||}tt	|d d |d d }t|d d	 t|d d t|d
 d t|d d  |d }t
t|tj t|jd t|jd d S )Nr   r   r   r     r   r9   r   r   r2   r	   r   r<   )r   r   r   r   r   r   r   r   r   r4   r   r!   r   r9   )r"   r#   r$   r%   addedr'   r'   r(   test_add_identity_to_column   s2    

z4AutogenerateIdentityTest.test_add_identity_to_columnc              
   C   s   t  }t  }td|tdttjdddtdtj td|tdttdtj | ||}tt	|d d |d d }t|d d	 t|d d t|d
 d t|d d  |d }t
t|tj d S )Nr   r   r   rH   rI   r   r   r   r2   r	   r<   r   )r   r   r   r   r   r   r   r   r   r4   r   r!   )r"   r#   r$   r%   Zremovedr'   r'   r(    test_remove_identity_from_column   s.    

z9AutogenerateIdentityTest.test_remove_identity_from_column)__name__
__module____qualname____requires__Z__backend__r)   r+   r/   r6   r
   combinationsdictr   requirementsZidentity_columns_alterrG   rK   rL   r'   r'   r'   r(   r      s,   * r   )Z
sqlalchemyr   r   r   r   r   Zalembic.utilr   Z_autogen_fixturesr    r
   r   r   r   r   r   r'   r'   r'   r(   <module>   s   