
    [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dS )    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dS )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     p/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/sqlalchemy/testing/suite/test_ddl.py_simple_fixturezTableDDLTest._simple_fixture"   sK    M4d%HHH66"::&&
 
 
 	
    c                     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+   sC    M4d%HHH7F2JJ''	
 
 	
r(   c                 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   s5    $$F$33L%',//czr(   c                 z   t           j                                        5 }|                    |                                                    d                     |                    |                                          }t          |                                d           d d d            d S # 1 swxY w Y   d S )N)r   z	some data)	r   dbbeginexecuteinsertvaluesselectr	   first)r%   r0   connresults       r&   _simple_roundtripzTableDDLTest._simple_roundtrip8   s    Y__ 	2$LL../?@@AAA\\%,,..11F 0111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   BB00B47B4c                     |                                  }|                    t          j        d           |                     |           d S NF
checkfirst)r'   creater   r4   r=   r%   r0   s     r&   test_create_tablezTableDDLTest.test_create_table>   sG     $$&&VY5111u%%%%%r(   c                     |                      t          j                  }|                    t          j        d           |                     |           d S )Nr   Fr@   )r'   r   test_schemarB   r4   r=   rC   s     r&   test_create_table_schemaz%TableDDLTest.test_create_table_schemaE   sO     $$F,>$??VY5111u%%%%%r(   c                     |                                  }|                    t          j        d           |                    t          j        d           d S r?   )r'   rB   r   r4   droprC   s     r&   test_drop_tablezTableDDLTest.test_drop_tableM   sK     $$&&VY5111

69
/////r(   c                     |                                  }|                    t          j        d           |                     |           d S r?   )r,   rB   r   r4   r=   rC   s     r&   test_underscore_namesz"TableDDLTest.test_underscore_namesT   sG     ((**VY5111u%%%%%r(   c                    |                                  }|                    |d           d|_        |                    t	          j        |                     t          t          |                              d          ddi           d S 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[   s     $$&&ZE222#61%88999J11,??[!	
 	
 	
 	
 	
r(   c                 j   |                                  }|                    |d           d|_        |                    t	          j        |                     |                    t	          j        |                     t          t          |          	                    d          dd i           d S 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22#61%8899962599:::J11,??&$	
 	
 	
 	
 	
r(   c                 0   |                                  }|                    t          j        |d                     t	          t          |                              d                     |                    t          j        |d                     d S )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HHIII
##--l;;<<<6-e4HHHIIIIIr(   c                 t   |                                  \  }}|                    t          j        |d                     t	          t          |                              d                     t          dd t          |                              d          D             v            |                    t          j	        |d                     t	          dd t          |                              d          D             v            |                    t          j	        |d                     d S )NTrZ   r   r.   c                     g | ]
}|d          S name .0ixs     r&   
<listcomp>z@TableDDLTest.test_create_index_if_not_exists.<locals>.<listcomp>   ,        6
  r(   c                     g | ]
}|d          S ra   rc   rd   s     r&   rg   z@TableDDLTest.test_create_index_if_not_exists.<locals>.<listcomp>   rh   r(   )
r2   r6   r   r\   r   r   r]   r
   get_indexesCreateIndexr%   rT   r0   r1   s       r&   test_create_index_if_not_existsz,TableDDLTest.test_create_index_if_not_exists}   sK    ..00
s6-e4HHHIII
##--l;;<<< !*--99,GG  	
 	
 	
 	6-cFFFGGG !*--99,GG  	
 	
 	
 	6-cFFFGGGGGr(   c                    |                                  }|                    |           t          t          |                              d                     |                    t          j        |d                     t          t          |                              d                     |                    t          j        |d                     d S )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BBCCC$$..|<<===6+ETBBBCCCCCr(   c                    |                                  \  }}|                    |           t          dd t          |                              d          D             v            |                    t          j        |d                     t          dd t          |                              d          D             v            |                    t          j        |d                     d S )Nr.   c                     g | ]
}|d          S ra   rc   rd   s     r&   rg   z:TableDDLTest.test_drop_index_if_exists.<locals>.<listcomp>   rh   r(   r   Tro   c                     g | ]
}|d          S ra   rc   rd   s     r&   rg   z:TableDDLTest.test_drop_index_if_exists.<locals>.<listcomp>   rh   r(   )	r2   rB   r   r   rj   r6   r   	DropIndexr
   rl   s       r&   test_drop_index_if_existsz&TableDDLTest.test_drop_index_if_exists   s    ..00
sZ    !*--99,GG  	
 	
 	
 	6+C4@@@AAA !*--99,GG  	
 	
 	
 	6+C4@@@AAAAAr(   )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_existsrm   rr   rw   rc   r(   r&   r   r      s=       K
 
 
 

 
 
   
2 2 2 	& &  &
 	& &   &
 	0 0  0
 	& &  &
 $	
 
  %$
 $	
 
  %$
 %	J J  &%J %	H H  &%H2 %	D D  &%D %	B B  &%B B Br(   r   c                       e Zd ZdS )FutureTableDDLTestN)rx   ry   rz   rc   r(   r&   r   r      s        Dr(   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                                        fde
j        j                                        fd          d             ZdS )LongNameBlowoutTestzjtest the creation of a variety of DDL structures and ensure
    label length limits pass on backends

    Tc           	          ddd                     d t          d          D                       z   i}||_        t          d|t	          dt
          d	          d
           t          dgdg          }t          d|t	          d          |d
           |j        }|                    |           t          j
        j        j        r6t          |          }|                    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   n   K   | ]0}d                      d t          d          D                       V  1dS ) c              3   >   K   | ]}t          j        d           V  dS abcdefNrandomchoicere   js     r&   	<genexpr>z3LongNameBlowoutTest.fk.<locals>.<genexpr>.<genexpr>   ,      GGFM(33GGGGGGr(      Njoinrangere   is     r&   r   z)LongNameBlowoutTest.fk.<locals>.<genexpr>   W         GGGGU2YYGGGGG     r(   
   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   rb   )r   r   naming_conventionr   r   r   r   rb   
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   sM    '   "2YY    	


 &0"!('tDDD		
 	
 	
 	
 $G?@
 
 	'  	
 	
 	
 	
 iJ'''BJ 	%:&&D''(CDDC VF^N..$$r(   c           
         ddd                     d t          d          D                       z   i}||_        t          d|t	          dt
          d	          t	          d
t
          d	                    }|j        }|j        }|                    |           t          |          }|
                    d          }|d         }	||	fS )Npkz.primary_key_%(table_name)s_%(column_0_N_name)sr   c              3   n   K   | ]0}d                      d t          d          D                       V  1dS )r   c              3   >   K   | ]}t          j        d           V  dS 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_namerb   )r   r   r   r   r   r   r   rb   r   r   get_pk_constraint)
r%   r$   rT   r   ar   r   r   r   r   s
             r&   r   zLongNameBlowoutTest.pk   s     "   "2YY    	

 &0"!('tDDD)7EEE	
 
 }iJ'''z""##$9::FN**r(   c           	         ddd                     d t          d          D                       z   i}||_        t          d|t	          dt
          d	          t	          d
t
                              }t          d |j        j        |j        j	                  }|j
        }|                    |           t          |          }|                    d          }|d         d         }	||	fS )Nrf   z(index_%(table_name)s_%(column_0_N_name)sr   c              3   n   K   | ]0}d                      d t          d          D                       V  1dS )r   c              3   >   K   | ]}t          j        d           V  dS 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   rb   )r   r   r   r   r   r   r   r/   r   r   rb   r   r   rj   )
r%   r$   rT   r   r   r   r   r   rf   r   s
             r&   rf   zLongNameBlowoutTest.ix  s     "   "2YY    	

 &0"!('tDDD)733	
 
 T132AC4LMMiJ'''z""344AvN**r(   c           	         ddd                     d t          d          D                       z   i}||_        t          dd          }t	          d|t          dt          d	
          t          dt                    |           |j        }|                    |           t          |          }|
                    d          }|d         d         }||fS )Nuqz4unique_constraint_%(table_name)s_%(column_0_N_name)sr   c              3   n   K   | ]0}d                      d t          d          D                       V  1dS )r   c              3   >   K   | ]}t          j        d           V  dS 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   rb   )r   r   r   r   r   r   r   rb   r   r   get_unique_constraints)	r%   r$   rT   r   r   r   r   r   r   s	            r&   r   zLongNameBlowoutTest.uq5  s     "   "2YY    	

 &0" 57MNN!('tDDD)733	
 	
 	
 iJ'''z""(()>??AvN**r(   c           	         ddd                     d t          d          D                       z   i}||_        t          d          }t	          d|t          dt          d	
          t          dt                    |           |j        }|                    |           t          |          }|
                    d          }|d         d         }||fS )Nckzcheck_constraint_%(table_name)sr   c              3   n   K   | ]0}d                      d t          d          D                       V  1dS )r   c              3   >   K   | ]}t          j        d           V  dS 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   rb   )r   r   r   r   r   r   r   rb   r   r   get_check_constraints)	r%   r$   rT   r   r   r   r   r   r   s	            r&   r   zLongNameBlowoutTest.ckR  s    3  "2YY    

 &0":;;!('tDDD*G44	
 	
 	
 iJ'''z""''(=>>AvN**r(   )r   )r   )rf   r   r   type_)argnamesc                 d    t          | |          ||          \  }}t          |          dk    sJ |{|dt          |                   }t          |          t          |          k     r2t          |dd         |dt          |          dz
                      d S t          ||           d S d S )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&9"9:G7||c+....GAbDM>!c'llQ6F2F#GHHHHHG^,,,,, &%r(   N)rx   ry   rz   __doc__r{   r   r   rf   r   r   r   combinationsr   check_constraint_reflectionas_skipsunique_constraint_reflectionr   rc   r(   r&   r   r      s         
 K,% ,% ,%\+ + +8+ + +8+ + +:+ + +8 W	w;DDFFG	w<EEG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__rc   r(   r&   <module>r      s                                  ! ! ! ! ! !             ! ! ! ! ! !                   $ $ $ $ $ $                                          aB aB aB aB aB8$ aB aB aBH	 	 	 	 	3\ 	 	 	{- {- {- {- {-(+ {- {- {-| Hr(   