o
    [h5                     @   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	sequencesTZ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idZ
tab_id_seqT)Zprimary_keydata2   
seq_opt_pk)optional)r   r   r	   r   r   )clsmetadata r   /home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/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__Zrun_create_tablesclassmethodr   r'   r.   r1   r   Zsequences_optionalr2   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yZy_seqq   )rA   )Z	statementdialectz#INSERT INTO x (y, q) VALUES (%s, 5)T)Zliteral_bindsrC   )r   r
   r   r	   r   r#   valuesr   r    rC   Zstatement_compilerZvisit_sequenceZassert_compile)r&   r5   stmtZseq_nextvalr   r   r   !test_literal_binds_inline_compileF   s$   

z6SequenceCompilerTest.test_literal_binds_inline_compileN)r8   r9   r:   r;   r<   rF   r   r   r   r   r>   B   s    r>   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   rC   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 )NrH   r   Tr   r   test_schemar   r    r!   r   rI   r   rC   rJ   rK   rL   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 )NrH   F)r   r   r    rC   rJ   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 NrH   r   F)r   r   r    rC   rJ   r   rP   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 rS   )r   r   r    r!   r   rI   r   rC   rJ   r   rP   rK   rL   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 rS   rO   rL   r   r   r   'test_has_sequence_remote_not_in_default   s   *z7HasSequenceTest.test_has_sequence_remote_not_in_defaultN)r8   r9   r:   r;   r<   rN   r   requiresZschemasrQ   rR   rT   rU   rV   r   r   r   r   rG   [   s    


rG   N) r   r   Z
assertionsr   r   r   r   r   r	   r
   r   r   r   Z
TablesTestr   ZAssertsCompiledSQLZTestBaser>   rG   r   r   r   r   <module>   s    3