
    +h                      ^   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j&                        Z G d dej                         Z G d dej&                        Zy)   )config)fixtures)eq_)is_true)requirements)Column)Table   )inspect)Integer)MetaData)Sequence)String)testingc                   
   e Zd ZdZdZdZed        Zd Zd Z	d Z
ej                  d        Zd	 Zd
 Z ej"                  ddd      ej$                  j&                  d               Zej$                  j&                  d        Zy)SequenceTest	sequencesTeachc                 z   t        d|t        dt        t        d      d      t        dt	        d                   t        d|t        dt        t        dt        d	      d      t        dt	        d                   t        d
|t        dt        t        d      d      t        dt	        d            d       t
        j                  j                  j                  r]t        d|t        dt        t        dt        j                        d      t        dt	        d            dt        j                         y y )Nseq_pkid
tab_id_seqTprimary_keydata2   
seq_opt_pk)	data_typeoptionalseq_no_returningnoret_id_seqF)implicit_returningseq_no_returning_schnoret_sch_id_seqschemar#   r'   )r	   r   r   r   r   r   requiresschemasenabledr   test_schemaclsmetadatas     Y/var/www/html/venv/lib/python3.12/site-packages/sqlalchemy/testing/suite/test_sequence.pydefine_tableszSequenceTest.define_tables   s   & 	 66":&
	
 	4H 	 66":&
	
 	( 	 66":&$	
 ##++&/8J8JK $	 vvbz*#()) ,    c                     |j                  | j                  j                  j                         t	        d             | j                  | j                  j                  |       y N	some datar   )executetablesr   insertdict_assert_round_tripself
connections     r0   test_insert_roundtripz"SequenceTest.test_insert_roundtripL   sD    4;;--446+8NO 2 2J?r2   c                     |j                  | j                  j                  j                         t	        d            }t        |j                  t        j                  j                  j                  f       y r4   )r7   r8   r   r9   r:   r   inserted_primary_keyr   dbdialectdefault_sequence_baser=   r>   rs      r0   test_insert_lastrowidz"SequenceTest.test_insert_lastrowidP   sW    KK%%';)?
 	""WZZ%7%7%M%M$O	
r2   c                     |j                  | j                  j                  j                  j                  j
                        }t        |t        j                  j                  j                         y N)r7   r8   r   cr   defaultr   r   rB   rC   rD   rE   s      r0   test_nextval_directz SequenceTest.test_nextval_directX   sH    t{{113366>>?Awzz!!778r2   c                     |j                  | j                  j                  j                         t	        d            }t        |j                  d       y )Nr5   r6   )   )r7   r8   r   r9   r:   r   rA   rE   s      r0   test_optional_seqzSequenceTest.test_optional_seq\   sA    KK""))+T{-C
 	A""D)r2   c                     |j                  |j                               j                         }t        |t        j
                  j                  j                  df       y )Nr5   )r7   selectfirstr   r   rB   rC   rD   )r=   tableconnrows       r0   r;   zSequenceTest._assert_round_tripc   s>    ll5<<>*002C'**$$::KHIr2   c                     |j                  | j                  j                  j                         t	        d             | j                  | j                  j                  |       y r4   )r7   r8   r!   r9   r:   r;   r<   s     r0   +test_insert_roundtrip_no_implicit_returningz8SequenceTest.test_insert_roundtrip_no_implicit_returningg   sI    KK((//14[3I	
 	 < <jIr2   )T)Fr#   )argnamesc                 P   t        dt               t        dt        t	        dd      d      t        dt        d	            |d
      }|j                  dt        j                  i      }|j                  |j                         t        d             | j                  ||       y )Nr$   r   r%   
alt_schemar&   Tr   r   r   r(   schema_translate_mapr5   r6   )r	   r   r   r   r   r   execution_optionsr   r,   r7   r9   r:   r;   )r=   r>   r#   r!   s       r0   test_insert_roundtrip_translatez,SequenceTest.test_insert_roundtrip_translatem   s     !"J+LA 	 66":&1
  11".0B0B!C 2 

 	+224d6LM 0*=r2   c                     t        dd      }|j                  dt        j                  i      }|j	                  |      }t        |t        j                  j                  j                         y )Nr%   rZ   r&   r[   )
r   r]   r   r,   r7   r   r   rB   rC   rD   )r=   r>   seqrF   s       r0   $test_nextval_direct_schema_translatez1SequenceTest.test_nextval_direct_schema_translate   s^    ),?11".0B0B!C 2 

 s#Awzz!!778r2   N)__name__
__module____qualname____requires____backend__run_create_tablesclassmethodr1   r?   rG   rL   r   sequences_optionalrO   r;   rW   r   combinationsr)   r*   r^   ra    r2   r0   r   r      s    !LK3 3j@
9 $$* %*JJ W'86JK>  L>, 9 9r2   r   c                       e Zd ZdZdZd Zy)SequenceCompilerTestr   Tc                    t        dt               t        dt        t	        d            t        dt                    }|j                         j                  d      }|j                  j                  d |j                        j                  t	        d            }| j                  |d|d	d
|j                         y )Nxyy_seqq   )rr   )	statementrC   zINSERT INTO x (y, q) VALUES (z, 5)T)literal_bindsrC   )r	   r   r   r   r   r9   valuesrC   statement_compilervisit_sequenceassert_compile)r=   r>   rS   stmtseq_nextvals        r0   !test_literal_binds_inline_compilez6SequenceCompilerTest.test_literal_binds_inline_compile   s    J3'!233 	
 ||~$$q$) ((;;J$6$6 < 

.'*
+ 	 	5@B&&	 	 	
r2   N)rb   rc   rd   re   rf   r|   rk   r2   r0   rm   rm      s    !LK
r2   rm   c                      e Zd ZdZdZdZed        Zd Zd Z	e
j                  j                  d        Zd Ze
j                  j                  d	        Ze
j                  j                  d
        Ze
j                  j                  d        Zd Ze
j                  j                  d        Ze
j                  j                  d        Zy)HasSequenceTestNr   Tc           	      .   t        d|       t        d|dd       t        j                  j                  j                  r8t        dt
        j                  |       t        dt
        j                  |       t        d|t        d	t        d
             y )Nuser_id_seq)r/   	other_seqT)r/   
nomaxvalue
nominvalue)r'   r/   
schema_sequser_id_tabler   r   )
r   r   r)   r*   r+   r   r,   r	   r   r   r-   s     r0   r1   zHasSequenceTest.define_tables   s|    2(t	
 ##++f&8&88 V%7%7( 	4d3	
r2   c                 L    t        t        |      j                  d      d       y )Nr   Tr   r   has_sequencer<   s     r0   test_has_sequencez!HasSequenceTest.test_has_sequence   s     J,,];	
r2   c                 L    t        t        |      j                  d      d       y )Nr   Fr   r<   s     r0   test_has_sequence_other_objectz.HasSequenceTest.test_has_sequence_other_object        J,,_=	
r2   c                 l    t        t        |      j                  dt        j                        d       y )Nr   r&   Tr   r   r   r   r,   r<   s     r0   test_has_sequence_schemaz(HasSequenceTest.test_has_sequence_schema   s2    J,,f&8&8 -  		
r2   c                 L    t        t        |      j                  d      d       y )Nsome_sequenceFr   r<   s     r0   test_has_sequence_negz%HasSequenceTest.test_has_sequence_neg   r   r2   c                 l    t        t        |      j                  dt        j                        d       y )Nr   r&   Fr   r<   s     r0   test_has_sequence_schemas_negz-HasSequenceTest.test_has_sequence_schemas_neg   s2    J,,(:(: -  		
r2   c                 l    t        t        |      j                  dt        j                        d       y )Nother_sequencer&   Fr   r<   s     r0   'test_has_sequence_default_not_in_remotez7HasSequenceTest.test_has_sequence_default_not_in_remote   s2    J,, );); -  		
r2   c                 L    t        t        |      j                  d      d       y )Nr   Fr   r<   s     r0   'test_has_sequence_remote_not_in_defaultz7HasSequenceTest.test_has_sequence_remote_not_in_default   s     J,,\:	
r2   c                     ddh}t        t        |      j                               }t        |j	                  |      |k(         t        d|v       y )Nr   r   r   )setr   get_sequence_namesr   intersection)r=   r>   express       r0   test_get_sequence_namesz'HasSequenceTest.test_get_sequence_names   sI    M*'*%88:;  %,-C'(r2   c                 j    t        t        |      j                  t        j                        g        y )Nr&   )r   r   r   r   test_schema_2r<   s     r0   *test_get_sequence_names_no_sequence_schemaz:HasSequenceTest.test_get_sequence_names_no_sequence_schema   s0    J22++ 3  		
r2   c                     t        t        t        |      j                  t        j
                              ddg       y )Nr&   r   r   )r   sortedr   r   r   r,   r<   s     r0   (test_get_sequence_names_sequences_schemaz8HasSequenceTest.test_get_sequence_names_sequences_schema  s=    
#66!-- 7 
 =)	
r2   )rb   rc   rd   run_deletesre   rf   rh   r1   r   r   r   r)   r*   r   r   r   r   r   r   r   r   rk   r2   r0   r~   r~      s    K!LK
 
$

 
 

 
 
 
 
 
 
) 
 
 
 
r2   r~   c                       e Zd ZdZdZd Zy)HasSequenceTestEmptyr   Tc                 J    t        t        |      j                         g        y rI   )r   r   r   r<   s     r0   #test_get_sequence_names_no_sequencez8HasSequenceTestEmpty.test_get_sequence_names_no_sequence  s    J224	
r2   N)rb   rc   rd   re   rf   r   rk   r2   r0   r   r     s    !LK
r2   r   N) r   r   
assertionsr   r   r   r'   r   r	   r   r   r   r   r   r   
TablesTestr   AssertsCompiledSQLTestBaserm   r~   r   rk   r2   r0   <module>r      s         !        }98&& }9@
755x7H7H 
2f
h)) f
R
8,, 
r2   