
    [h&                     R   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dS )   )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dS )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
        r~t          d|t          dt          t          t          t          dt          j                            d          t          dt          d                    dt          j                   d S d S )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     u/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/sqlalchemy/testing/suite/test_sequence.pydefine_tableszSequenceTest.define_tables   s   "68L+A+ABB 	   66"::&&
	
 
	
 
	
 	"\WtLLL  !   66"::&&	
 	
 	
 	"68N+C+CDD 	   66"::&&$	
 	
 	
 	
 #+ 	&& .v7I    !%
 
 
 vvbzz**#()!     	 	    c                     |                     | j        j                                        t	          d                     |                     | j        j        |           d S N	some datar   )executetablesr   insertdict_assert_round_tripself
connections     r1   test_insert_roundtripz"SequenceTest.test_insert_roundtrip]   sU    4;-4466+8N8N8NOOO 2J?????r3   c                     |                     | j        j                                        t	          d                    }t          |j        t          j        j	        j
        f           d S 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   si    K%%'';)?)?)?
 
 	"WZ%7%M$O	
 	
 	
 	
 	
r3   c                     |                     | j        j        j        j        j                  }t          |t          j        j	        j
                   d S N)scalarr9   r   cr   defaultr   r   rC   rD   rE   rF   s      r1   test_nextval_directz SequenceTest.test_nextval_directi   sA    dk025=>>Awz!788888r3   c                     |                     | j        j                                        t	          d                    }t          |j        d           d S )Nr6   r7   )   )r8   r9   r   r:   r;   r   rB   rF   s      r1   test_optional_seqzSequenceTest.test_optional_seqm   sS    K"))++T{-C-C-C
 
 	A"D)))))r3   c                     |                     |                                                                          }t          |t          j        j        j        df           d S )Nr6   )r8   selectfirstr   r   rC   rD   rE   )r>   tableconnrows       r1   r<   zSequenceTest._assert_round_tript   sJ    ll5<<>>**0022C'*$:KHIIIIIr3   c                     |                     | j        j                                        t	          d                     |                     | j        j        |           d S r5   )r8   r9   r"   r:   r;   r<   r=   s     r1   +test_insert_roundtrip_no_implicit_returningz8SequenceTest.test_insert_roundtrip_no_implicit_returningx   s^    K(//114[3I3I3I	
 	
 	
 	 <jIIIIIr3   )T)Fr$   )argnamesc                    t          dt                      t          dt          t	          t
          t          dd                    d          t          dt          d	                    |d
          }|                    dt
          j	        i          }|
                    |                                t          d                     |                     ||           d S )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     !"JJ"H%7MMM  !   66"::&&1
 
 
   11".0B!C 2 
 

 	+2244d6L6L6LMMM 0*=====r3   c                    t          t          t          dd                    }|                    dt          j        i          }|                    |          }t          |t          j        j	        j
                   d S )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   s~     H/EEE
 
  11".0B!C 2 
 

 c""Awz!78888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 9 9 $* * %$*J J JJ J J W'86JKKK> >  LK>. 	9 	9 	9 	9 	9r3   r   c                       e Zd ZdZdZd ZdS )SequenceCompilerTestr   Tc                    t          dt                      t          dt          t	          t
          t          d                              t          dt                              }|                                                    d          }|j	        
                    d |j	                                      t	          t
          t          d                              }|                     |d|d	d
|j	                   d S )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    JJW0'9J9JKK  3  
 
 ||~~$$q$)) (;;J$6 < 
 

.+FHW4E4EFF
G
G 	 	D5@[[B&	 	 	
 	
 	
 	
 	
r3   N)rd   re   rf   rg   rh   r~   rm   r3   r1   ro   ro      s-        !LK
 
 
 
 
r3   ro   c                   J   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dS )HasSequenceTestNr   Tc           	         t          t          t          d|                     t          t          t          d|dd                     t          j        j        j        r^t          t          t          dt          j        |                     t          t          t          dt          j        |                     t          d|t          d	t          d
                     d S )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#M#MNNN!	  	
 	
 	
 #+ 	!&*<x      );h     	4d333	
 	
 	
 	
 	
r3   c                 f    t          t          |                              d          d           d S )Nr   Tr   r   has_sequencer=   s     r1   test_has_sequencez!HasSequenceTest.test_has_sequence   s.    GJ,,];;TBBBBBr3   c                 6   t          |          }t          |                    d          d           t          t          t          d|                    }t          |                    d          d           |                    |           	 t          |                    d          d           |                                 t          |                    d          d           |                    |           d S # |                    |           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33X(N(N(NOODi((%000
		*	 !!),,e444!!),,d333GGJBGGJs   AD Dc                 f    t          t          |                              d          d           d S )Nr   Fr   r=   s     r1   test_has_sequence_other_objectz.HasSequenceTest.test_has_sequence_other_object   .    GJ,,_==uEEEEEr3   c                 ~    t          t          |                              dt          j                  d           d S )Nr   r'   Tr   r   r   r   r-   r=   s     r1   test_has_sequence_schemaz(HasSequenceTest.test_has_sequence_schema   sK    J,,f&8 -   		
 	
 	
 	
 	
r3   c                 f    t          t          |                              d          d           d S )Nsome_sequenceFr   r=   s     r1   test_has_sequence_negz%HasSequenceTest.test_has_sequence_neg   r   r3   c                 ~    t          t          |                              dt          j                  d           d S )Nr   r'   Fr   r=   s     r1   test_has_sequence_schemas_negz-HasSequenceTest.test_has_sequence_schemas_neg  sK    J,,(: -   		
 	
 	
 	
 	
r3   c                 ~    t          t          |                              dt          j                  d           d S )Nother_sequencer'   Fr   r=   s     r1   'test_has_sequence_default_not_in_remotez7HasSequenceTest.test_has_sequence_default_not_in_remote  sK    J,, ); -   		
 	
 	
 	
 	
r3   c                 f    t          t          |                              d          d           d S )Nr   Fr   r=   s     r1   'test_has_sequence_remote_not_in_defaultz7HasSequenceTest.test_has_sequence_remote_not_in_default  s.    GJ,,\::EBBBBBr3   c                     ddh}t          t          |                                                    }t          |                    |          |k               t          d|v           d S )Nr   r   r   )setr   get_sequence_namesr   intersection)r>   r?   express       r1   test_get_sequence_namesz'HasSequenceTest.test_get_sequence_names  sg    M*'*%%88::;;  %%,---C'(((((r3   c                 |    t          t          |                              t          j                  g            d S )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   sI    J22+ 3   		
 	
 	
 	
 	
r3   c                     t          t          t          |                              t          j                            ddg           d S )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 C C     F F F 
 
 
F F F 
 
 
 
 
 
 C C C) ) ) 
 
 
 
 
 
 
 
r3   r   c                       e Zd ZdZdZd ZdS )HasSequenceTestEmptyr   Tc                 d    t          t          |                                          g            d S rJ   )r   r   r   r=   s     r1   #test_get_sequence_names_no_sequencez8HasSequenceTestEmpty.test_get_sequence_names_no_sequence9  s8    J224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9 H9 H9 H9 H98& H9 H9 H9V
 
 
 
 
75x7H 
 
 
6s
 s
 s
 s
 s
h) s
 s
 s
l
 
 
 
 
8, 
 
 
 
 
r3   