
    +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)sqla_compat   )AutogenFixtureTest   )testing)config)eq_)is_true)TestBasec                   ^   e Zd ZdZdZd Zd Zd Zd Z e	j                  d ed	      f ed	      df ed	       edd
      f ed       ed      f edddd       edddd      f eddd       eddd      f      ej                  j                  d               Zd Zd Zy)AutogenerateIdentityTest)identity_columnsTc                 t   t               }t               }t        d|t        dt        j                               t        d|t        dt        j                        t        dt
        t        j                  dd      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        |j                  d       y )Nuserotherid      start	incrementTprimary_keyr   
add_column   r
   )r   r   r   saTextr   Identity_fixturer   nameidentityr   
isinstancer   r   )selfm1m2diffsis        ^/var/www/html/venv/lib/python3.12/site-packages/alembic/testing/suite/test_autogen_identity.pytest_add_identity_columnz1AutogenerateIdentityTest.test_add_identity_column   s    ZZfb&"''237BGG$!q1 		
	
 b"%E!HQK&E!HQK E!HQKd#!HQK  
1bkk*+AGGQAKK    c                 ,   t               }t               }t        d|t        dt        t	        j
                  dd      d             t        d|       | j                  ||      }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       y )
Nr   r   r   r
   r   Tr   r   remove_column)r   r   r   r   r    r"   r#   r   r$   r   r&   r%   r   r   )r'   r(   r)   r*   cs        r,   test_remove_identity_columnz4AutogenerateIdentityTest.test_remove_identity_column1   s    ZZ!q1 			
 	fbb"%E!HQK)E!HQK !HQKAFFD
1::r{{34AJJa AJJ  !$r.   c           
          t               }t               }||fD ]4  }t        j                  d      }t        d|t	        dt
        |             6 | j                  ||      }t        |g        y )Nr   r   r   r   )r   r    r"   r   r   r   r#   r   )r'   r(   r)   mid_r*   s         r,   test_no_change_identity_columnz7AutogenerateIdentityTest.test_no_change_identity_columnM   sa    ZZb 	9A++A&C&!VD'378	9 b"%E2r.   c                    t               }t               }t        j                  rddd}nddd}t        d|t	        dt
        t        j                  d                   t        j                  dddi|}t        d|t	        dt
        |             | j                  ||      }t        j                  j                  d	k(  r+t        t        |      d
       t        |d   d   d   d       y t        |g        y )NT)oracle_on_nulloracle_order)on_nullorderr   r   r   r4   r   oracler   r   modify_default )r   r   identity_has_dialect_kwargsr   r   r   r    r"   r#   r   dbr$   r   lenr   )r'   r(   r)   argsr6   r*   s         r,   test_dialect_kwargs_changesz4AutogenerateIdentityTest.test_dialect_kwargs_changesY   s    ZZ22&*DAD#d3Dfb&w!0DEFkk**T*fb&w45b"%99>>X%CJ"aA 01rNr.   Nr   r4   r   r   F)alwaysr   r   d   )r   minvaluemaxvaluecycle
   r
   i'  )r   r   rH   i  c           	      d   |rt        j                  di |fnd}|rt        j                  di |fnd}t               }t               }t        d|t	        dt
        g| t	        dt         j                               t        d|t	        dt
        g| t	        dt         j                               | j                  ||      }t        t        |d         d       |d   d   }t        |d   d       t        |d   d       t        |d	   d       |d
   }|d   }	d }
 |
||        |
||	       y )Nr?   r   r   r   r   r   r>   r   r
   r      c                     | rRt        t        |t        j                               | j	                         D ]  \  }}t        t        ||      |        y t        |dv        y )N)NF)r   r&   r    r"   itemsr   getattr)kwidtkvs       r,   checkz<AutogenerateIdentityTest.test_change_identity.<locals>.check   sP    
345HHJ ,DAqQ+, },-r.   )
r    r"   r   r   r   r   r!   r#   r   rB   )r'   beforeafter
arg_before	arg_afterr(   r)   r*   oldnewrT   s              r,   test_change_identityz-AutogenerateIdentityTest.test_change_identitym   s#     28bkk+F+-R
/4R[[)5)+"	ZZ4.:.7BGG$		
 	4-9-7BGG$		
 b"%CaM1aE!H&'E!HfE!HdAhAh	. 	fceSr.   c                    t               }t               }t        d|t        dt              t        dt        j
                               t        d|t        dt        t	        j                  dd            t        dt        j
                               | 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       y )Nr   r   r   r     r   rH   r   r   r>   r
   r   rL   )r   r   r   r   r    r!   r"   r#   r   rB   r   r&   r   rH   )r'   r(   r)   r*   addeds        r,   test_add_identity_to_columnz4AutogenerateIdentityTest.test_add_identity_to_column   s   ZZ4!7BGG$		
 	4"++A"EF7BGG$		
 b"%CaM1aE!H&'E!HfE!HdE!Hda
5"++./EKKENND!r.   c                 T   t               }t               }t        d|t        dt        t	        j
                  dd            t        dt        j                               t        d|t        dt              t        dt        j                               | j                  ||      }t        t        |d         d       |d   d   }t        |d   d	       t        |d   d       t        |d
   d       t        |d   d        |d   }t        t        |t        j
                               y )Nr   r   r   r]   r^   r   r   r   r>   r
   rL   r   )r   r   r   r   r    r"   r!   r#   r   rB   r   r&   )r'   r(   r)   r*   removeds        r,    test_remove_identity_from_columnz9AutogenerateIdentityTest.test_remove_identity_from_column   s    ZZ4"++A"EF7BGG$		
 	4!7BGG$		
 b"%CaM1aE!H&'E!HfE!HdE!Hd(
7BKK01r.   )__name__
__module____qualname____requires____backend__r-   r2   r7   rD   r   combinationsdictr   requirementsidentity_columns_alterr[   r`   rc   r?   r.   r,   r   r      s    (LK:%8
( W	t!}	A	A123	U	T./q1s$?q1s%@	

 rQ6rQ6	
 //( 0(T"@2r.   r   )
sqlalchemyr    r   r   r   r   alembic.utilr   _autogen_fixturesr	    r   r   r   r   r   r   r?   r.   r,   <module>rq      s:         $ 1     R218 R2r.   