
    h (                     j   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j*                        Z G d dej$                        Z G d dej*                        Zy)   )config)fixtures)eq_)is_true)requirements)normalize_sequence)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                    t        d|t        dt        t        t        t        d            d      t        dt        d                   t        d|t        dt        t        t        t        dt        d	            d      t        dt        d                   t        d
|t        dt        t        t        t        d            d      t        dt        d            d       t        j                  j                  j                  rkt        d|t        dt        t        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   r   r   requiresschemasenabledtest_schemaclsmetadatas     OD:\EasyAligner\venv\Lib\site-packages\sqlalchemy/testing/suite/test_sequence.pydefine_tableszSequenceTest.define_tables   sD   "68L+AB 	 66":&
	
 	"\WtL ! 66":&	
 	"68N+CD 	 66":&$	
 ##++&& .v7I7I !%
 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     r1   test_insert_roundtripz"SequenceTest.test_insert_roundtrip]   sD    4;;--446+8NO 2 2J?r3   c                     |j                  | j                  j                  j                         t	        d            }t        |j                  t        j                  j                  j                  f       y r5   )r8   r9   r   r:   r;   r   inserted_primary_keyr   dbdialectdefault_sequence_baser>   r?   rs      r1   test_insert_lastrowidz"SequenceTest.test_insert_lastrowida   sW    KK%%';)?
 	""WZZ%7%7%M%M$O	
r3   c                     |j                  | j                  j                  j                  j                  j
                        }t        |t        j                  j                  j                         y N)scalarr9   r   cr   defaultr   r   rC   rD   rE   rF   s      r1   test_nextval_directz SequenceTest.test_nextval_directi   sH    dkk002255==>Awzz!!778r3   c                     |j                  | j                  j                  j                         t	        d            }t        |j                  d       y )Nr6   r7   )   )r8   r9   r   r:   r;   r   rB   rF   s      r1   test_optional_seqzSequenceTest.test_optional_seqm   sA    KK""))+T{-C
 	A""D)r3   c                     |j                  |j                               j                         }t        |t        j
                  j                  j                  df       y )Nr6   )r8   selectfirstr   r   rC   rD   rE   )r>   tableconnrows       r1   r<   zSequenceTest._assert_round_tript   s>    ll5<<>*002C'**$$::KHIr3   c                     |j                  | j                  j                  j                         t	        d             | j                  | j                  j                  |       y r5   )r8   r9   r"   r:   r;   r<   r=   s     r1   +test_insert_roundtrip_no_implicit_returningz8SequenceTest.test_insert_roundtrip_no_implicit_returningx   sI    KK((//14[3I	
 	 < <jIr3   )T)Fr$   )argnamesc                 l   t        dt               t        dt        t	        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_mapr6   r7   )r
   r   r	   r   r   r   r   r   execution_optionsr-   r8   r:   r;   r<   )r>   r?   r$   r"   s       r1   test_insert_roundtrip_translatez,SequenceTest.test_insert_roundtrip_translate~   s     !"J"H%7M ! 66":&1
   11".0B0B!C 2 

 	+224d6LM 0*=r3   c                     t        t        t        dd            }|j                  dt        j                  i      }|j                  |      }t        |t        j                  j                  j                         y )Nr&   r\   r'   r]   )r   r   r   r_   r-   rK   r   r   rC   rD   rE   )r>   r?   seqrG   s       r1   $test_nextval_direct_schema_translatez1SequenceTest.test_nextval_direct_schema_translate   sj     H/E
  11".0B0B!C 2 

 c"Awzz!!778r3   N)__name__
__module____qualname____requires____backend__run_create_tablesclassmethodr2   r@   rH   rN   r   sequences_optionalrQ   r<   rY   r   combinationsr*   r+   r`   rc    r3   r1   r   r      s    !LK; ;z@
9 $$* %*JJ W'86JK>  L>. 	9 	9r3   r   c                       e Zd ZdZdZd Zy)SequenceCompilerTestr   Tc                    t        dt               t        dt        t	        t
        t        d                  t        dt                    }|j                         j                  d      }|j                  j                  d |j                        j                  t	        t
        t        d                  }| j                  |d|d	d
|j                         y )Nxyy_seqq   )rt   )	statementrD   zINSERT INTO x (y, q) VALUES (z, 5)T)literal_bindsrD   )r
   r   r	   r   r   r   r   r:   valuesrD   statement_compilervisit_sequenceassert_compile)r>   r?   rU   stmtseq_nextvals        r1   !test_literal_binds_inline_compilez6SequenceCompilerTest.test_literal_binds_inline_compile   s    JW0'9JK 3 
 ||~$$q$) ((;;J$6$6 < 

.+FHW4EF
G 	 	5@B&&	 	 	
r3   N)rd   re   rf   rg   rh   r~   rm   r3   r1   ro   ro      s    !LK
r3   ro   c                      e Zd ZdZdZdZed        Z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        t        t        d|             t        t        t        d|dd             t        j                  j
                  j                  rTt        t        t        dt        j                  |             t        t        t        dt        j                  |             t        d|t        d	t        d
             y )Nuser_id_seqr0   	other_seqT)r0   
nomaxvalue
nominvalue)r(   r0   
schema_sequser_id_tabler   r   )r   r   r   r   r*   r+   r,   r-   r
   r	   r   r.   s     r1   r2   zHasSequenceTest.define_tables   s    68MH#MN!		
 ##++!&*<*<x  ););h 	4d3	
r3   c                 L    t        t        |      j                  d      d       y )Nr   Tr   r   has_sequencer=   s     r1   test_has_sequencez!HasSequenceTest.test_has_sequence   s    GJ,,];TBr3   c                    t        |      }t        |j                  d      d       t        t        t        d|            }t        |j                  d      d       |j                  |       	 t        |j                  d      d       |j                          t        |j                  d      d       |j                  |       y # |j                  |       w xY w)Nr   Tnew_seqr   F)	r   r   r   r   r   r   createclear_cachedrop)r>   r?   r0   inspsss        r1   test_has_sequence_cachez'HasSequenceTest.test_has_sequence_cache   s    z"Dm,d3X(NODi(%0
		*	 !!),e4!!),d3GGJBGGJs   /AC Cc                 L    t        t        |      j                  d      d       y )Nr   Fr   r=   s     r1   test_has_sequence_other_objectz.HasSequenceTest.test_has_sequence_other_object       GJ,,_=uEr3   c                 l    t        t        |      j                  dt        j                        d       y )Nr   r'   Tr   r   r   r   r-   r=   s     r1   test_has_sequence_schemaz(HasSequenceTest.test_has_sequence_schema   s2    J,,f&8&8 -  		
r3   c                 L    t        t        |      j                  d      d       y )Nsome_sequenceFr   r=   s     r1   test_has_sequence_negz%HasSequenceTest.test_has_sequence_neg   r   r3   c                 l    t        t        |      j                  dt        j                        d       y )Nr   r'   Fr   r=   s     r1   test_has_sequence_schemas_negz-HasSequenceTest.test_has_sequence_schemas_neg  s2    J,,(:(: -  		
r3   c                 l    t        t        |      j                  dt        j                        d       y )Nother_sequencer'   Fr   r=   s     r1   'test_has_sequence_default_not_in_remotez7HasSequenceTest.test_has_sequence_default_not_in_remote  s2    J,, );); -  		
r3   c                 L    t        t        |      j                  d      d       y )Nr   Fr   r=   s     r1   'test_has_sequence_remote_not_in_defaultz7HasSequenceTest.test_has_sequence_remote_not_in_default  s    GJ,,\:EBr3   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       r1   test_get_sequence_namesz'HasSequenceTest.test_get_sequence_names  sI    M*'*%88:;  %,-C'(r3   c                 j    t        t        |      j                  t        j                        g        y )Nr'   )r   r   r   r   test_schema_2r=   s     r1   *test_get_sequence_names_no_sequence_schemaz:HasSequenceTest.test_get_sequence_names_no_sequence_schema   s0    J22++ 3  		
r3   c                     t        t        t        |      j                  t        j
                              ddg       y )Nr'   r   r   )r   sortedr   r   r   r-   r=   s     r1   (test_get_sequence_names_sequences_schemaz8HasSequenceTest.test_get_sequence_names_sequences_schema)  s=    
#66!-- 7 
 =)	
r3   )rd   re   rf   run_deletesrg   rh   rj   r2   r   r   r   r   r*   r+   r   r   r   r   r   r   r   r   rm   r3   r1   r   r      s   K!LK
 
<C F 
 
F 
 
 
 
 C C) 
 
 
 
r3   r   c                       e Zd ZdZdZd Zy)HasSequenceTestEmptyr   Tc                 J    t        t        |      j                         g        y rJ   )r   r   r   r=   s     r1   #test_get_sequence_names_no_sequencez8HasSequenceTestEmpty.test_get_sequence_names_no_sequence9  s    J224	
r3   N)rd   re   rf   rg   rh   r   rm   r3   r1   r   r   5  s    !LK
r3   r   N) r   r   
assertionsr   r   r   	provisionr   r(   r	   r
   r   r   r   r   r   r   
TablesTestr   AssertsCompiledSQLTestBasero   r   r   rm   r3   r1   <module>r      s         ! *        H98&& H9V
755x7H7H 
6s
h)) s
l
8,, 
r3   