
    Eh4                    B   % S SK Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSK!J"r"  SSK!J#r#  SSK$J%r%  SSK$J&r&  \'" 5       r(S \)S!'   \
RT                  " \S"5      S# 5       r+S$ r,\,r-S%\)S&'   S'r.S%\)S('    " S) S*5      r/ " S+ S,5      r0 " S- S.5      r1 " S/ S0\15      r2 " S1 S2\15      r3g')3    )annotations)Any)Dict)Set)CHAR)CheckConstraint)Column)event)
ForeignKey)Index)inspect)Integer)MetaData)Numeric)PrimaryKeyConstraint)String)Table)Text)text)UniqueConstraint   )autogenerate)util)api)_fk_spec)MigrationContextops)config)eq_)clear_staging_env)staging_envzSet[Any]names_in_this_testafter_parent_attachc                B    [         R                  U R                  5        g N)r#   addname)tableparents     j/home/kali/devsecops-assessor/venv/lib/python3.13/site-packages/alembic/testing/suite/_autogen_fixtures.py	new_tabler,   &   s    5::&    c                "    US:X  a	  U[         ;   $ g)Nr)   T)r#   )objr(   type_	reflected
compare_tos        r+   _default_include_objectr3   +   s    )))r-   r   _default_object_filtersN_default_name_filtersc                  H    \ rS rSr% SrSrS\S'   \S 5       r\S 5       r	Sr
g)	ModelOne7   unique_constraint_reflectionNr   schemac                ,   U R                   n[        US9n[        SU[        S[        SS9[        S[        S5      5      [        S[        5      [        S	[        S5      5      [        S
S	5      5        [        SU[        S[        SS9[        S[        S5      SS95        [        SU[        S[        SS9[        S[        SS5      S[        S5      S9[        SSS95        [        SU[        S[        5      [        S[        [        S5      5      5        U$ )Nr;   useridTprimary_keyr(   2   a1pwpw_idxaddressemail_addressd   Fnullableorderorder_idamount      0rJ   server_defaultzamount >= 0ck_order_amountr(   extraxuiduser.id)r;   r   r   r	   r   r   r   r   r   r   r   r   r   clsr;   ms      r+   _get_db_schemaModelOne._get_db_schema<   s   F#4d366":&44$(D!	
 	4d3?F3K%@		
 	:wD91#Cy	 M0AB	
 	35':i#89		
 r-   c                   U R                   n[        US9n[        SU[        S[        SS9[        S[        S5      SS	9[        S
[        SS95        [        SU[        S[        SS9[        S[        S5      SS	9[        S[        S5      5      [        SSS95        [        SU[        S[        SS9[        S[        SS5      S[        S5      S9[        S[        [        S5      5      [        SSS95        [        SU[        S[        SS9[        S[        S5      5      [        S[        [        S 5      5      [        S!5      5        U$ )"Nr=   r>   r?   Tr@   r(   rB   FrI   rC   rV   )rR   rF   rG   rH   streetuq_emailrT   rK   rL   rM   
   rO   rP   rQ   user_idrX   zamount > -1rS   itemdescriptionzorder.order_idzlen(description) > 5)r;   r   r   r	   r   r   r   r   r   r   r   r   rY   s      r+   _get_model_schemaModelOne._get_model_schemai   s3   F#4d366":64c2	
 	4d3?F3K%@8VBZ(_:>	
 	:wD9A#Cy	 9gz)'<=M0AB	
 	4d3=&+.:w
3C(DE23	
 r-    )__name__
__module____qualname____firstlineno____requires__r;   __annotations__classmethodr\   re   __static_attributes__rg   r-   r+   r7   r7   7   s8    4LFC* *X , ,r-   r7   c                  P    \ rS rSrSrSS0rSSSSS	S
.r\S 5       r\S 5       r	Sr
g)NamingConvModel   r9   conv_all_constraint_namesTzix_%(column_0_label)sz%uq_%(table_name)s_%(constraint_name)sz%ck_%(table_name)s_%(constraint_name)sz;fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)szpk_%(table_name)s)ixuqckfkpkc                   [        5       n[        SU[        S[        5      [	        SS5      [        SSS95        [        SU[        S[        5      [        S[        SS	S95      [        S
SS95        [        SU[        S[        5      [        S[        5      [        S[        5      [        SSS95        [        SU[        S[        5      [        SSS95        [        SU[        S[        5      [        S[        SSS95      [        S[        5      [        S[        5      [        SSS9[        SSS9[        SSS95	        [        SU[        S[        5      [        S[        5      [        S5      [        S5      5        U$ )Nx1qdb_x1_index_qdb_x1_primary_qrT   x2px1.qdb_x2_foreign_qq > 5db_x2_check_qx3rsdb_x3_unique_qx4db_x4_primary_qx5x4.qdb_x5_foreign_qdb_x5_primary_qdb_x5_unique_rs > 5db_x5_check_sunnamed_sqlite)	r   r   r	   r   r   r   r   r   r   )rZ   r[   s     r+   r\   NamingConvModel._get_db_schema   sg   
 J3 /3' +<=	
 	3 3
60ABCG/:	
 	3 3 3 S'78	
 	3  +<=		
 	3 3
60ABC3 3  +<=S'78G/:
	
 	3 3  %S!	
 r-   c                   SSK Jn  [        U R                  S9n[	        SU[        S[        SS9[        S S5      5        [	        SU[        S[        5      [        S	[        S
5      5      [        SSS95        [	        SU[        S[        5      [        S[        5      [        S[        5      [        SSS9[        SU" S5      S95        [	        SU[        S[        SS9[        SS5      5        [	        SU[        S[        SS9[        S	[        S5      5      [        S[        5      [        S[        5      [        SSS9[        SS5      [        SU" S5      5      5	        U$ )Nr   )conv)naming_conventionrz   r{   Tr@   r~   r   r   r   token_x2check1rT   r   r   r   	token_x3ruserdef_x3_unique_sr   userdef_x4_idx_qx6r   	token_x6rr   token_x6check1zs < 20userdef_x6_check_s)sqlalchemy.sql.namingr   r   r   r   r	   r   r   r   r   r   )rZ   r   r[   s      r+   re   !NamingConvModel._get_model_schema   sD   .s'<'<=!VCd;U4=M	
 	3 3
6*+G*:;	
 	3 3 3 S{3St,A'BC	
 	3T2$c*		
 	3T23
6*+3 3 S{3G%56Hd+?&@A
	
 r-   rg   N)rh   ri   rj   rk   rl   configure_optsr   rn   r\   re   ro   rg   r-   r+   rq   rq      sQ    4L148N%55K! 6 6p ( (r-   rq   c                  ,    \ rS rSr       SS jrSrg)_ComparesFKsi	  Nc           
        [        US   5      u
  nnnnnnnnnn[        US   U5        [        X5        [        UU5        [        UU5        [        X5        [        UU
5        [        UU5        [        UU5        [        UU5        [        US   R                   Vs/ s H  nUR                  R                  PM     snU5        Ubf  US:X  aF  [        U R                  5      R                  U5      nUS   S   n[        US   R                  U5        g [        US   R                  U5        g [        US   R                  U5        g s  snf )N   r   servergeneratedr(   )r   r    elementscolumnr(   r   bindget_foreign_keys)selfdiffr0   source_tablesource_columnstarget_tabletarget_columnsr(   conditional_namesource_schemaonupdateondelete	initially
deferrablefk_source_schemafk_source_tablefk_source_columnsfk_target_schemafk_target_tablefk_target_columnsfk_onupdatefk_ondeletefk_deferrablefk_initiallyelemfksserver_fk_names                              r+   _assert_fk_diff_ComparesFKs._assert_fk_diff
  s1   < T!W	
 	DGUO*~.O\*,K"K"L)$M:&$q'*:*:;*:$T[[*:;^L'#44dii(99,G!$QDGLL.1DGLL"23Qd# <s    Erg   )NNNNNNN)rh   ri   rj   rk   r   ro   rg   r-   r+   r   r   	  s     3$r-   r   c                  r    \ rS rSr% S r\S 5       r0 rS\S'   \S 5       r	\S 5       r
S rS	 r SS jrSrg
)AutogenTesti@  c              #     #    U H7  n[        U[        5      (       a  U R                  U5       S h  vN   M3  Uv   M9     g  N7fr&   )
isinstancelist_flatten_diffs)r   diffsds      r+   r   AutogenTest._flatten_diffsA  s8     A!T""..q111	 1s   /AAAc                "    [         R                  $ r&   )r   dbrZ   s    r+   	_get_bindAutogenTest._get_bindH  s    yyr-   zDict[Any, Any]r   c                    [        5         U R                  5       U l        U R                  5       U l        U R                  R                  U R                  5        U R                  5       U l        g r&   )r"   r   r   r\   m1
create_allre   m2r   s    r+   setup_classAutogenTest.setup_classN  sJ    ==?##%#((#&&(r-   c                b    U R                   R                  U R                  5        [        5         g r&   )r   drop_allr   r!   r   s    r+   teardown_classAutogenTest.teardown_classV  s    !r-   c           
     Z   U R                   R                  5       =U l        nSSU R                  SSSS[        [
        S.	nU R                  (       a  UR                  U R                  5        [        R                  " XS9=U l
        n[        R                  " X0R                  5      U l        g )NTupgrades
downgradesop.sa.)	compare_typecompare_server_defaulttarget_metadataupgrade_tokendowngrade_tokenalembic_module_prefixsqlalchemy_module_prefixinclude_objectinclude_name
connectionopts)r   connectconnr   r4   r5   r   updater   	configurecontextr   AutogenContextautogen_context)r   r   ctx_optsr   s       r+   setUpAutogenTest.setUp[  s    99,,..	D &*#ww'+%*(-51

 OOD//0!1!;!;"
 	
w  #11'77Cr-   c                8    U R                   R                  5         g r&   )r   closer   s    r+   tearDownAutogenTest.tearDownp  s    		r-   Nc                    Ub  X0R                   R                  S'   Ub  U/U R                   l        Ub  U/U R                   l        U R                   $ )Ninclude_schemas)r   r   _object_filters_name_filters)r   object_filtersname_filtersr   s       r+   _update_contextAutogenTest._update_contexts  sX     &;J  %%&78%4B3CD  0#2>D  .###r-   )r   r   r   )NNN)rh   ri   rj   rk   r   rn   r   r   rm   r   r   r   r   r  ro   rg   r-   r+   r   r   @  sd       &(NN') )  D* GK	$r-   r   c                  6    \ rS rSrSS\\SS4S jrS rS rSr	g)AutogenFixtureTesti  FNc	                &   U(       a0  U R                   R                  n	U	R                  n
U=U	l        U	l         XsU l        n[
        R                  " U R                  5       H  nUR                  U R                   5        M      U R                   R                  5        nSSUSSSSUUUS.
nU(       a  UR                  U5        [        R                  " XS9=U l        n[        R                  " X5      n[        R                   " / S9n["        R$                  " UU5        U(       a7  UsS S S 5        U(       a%  U R                   R                  n	W
=U	l        U	l        $ $ UR'                  5       sS S S 5        U(       a%  U R                   R                  n	W
=U	l        U	l        $ $ ! , (       d  f       O= f U(       a%  U R                   R                  n	W
=U	l        U	l        g g ! U(       a%  U R                   R                  n	W
=U	l        U	l        f f = f)	NTr   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   )r   dialectmax_identifier_length#_user_defined_max_identifier_length_alembic_metadatar   to_listr   r   r   r   r   r   r   r   r   
UpgradeOpsr   _produce_net_changesas_diffs)r   r   r   r   r   r  r  
return_opsr	  r  existing_lengthmodel_metadatar[   r   r   r   r   uos                     r+   _fixtureAutogenFixtureTest._fixture  s    !ii''G%;;O &&G);%	$572D"N\\$"8"89TYY' : ""$$(.2'5%/'3-205&4$0'6 OOD))9)C)C#* w #&"4"4W"M^^+11/2F1 %$8 %))++ $$-? % ;;=5 %$8 %))++ $$-? %9 %$$8 %))++ $$-? %$))++ $$-? %s1   A%G" B
F#(	G" F#-	G" #
F1-G" ".Hc                B    [        5         [        R                  U l        g r&   )r"   r   r   r   r   s    r+   r   AutogenFixtureTest.setUp  s    II	r-   c                    [        U S5      (       aB  [        R                  " U R                  5       H  nUR	                  U R
                  5        M      [        5         g )Nr  )hasattrr   r  r  r   r   r!   )r   r[   s     r+   r   AutogenFixtureTest.tearDown  s?    4,--\\$"8"89

499% :r-   )r  r   r   )
rh   ri   rj   rk   r4   r5   r  r   r   ro   rg   r-   r+   r  r    s&    
 .*"6$pr-   r  )4
__future__r   typingr   r   r   
sqlalchemyr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   ddl.baser   	migrationr   
operationsr   testingr   r    testing.envr!   r"   setr#   rm   listens_forr,   r3   r4   r5   r7   rq   r   r   r  rg   r-   r+   <module>r&     s    "     &   !      +     '      )    , &"u H $ 5/0' 1'  7  6! s !_ _Dm m`4$ 4$n<$, <$~A Ar-   