
    g.                     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 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j*                        Z G d dej.                  e      Z G d dej*                        ZdZy)    N   )testing   )config)fixtures)util)eq_)is_false)is_true)requirements)Table   )CheckConstraint)Column)ForeignKeyConstraint)Index)inspect)Integerschema)String)UniqueConstraintc                      e Zd ZdZddZd ZddZd Zej                  e
j                  d               Zej                  ej                  e
j                  d                      Zej                  e
j                  d	               Zej                  e
j                  d
               Zej$                  e
j                  d               Zej$                  e
j                  d               Zej*                  e
j                  d               Zej.                  e
j                  d               Zej*                  e
j                  d               Zej.                  e
j                  d               Zy)TableDDLTestTNc                 ~    t        d| j                  t        dt        dd      t        dt	        d            |      S )	N
test_tableidTFprimary_keyautoincrementdata2   r   r   metadatar   r   r   )selfr   s     `/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_ddl.py_simple_fixturezTableDDLTest._simple_fixture"   s8    MM4d%H66":&
 	
    c                 z    t        d| j                  t        dt        dd      t        dt	        d                  S )N_test_tabler   TFr   _datar"   r#   )r%   s    r&   _underscore_fixturez TableDDLTest._underscore_fixture+   s5    MM4d%H7F2J'	
 	
r(   c                 n    | j                  |      }t        d|j                  j                        }||fS )Nr   
test_index)r'   r   cr!   )r%   r   tableidxs       r&   _table_index_fixturez!TableDDLTest._table_index_fixture3   s3    $$F$3L%'',,/czr(   c                 8   t         j                  j                         5 }|j                  |j	                         j                  d             |j                  |j                               }t        |j                         d       d d d        y # 1 sw Y   y xY w)N)r   z	some data)	r   dbbeginexecuteinsertvaluesselectr	   first)r%   r0   connresults       r&   _simple_roundtripzTableDDLTest._simple_roundtrip8   sj    YY__ 	2$LL../?@A\\%,,.1F 01	2 	2 	2s   A(BBc                     | j                         }|j                  t        j                  d       | j	                  |       y NF
checkfirst)r'   creater   r4   r=   r%   r0   s     r&   test_create_tablezTableDDLTest.test_create_table>   s4     $$&VYY51u%r(   c                     | j                  t        j                        }|j                  t        j                  d       | j                  |       y )Nr   Fr@   )r'   r   test_schemarB   r4   r=   rC   s     r&   test_create_table_schemaz%TableDDLTest.test_create_table_schemaE   s?     $$F,>,>$?VYY51u%r(   c                     | j                         }|j                  t        j                  d       |j	                  t        j                  d       y r?   )r'   rB   r   r4   droprC   s     r&   test_drop_tablezTableDDLTest.test_drop_tableM   s:     $$&VYY51

699
/r(   c                     | j                         }|j                  t        j                  d       | j	                  |       y r?   )r,   rB   r   r4   r=   rC   s     r&   test_underscore_namesz"TableDDLTest.test_underscore_namesT   s4     ((*VYY51u%r(   c                     | j                         }|j                  |d       d|_        |j                  t	        j
                  |             t        t        |      j                  d      ddi       y NFr@   z	a commentr   text)	r'   rB   commentr6   r   SetTableCommentr	   r   get_table_commentr%   
connectionr0   s      r&   test_add_table_commentz#TableDDLTest.test_add_table_comment[   se     $$&ZE2#611%89J11,?[!	
r(   c                 4   | j                         }|j                  |d       d|_        |j                  t	        j
                  |             |j                  t	        j                  |             t        t        |      j                  d      dd i       y rN   )
r'   rB   rP   r6   r   rQ   DropTableCommentr	   r   rR   rS   s      r&   test_drop_table_commentz$TableDDLTest.test_drop_table_commentg   s|     $$&ZE2#611%8962259:J11,?&$	
r(   c                    | j                         }|j                  t        j                  |d             t	        t        |      j                  d             |j                  t        j                  |d             y )NTif_not_existsr   )r'   r6   r   CreateTabler   r   	has_tablerS   s      r&   test_create_table_if_not_existsz,TableDDLTest.test_create_table_if_not_existss   s`     $$&6--e4HI
#--l;<6--e4HIr(   c                 @   | j                         \  }}|j                  t        j                  |d             t	        t        |      j                  d             t        dt        |      j                  d      D cg c]  }|d   	 c}v        |j                  t        j                  |d             t	        dt        |      j                  d      D cg c]  }|d   	 c}v        |j                  t        j                  |d             y c c}w c c}w )NTrZ   r   r.   name)
r2   r6   r   r\   r   r   r]   r
   get_indexesCreateIndexr%   rT   r0   r1   ixs        r&   test_create_index_if_not_existsz,TableDDLTest.test_create_index_if_not_exists}   s    ..0
s6--e4HI
#--l;< "*-99,G 6
	
 	6--cFG "*-99,G 6
	
 	6--cFG!s   ?D
D
c                 j   | j                         }|j                  |       t        t        |      j	                  d             |j                  t        j                  |d             t        t        |      j	                  d             |j                  t        j                  |d             y )Nr   T	if_exists)	r'   rB   r   r   r]   r6   r   	DropTabler
   rS   s      r&   test_drop_table_if_existsz&TableDDLTest.test_drop_table_if_exists   s     $$&Z 
#--l;<6++ETBC$..|<=6++ETBCr(   c                    | j                         \  }}|j                  |       t        dt        |      j	                  d      D cg c]  }|d   	 c}v        |j                  t        j                  |d             t        dt        |      j	                  d      D cg c]  }|d   	 c}v        |j                  t        j                  |d             y c c}w c c}w )Nr.   r   r`   Trg   )	r2   rB   r   r   ra   r6   r   	DropIndexr
   rc   s        r&   test_drop_index_if_existsz&TableDDLTest.test_drop_index_if_exists   s     ..0
sZ  "*-99,G 6
	
 	6++C4@A "*-99,G 6
	
 	6++C4@A!s   C
#C#
)N)__name__
__module____qualname____backend__r'   r,   r2   r=   r   create_tabler   provide_metadatarD   schemasrG   
drop_tablerJ   rL   comment_reflectionrU   rX   table_ddl_if_existsr^   index_ddl_if_existsre   rj   rm    r(   r&   r   r      s   K


2 	&  &
 	&   &
 	0  0
 	&  &
 $$	
  %
 $$	
  %
 %%	J  &J %%	H  &H2 %%	D  &D %%	B  &Br(   r   c                       e Zd Zy)FutureTableDDLTestN)rn   ro   rp   ry   r(   r&   r{   r{      s    r(   r{   c            	           e Zd ZdZdZd Zd Zd Zd Zd Z	 e
j                  dd	d
de
j                  j                  j                         fde
j                  j                  j                         fd      d        Zy)LongNameBlowoutTestzjtest the creation of a variety of DDL structures and ensure
    label length limits pass on backends

    Tc           	         dddj                  d t        d      D              z   i}||_        t        d|t	        dt
        d	      d
       t        dgdg      }t        d|t	        d      |d
       |j                  }|j                  |       t        j                  j                  j                  r(t        |      }|j                  d      }|d   d   }||fS |d fS )NfkzGforeign_key_%(table_name)s_%(column_0_N_name)s_%(referred_table_name)s__c              3   ^   K   | ]%  }d j                  d t        d      D               ' yw) c              3   F   K   | ]  }t        j                  d         ywabcdefNrandomchoice.0js     r&   	<genexpr>z3LongNameBlowoutTest.fk.<locals>.<genexpr>.<genexpr>        GFMM(3G   !   Njoinranger   is     r&   r   z)LongNameBlowoutTest.fk.<locals>.<genexpr>   +       GGGU2Y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   r`   )r   r   naming_conventionr   r   r   r   r`   
create_allr   requires&foreign_key_constraint_name_reflectionenabledr   get_foreign_keys)	r%   r$   rT   
conventionconsactual_nameinspfksreflected_names	            r&   r   zLongNameBlowoutTest.fk   s    '  "2Y 	


 &0"!('tD		
 $G?@
 	' 	
 iiJ'BBJJ:&D''(CDC VF^N..$$r(   c           
      T   dddj                  d t        d      D              z   i}||_        t        d|t	        dt
        d	      t	        d
t
        d	            }|j                  }|j                  }|j                  |       t        |      }|j                  d      }|d   }	||	fS )Npkz.primary_key_%(table_name)s_%(column_0_N_name)sr   c              3   ^   K   | ]%  }d j                  d t        d      D               ' yw)r   c              3   F   K   | ]  }t        j                  d         ywr   r   r   s     r&   r   z3LongNameBlowoutTest.pk.<locals>.<genexpr>.<genexpr>  r   r      Nr   r   s     r&   r   z)LongNameBlowoutTest.pk.<locals>.<genexpr>  r   r   r   r   r   Tr   id_another_long_namer`   )r   r   r   r   r   r   r   r`   r   r   get_pk_constraint)
r%   r$   rT   r   ar   r   r   r   r   s
             r&   r   zLongNameBlowoutTest.pk   s     "  "2Y 	

 &0"!('tD)7E	
 }}iiJ'z"##$9:FN**r(   c           	         dddj                  d t        d      D              z   i}||_        t        d|t	        dt
        d	      t	        d
t
                    }t        d |j                  j                  |j                  j                        }|j                  }|j                  |       t        |      }|j                  d      }|d   d   }	||	fS )Nrd   z(index_%(table_name)s_%(column_0_N_name)sr   c              3   ^   K   | ]%  }d j                  d t        d      D               ' yw)r   c              3   F   K   | ]  }t        j                  d         ywr   r   r   s     r&   r   z3LongNameBlowoutTest.ix.<locals>.<genexpr>.<genexpr>  r   r   r   Nr   r   s     r&   r   z)LongNameBlowoutTest.ix.<locals>.<genexpr>  r   r   r   r   r   Tr   r   r   r`   )r   r   r   r   r   r   r   r/   r   r   r`   r   r   ra   )
r%   r$   rT   r   r   r   r   r   rd   r   s
             r&   rd   zLongNameBlowoutTest.ix  s     "  "2Y 	

 &0"!('tD)73	
 T13322ACC4L4LMiiJ'z"34AvN**r(   c           	      X   dddj                  d t        d      D              z   i}||_        t        dd      }t	        d|t        dt        d	
      t        dt              |       |j                  }|j                  |       t        |      }|j                  d      }|d   d   }||fS )Nuqz4unique_constraint_%(table_name)s_%(column_0_N_name)sr   c              3   ^   K   | ]%  }d j                  d t        d      D               ' yw)r   c              3   F   K   | ]  }t        j                  d         ywr   r   r   s     r&   r   z3LongNameBlowoutTest.uq.<locals>.<genexpr>.<genexpr>;  r   r   r   Nr   r   s     r&   r   z)LongNameBlowoutTest.uq.<locals>.<genexpr>:  r   r   r   r   r   r   Tr   r   r`   )r   r   r   r   r   r   r   r`   r   r   get_unique_constraints)	r%   r$   rT   r   r   r   r   r   r   s	            r&   r   zLongNameBlowoutTest.uq5  s     "  "2Y 	

 &0" 57MN!('tD)73	
 iiJ'z"(()>?AvN**r(   c           	      V   dddj                  d t        d      D              z   i}||_        t        d      }t	        d|t        dt        d	
      t        dt              |       |j                  }|j                  |       t        |      }|j                  d      }|d   d   }||fS )Nckzcheck_constraint_%(table_name)sr   c              3   ^   K   | ]%  }d j                  d t        d      D               ' yw)r   c              3   F   K   | ]  }t        j                  d         ywr   r   r   s     r&   r   z3LongNameBlowoutTest.ck.<locals>.<genexpr>.<genexpr>W  r   r   r   Nr   r   s     r&   r   z)LongNameBlowoutTest.ck.<locals>.<genexpr>V  r   r   r   zsome_long_column_name > 5r   r   Tr   some_long_column_namer   r`   )r   r   r   r   r   r   r   r`   r   r   get_check_constraints)	r%   r$   rT   r   r   r   r   r   r   s	            r&   r   zLongNameBlowoutTest.ckR  s    3 "2Y 

 &0":;!('tD*G4	
 iiJ'z"''(=>AvN**r(   )r   )r   )rd   r   r   type_)argnamesc                      t        | |      ||      \  }}t        |      dkD  sJ |Q|dt        |       }t        |      t        |      k  rt        |dd |dt        |      dz
          y t        ||       y y )N   r      )getattrlenr	   )r%   r   r$   rT   r   r   overlaps          r&   test_long_convention_namez-LongNameBlowoutTest.test_long_convention_namen  s     ';gdE&:j'
#^ ;#%%%%!!c.&9:G7|c+..GAbM>!c'lQ6F#GHG^, &r(   N)rn   ro   rp   __doc__rq   r   r   rd   r   r   r   combinationsr   check_constraint_reflectionas_skipsunique_constraint_reflectionr   ry   r(   r&   r}   r}      s    
 K,%\+8+8+:+8 W	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__ry   r(   r&   <module>r      s          !   !    $       aB8$$ aBH	33\ 	{-(++ {-| Hr(   