o
    i5                     @   s   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 dejZG dd dejejZG dd dejZdS )   )config)fixtures)eq_)requirements)Column)Table   )Integer)MetaDataschema)Sequence)String)testingc                   @   sR   e Zd ZdZdZdZedd Zdd Zdd	 Z	d
d Z
ejdd Zdd ZdS )SequenceTest	sequencesTeachc              
   C   sX   t d|tdttdddtdtd t d|tdttddd	ddtdtd d S )
Nseq_pkid
tab_id_seqT)primary_keydata2   
seq_opt_pk)optional)r   r   r	   r   r   )clsmetadata r   a/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/sqlalchemy/testing/suite/test_sequence.pydefine_tables   s"   
zSequenceTest.define_tablesc                 C   s.   t jj| jj dd | | jjt j d S )N	some datar   )r   dbexecutetablesr   insert_assert_round_tripselfr   r   r   test_insert_roundtrip*   s   z"SequenceTest.test_insert_roundtripc                 C   *   t jj| jj dd}t|jdg d S Nr!   r"      )r   r#   r$   r%   r   r&   r   inserted_primary_keyr)   rr   r   r   test_insert_lastrowid.   s   z"SequenceTest.test_insert_lastrowidc                 C   s$   t j| jjjjj}t|d d S )Nr-   )	r   r#   r$   r%   r   cr   defaultr   r/   r   r   r   test_nextval_direct2   s   z SequenceTest.test_nextval_directc                 C   r+   r,   )r   r#   r$   r%   r   r&   r   r.   r/   r   r   r   test_optional_seq6   s   zSequenceTest.test_optional_seqc                 C   s    | |  }t|d d S )N)r-   r!   )r$   selectfirstr   )r)   tableconnrowr   r   r   r'   =   s   zSequenceTest._assert_round_tripN)__name__
__module____qualname____requires____backend__run_create_tablesclassmethodr    r*   r1   r4   r   sequences_optionalr5   r'   r   r   r   r   r      s    

r   c                   @   s   e Zd ZdZdZdd ZdS )SequenceCompilerTestr   Tc                 C   sr   t dt tdttdtdt}| jdd}tjj	j
d tjj	dtd}| j|d|f d	tjj	d
 d S )Nxyy_seqq   )rG   )	statementdialectz#INSERT INTO x (y, q) VALUES (%s, 5)T)literal_bindsrJ   )r   r
   r   r	   r   r&   valuesr   r#   rJ   statement_compilervisit_sequenceassert_compile)r)   r8   stmtseq_nextvalr   r   r   !test_literal_binds_inline_compileF   s$   

z6SequenceCompilerTest.test_literal_binds_inline_compileN)r;   r<   r=   r>   r?   rR   r   r   r   r   rC   B   s    rC   c                   @   sd   e Zd ZdZdZdd Zejjdd Z	dd Z
ejjd	d
 Zejjdd Zejjdd ZdS )HasSequenceTestr   Tc                 C   s`   t d}tjt| zttjjtjdd W tjt	| d S tjt	| w )Nuser_id_seqT)
r   r   r#   r$   r   CreateSequencer   rJ   has_sequenceDropSequencer)   s1r   r   r   test_has_sequence_   s   *z!HasSequenceTest.test_has_sequencec                 C   sl   t dtjd}tjt| zttjj	j
tjdtjdd W tjt| d S tjt| w )NrT   r   Tr   r   test_schemar   r#   r$   r   rU   r   rJ   rV   rW   rX   r   r   r   test_has_sequence_schemaj   s   
*z(HasSequenceTest.test_has_sequence_schemac                 C   s   t tjjtjdd d S )NrT   F)r   r   r#   rJ   rV   r(   r   r   r   test_has_sequence_negx   s   z%HasSequenceTest.test_has_sequence_negc                 C   s"   t tjjjtjdtjdd d S NrT   r   F)r   r   r#   rJ   rV   r   r\   r(   r   r   r   test_has_sequence_schemas_neg{   s   
z-HasSequenceTest.test_has_sequence_schemas_negc                 C   sf   t d}tjt| zttjjjtjdt	j
dd W tjt| d S tjt| w r_   )r   r   r#   r$   r   rU   r   rJ   rV   r   r\   rW   rX   r   r   r   'test_has_sequence_default_not_in_remote   s   
*z7HasSequenceTest.test_has_sequence_default_not_in_remotec                 C   sf   t dtjd}tjt| zttjj	
tjdd W tjt| d S tjt| w r_   r[   rX   r   r   r   'test_has_sequence_remote_not_in_default   s   *z7HasSequenceTest.test_has_sequence_remote_not_in_defaultN)r;   r<   r=   r>   r?   rZ   r   requiresschemasr]   r^   r`   ra   rb   r   r   r   r   rS   [   s    


rS   N) r   r   
assertionsr   r   r   r   r   r	   r
   r   r   r   
TablesTestr   AssertsCompiledSQLTestBaserC   rS   r   r   r   r   <module>   s    3