
    5h.                     h   S SK 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\R*                  5      r " S S\R.                  \5      r " S S\R*                  5      rSrg)    N   )testing   )config)fixtures)util)eq_)is_false)is_true)requirements)Table   )CheckConstraint)Column)ForeignKeyConstraint)Index)inspect)Integerschema)String)UniqueConstraintc                      \ rS rSrSrSS jrS rSS jrS r\	R                  \R                  S 5       5       r\	R                  \	R                  \R                  S	 5       5       5       r\	R                   \R                  S
 5       5       r\	R                  \R                  S 5       5       r\	R&                  \R                  S 5       5       r\	R&                  \R                  S 5       5       r\	R,                  \R                  S 5       5       r\	R0                  \R                  S 5       5       r\	R,                  \R                  S 5       5       r\	R0                  \R                  S 5       5       rSrg)TableDDLTest   TNc                 r    [        SU R                  [        S[        SSS9[        S[	        S5      5      US9$ )	N
test_tableidTFprimary_keyautoincrementdata2   r   r   metadatar   r   r   )selfr   s     l/var/www/html/cementerio_25MayoBackend/env/lib/python3.13/site-packages/sqlalchemy/testing/suite/test_ddl.py_simple_fixtureTableDDLTest._simple_fixture"   s8    MM4d%H66":&
 	
    c                 t    [        SU R                  [        S[        SSS9[        S[	        S5      5      5      $ )N_test_tabler   TFr   _datar#   r$   )r&   s    r'   _underscore_fixture TableDDLTest._underscore_fixture+   s5    MM4d%H7F2J'	
 	
r*   c                 f    U R                  US9n[        SUR                  R                  5      nX#4$ )Nr   
test_index)r(   r   cr"   )r&   r   tableidxs       r'   _table_index_fixture!TableDDLTest._table_index_fixture3   s1    $$F$3L%'',,/zr*   c                 B   [         R                  R                  5        nUR                  UR	                  5       R                  S5      5        UR                  UR                  5       5      n[        UR                  5       S5        S S S 5        g ! , (       d  f       g = f)N)r   z	some data)	r   dbbeginexecuteinsertvaluesselectr	   first)r&   r3   connresults       r'   _simple_roundtripTableDDLTest._simple_roundtrip8   sa    YY__$LL../?@A\\%,,.1F 01 s   A(B
Bc                     U R                  5       nUR                  [        R                  SS9  U R	                  U5        g NF
checkfirst)r(   creater   r8   rA   r&   r3   s     r'   test_create_tableTableDDLTest.test_create_table>   s4     $$&VYY51u%r*   c                     U R                  [        R                  S9nUR                  [        R                  SS9  U R                  U5        g )Nr   FrE   )r(   r   test_schemarG   r8   rA   rH   s     r'   test_create_table_schema%TableDDLTest.test_create_table_schemaE   s?     $$F,>,>$?VYY51u%r*   c                     U R                  5       nUR                  [        R                  SS9  UR	                  [        R                  SS9  g rD   )r(   rG   r   r8   droprH   s     r'   test_drop_tableTableDDLTest.test_drop_tableM   s:     $$&VYY51

699
/r*   c                     U R                  5       nUR                  [        R                  SS9  U R	                  U5        g rD   )r.   rG   r   r8   rA   rH   s     r'   test_underscore_names"TableDDLTest.test_underscore_namesT   s4     ((*VYY51u%r*   c                     U R                  5       nUR                  USS9  SUl        UR                  [        R
                  " U5      5        [        [        U5      R                  S5      SS05        g NFrE   z	a commentr   text)	r(   rG   commentr:   r   SetTableCommentr	   r   get_table_commentr&   
connectionr3   s      r'   test_add_table_comment#TableDDLTest.test_add_table_comment[   se     $$&ZE2#611%89J11,?[!	
r*   c                 2   U R                  5       nUR                  USS9  SUl        UR                  [        R
                  " U5      5        UR                  [        R                  " U5      5        [        [        U5      R                  S5      SS 05        g rW   )
r(   rG   rY   r:   r   rZ   DropTableCommentr	   r   r[   r\   s      r'   test_drop_table_comment$TableDDLTest.test_drop_table_commentg   s|     $$&ZE2#611%8962259:J11,?&$	
r*   c                     U R                  5       nUR                  [        R                  " USS95        [	        [        U5      R                  S5      5        UR                  [        R                  " USS95        g )NTif_not_existsr   )r(   r:   r   CreateTabler   r   	has_tabler\   s      r'   test_create_table_if_not_exists,TableDDLTest.test_create_table_if_not_existss   s`     $$&6--e4HI
#--l;<6--e4HIr*   c                 >   U R                  5       u  p#UR                  [        R                  " USS95        [	        [        U5      R                  S5      5        [        S[        U5      R                  S5       Vs/ sH  nUS   PM
     sn;   5        UR                  [        R                  " USS95        [	        S[        U5      R                  S5       Vs/ sH  nUS   PM
     sn;   5        UR                  [        R                  " USS95        g s  snf s  snf )NTre   r   r1   name)
r5   r:   r   rg   r   r   rh   r
   get_indexesCreateIndexr&   r]   r3   r4   ixs        r'   test_create_index_if_not_exists,TableDDLTest.test_create_index_if_not_exists}   s    ..0
6--e4HI
#--l;< "*-99,GGB 6
G	
 	6--cFG "*-99,GGB 6
G	
 	6--cFG!s   <D
D
c                 b   U R                  5       nUR                  U5        [        [        U5      R	                  S5      5        UR                  [        R                  " USS95        [        [        U5      R	                  S5      5        UR                  [        R                  " USS95        g )Nr   T	if_exists)	r(   rG   r   r   rh   r:   r   	DropTabler
   r\   s      r'   test_drop_table_if_exists&TableDDLTest.test_drop_table_if_exists   s     $$&Z 
#--l;<6++ETBC$..|<=6++ETBCr*   c                    U R                  5       u  p#UR                  U5        [        S[        U5      R	                  S5       Vs/ sH  nUS   PM
     sn;   5        UR                  [        R                  " USS95        [        S[        U5      R	                  S5       Vs/ sH  nUS   PM
     sn;   5        UR                  [        R                  " USS95        g s  snf s  snf )Nr1   r   rl   Trt   )	r5   rG   r   r   rm   r:   r   	DropIndexr
   ro   s        r'   test_drop_index_if_exists&TableDDLTest.test_drop_index_if_exists   s     ..0
Z  "*-99,GGB 6
G	
 	6++C4@A "*-99,GGB 6
G	
 	6++C4@A!s   C
#C$
 )N)__name__
__module____qualname____firstlineno____backend__r(   r.   r5   rA   r   create_tabler   provide_metadatarI   schemasrM   
drop_tablerQ   rT   comment_reflectionr^   rb   table_ddl_if_existsri   index_ddl_if_existsrq   rw   r{   __static_attributes__r}   r*   r'   r   r      s   K


2 	&  &
 	&   &
 	0  0
 	&  &
 $$	
  %
 $$	
  %
 %%	J  &J %%	H  &H2 %%	D  &D %%	B  &Br*   r   c                       \ rS rSrSrg)FutureTableDDLTest   r}   N)r~   r   r   r   r   r}   r*   r'   r   r      s    r*   r   c            	           \ rS rSrSrSrS rS rS rS r	S r
\R                  " S	S
SS\R                  R                  R                  5       4S\R                  R                   R                  5       4SS9S 5       rSrg)LongNameBlowoutTest   zbtest the creation of a variety of DDL structures and ensure
label length limits pass on backends

Tc           
         SSSR                  S [        S5       5       5      -   0nX1l        [        SU[	        S[
        SS	9SS
9  [        S/S/5      n[        SU[	        S5      USS
9  UR                  nUR                  U5        [        R                  R                  R                  (       a'  [        U5      nUR                  S5      nUS   S   nXX4$ US 4$ )NfkzGforeign_key_%(table_name)s_%(column_0_N_name)s_%(referred_table_name)s__c              3   b   #    U H&  nS R                  S [        S5       5       5      v   M(     g7f) c              3   L   #    U H  n[         R                  " S 5      v   M     g7fabcdefNrandomchoice.0js     r'   	<genexpr>3LongNameBlowoutTest.fk.<locals>.<genexpr>.<genexpr>        GYFMM(33Y   "$   Njoinranger   is     r'   r   )LongNameBlowoutTest.fk.<locals>.<genexpr>   -      & GGGU2YGGG&   -/
   a_things_with_stuffid_long_column_nameTr    )test_needs_fkaidz'a_things_with_stuff.id_long_column_nameb_related_things_of_valuer   rl   )r   r   naming_conventionr   r   r   r   rl   
create_allr   requires&foreign_key_constraint_name_reflectionenabledr   get_foreign_keys)	r&   r%   r]   
conventionconsactual_nameinspfksreflected_names	            r'   r   LongNameBlowoutTest.fk   s     '  "2Y 	


 &0"!('tD		
 $G?@
 	' 	
 iiJ'BBJJ:&D''(CDC VF^N..$$r*   c                 D   SSSR                  S [        S5       5       5      -   0nX1l        [        SU[	        S[
        SS	9[	        S
[
        SS	95      nUR                  nUR                  nUR                  U5        [        U5      nUR                  S5      nUS   n	Xi4$ )Npkz.primary_key_%(table_name)s_%(column_0_N_name)sr   c              3   b   #    U H&  nS R                  S [        S5       5       5      v   M(     g7f)r   c              3   L   #    U H  n[         R                  " S 5      v   M     g7fr   r   r   s     r'   r   3LongNameBlowoutTest.pk.<locals>.<genexpr>.<genexpr>  r   r      Nr   r   s     r'   r   )LongNameBlowoutTest.pk.<locals>.<genexpr>  r   r   r   r   r   Tr   id_another_long_namerl   )r   r   r   r   r   r   r    rl   r   r   get_pk_constraint)
r&   r%   r]   r   ar   r   r   r   r   s
             r'   r   LongNameBlowoutTest.pk   s     "  "2Y 	

 &0"!('tD)7E	
 }}iiJ'z"##$9:F**r*   c           
         SSSR                  S [        S5       5       5      -   0nX1l        [        SU[	        S[
        SS	9[	        S
[
        5      5      n[        S UR                  R                  UR                  R                  5      nUR                  nUR                  U5        [        U5      nUR                  S5      nUS   S   n	Xi4$ )Nrp   z(index_%(table_name)s_%(column_0_N_name)sr   c              3   b   #    U H&  nS R                  S [        S5       5       5      v   M(     g7f)r   c              3   L   #    U H  n[         R                  " S 5      v   M     g7fr   r   r   s     r'   r   3LongNameBlowoutTest.ix.<locals>.<genexpr>.<genexpr>  r   r   r   Nr   r   s     r'   r   )LongNameBlowoutTest.ix.<locals>.<genexpr>  r   r   r   r   r   Tr   r   r   rl   )r   r   r   r   r   r   r   r2   r   r   rl   r   r   rm   )
r&   r%   r]   r   r   r   r   r   rp   r   s
             r'   rp   LongNameBlowoutTest.ix  s     "  "2Y 	

 &0"!('tD)73	
 T13322ACC4L4LMiiJ'z"34Av**r*   c           
      N   SSSR                  S [        S5       5       5      -   0nX1l        [        SS5      n[	        SU[        S[        S	S
9[        S[        5      U5        UR                  nUR                  U5        [        U5      nUR                  S5      nUS   S   nXX4$ )Nuqz4unique_constraint_%(table_name)s_%(column_0_N_name)sr   c              3   b   #    U H&  nS R                  S [        S5       5       5      v   M(     g7f)r   c              3   L   #    U H  n[         R                  " S 5      v   M     g7fr   r   r   s     r'   r   3LongNameBlowoutTest.uq.<locals>.<genexpr>.<genexpr>;  r   r   r   Nr   r   s     r'   r   )LongNameBlowoutTest.uq.<locals>.<genexpr>:  r   r   r   r   r   r   Tr   r   rl   )r   r   r   r   r   r   r   rl   r   r   get_unique_constraints)	r&   r%   r]   r   r   r   r   r   r   s	            r'   r   LongNameBlowoutTest.uq5  s     "  "2Y 	

 &0" 57MN!('tD)73	
 iiJ'z"(()>?Av**r*   c           
      L   SSSR                  S [        S5       5       5      -   0nX1l        [        S5      n[	        SU[        S[        S	S
9[        S[        5      U5        UR                  nUR                  U5        [        U5      nUR                  S5      nUS   S   nXX4$ )Nckzcheck_constraint_%(table_name)sr   c              3   b   #    U H&  nS R                  S [        S5       5       5      v   M(     g7f)r   c              3   L   #    U H  n[         R                  " S 5      v   M     g7fr   r   r   s     r'   r   3LongNameBlowoutTest.ck.<locals>.<genexpr>.<genexpr>W  r   r   r   Nr   r   s     r'   r   )LongNameBlowoutTest.ck.<locals>.<genexpr>V  r   r   r   zsome_long_column_name > 5r   r   Tr   some_long_column_namer   rl   )r   r   r   r   r   r   r   rl   r   r   get_check_constraints)	r&   r%   r]   r   r   r   r   r   r   s	            r'   r   LongNameBlowoutTest.ckR  s    3 "2Y 

 &0":;!('tD*G4	
 iiJ'z"''(=>Av**r*   )r   )r   )rp   r   r   type_)argnamesc                     [        X5      " X#5      u  pE[        U5      S:  d   eUbQ  US[        U5       n[        U5      [        U5      :  a  [        USS US[        U5      S-
   5        g [        Xe5        g g )N   r      )getattrlenr	   )r&   r   r%   r]   r   r   overlaps          r'   test_long_convention_name-LongNameBlowoutTest.test_long_convention_namen  s     '.d&:'
# ;#%%%%!!c.&9:G7|c+..GAbM>!c'lQ6F#GHG, &r*   r}   N)r~   r   r   r   __doc__r   r   r   rp   r   r   r   combinationsr   check_constraint_reflectionas_skipsunique_constraint_reflectionr   r   r}   r*   r'   r   r      s    
 K,%\+8+8+:+8 	w;;DDFG	w<<EEGH--r*   r   )r   r   r   )r   r   r   r   r   r   
assertionsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   TestBaser   FutureEngineMixinr   r   __all__r}   r*   r'   <module>r      s          !   !    $       aB8$$ aBH	33\ 	{-(++ {-| Hr*   