U
    ÌZjï   ã                   @   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 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G dd„ dejƒZdS )é   )Úconfig)Úfixtures)Úeq_)Úis_true)Úrequirements)ÚColumn)ÚTableé   )Úinspect)ÚInteger)ÚMetaData)ÚSequence)ÚString)Útestingc                   @   sŠ   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d„ Zejdddd�ejjdd„ ƒƒZejjdd„ ƒZdS )ÚSequenceTest©Ú	sequencesTZeachc                 C   sÆ   t d|tdttdƒdd�tdtdƒƒƒ t d|tdttdtdd	�dd�tdtdƒƒƒ t d
|tdttdƒdd�tdtdƒƒdd� tjjjrÂt d|tdttdt	j
d�dd�tdtdƒƒdt	j
d� d S )NÚseq_pkÚidZ
tab_id_seqT©Zprimary_keyÚdataé2   Ú
seq_opt_pk)Z	data_typeÚoptionalÚseq_no_returningZ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Úmetadata© r(   úi/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/sqlalchemy/testing/suite/test_sequence.pyÚdefine_tables   s`    ü÷ü÷üö
üõzSequenceTest.define_tablesc                 C   s.   |  | jj ¡ tdd�¡ |  | jj|¡ d S ©Nú	some data©r   )ÚexecuteÚtablesr   ÚinsertÚdictÚ_assert_round_trip©ÚselfÚ
connectionr(   r(   r)   Útest_insert_roundtripL   s    z"SequenceTest.test_insert_roundtripc                 C   s2   |  | jj ¡ tdd�¡}t|jtjj	j
fƒ d S r+   )r.   r/   r   r0   r1   r   Úinserted_primary_keyr   ÚdbÚdialectÚdefault_sequence_base©r4   r5   Úrr(   r(   r)   Útest_insert_lastrowidP   s    
 ÿ 
ÿz"SequenceTest.test_insert_lastrowidc                 C   s(   |  | jjjjj¡}t|tjj	j
ƒ d S ©N)r.   r/   r   Úcr   Údefaultr   r   r8   r9   r:   r;   r(   r(   r)   Útest_nextval_directX   s    z SequenceTest.test_nextval_directc                 C   s*   |  | jj ¡ tdd�¡}t|jdƒ d S )Nr,   r-   )é   )r.   r/   r   r0   r1   r   r7   r;   r(   r(   r)   Útest_optional_seq\   s
    
 ÿzSequenceTest.test_optional_seqc                 C   s*   |  | ¡ ¡ ¡ }t|tjjjdfƒ d S )Nr,   )r.   ÚselectÚfirstr   r   r8   r9   r:   )r4   ÚtableÚconnÚrowr(   r(   r)   r2   c   s    zSequenceTest._assert_round_tripc                 C   s.   |  | jj ¡ tdd�¡ |  | jj|¡ d S r+   )r.   r/   r   r0   r1   r2   r3   r(   r(   r)   Ú+test_insert_roundtrip_no_implicit_returningg   s
    
 ÿz8SequenceTest.test_insert_roundtrip_no_implicit_returning)T)Fr   )Úargnamesc              
   C   sl   t dtƒ tdttddd�dd�tdtd	ƒƒ|dd
�}|jdtjid�}| 	| 
¡ tdd�¡ |  ||¡ d S )Nr   r   r   Ú
alt_schemar   Tr   r   r   r    ©Zschema_translate_mapr,   r-   )r   r   r   r   r   r   Úexecution_optionsr   r$   r.   r0   r1   r2   )r4   r5   r   r   r(   r(   r)   Útest_insert_roundtrip_translatem   s$    
üõÿz,SequenceTest.test_insert_roundtrip_translatec                 C   s<   t ddd�}|jdtjid�}| |¡}t|tjjj	ƒ d S )Nr   rK   r   rL   )
r   rM   r   r$   r.   r   r   r8   r9   r:   )r4   r5   Úseqr<   r(   r(   r)   Ú$test_nextval_direct_schema_translate…   s    ÿ
z1SequenceTest.test_nextval_direct_schema_translateN)Ú__name__Ú
__module__Ú__qualname__Ú__requires__Ú__backend__Zrun_create_tablesÚclassmethodr*   r6   r=   rA   r   Zsequences_optionalrC   r2   rI   r   Úcombinationsr!   r"   rN   rP   r(   r(   r(   r)   r      s"   
5
r   c                   @   s   e Zd ZdZdZdd„ ZdS )ÚSequenceCompilerTestr   Tc                 C   sl   t dtƒ tdttdƒƒtdtƒƒ}| ¡ jdd�}|jjd |jd� 	tdƒ¡}| j
|d|f d	|jd
� d S )NÚxÚyZy_seqÚqé   )r[   )Z	statementr9   z#INSERT INTO x (y, q) VALUES (%s, 5)T)Zliteral_bindsr9   )r   r   r   r   r   r0   Úvaluesr9   Zstatement_compilerZvisit_sequenceZassert_compile)r4   r5   rF   ÚstmtZseq_nextvalr(   r(   r)   Ú!test_literal_binds_inline_compile”   s&    ü ÿþüz6SequenceCompilerTest.test_literal_binds_inline_compileN)rQ   rR   rS   rT   rU   r_   r(   r(   r(   r)   rX   �   s   rX   c                   @   s¤   e Zd ZdZdZdZedd„ ƒZd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d„ Ze
jjdd„ ƒZe
jjdd„ ƒZdS )ÚHasSequenceTestNr   Tc                 C   s`   t d|d� t d|ddd� tjjjrFt dtj|d� t dtj|d� td|td	t	dd
�ƒ d S )NÚuser_id_seq)r'   Ú	other_seqT)r'   Z
nomaxvalueZ
nominvalue)r   r'   Ú
schema_seqÚuser_id_tabler   r   )
r   r   r!   r"   r#   r   r$   r   r   r   r%   r(   r(   r)   r*   ¯   s.       ÿ
  ÿ  ÿýzHasSequenceTest.define_tablesc                 C   s   t t|ƒ d¡dƒ d S )Nra   T©r   r
   Úhas_sequencer3   r(   r(   r)   Útest_has_sequenceÂ   s    þz!HasSequenceTest.test_has_sequencec                 C   s   t t|ƒ d¡dƒ d S )Nrd   Fre   r3   r(   r(   r)   Útest_has_sequence_other_objectÈ   s    þz.HasSequenceTest.test_has_sequence_other_objectc                 C   s   t t|ƒjdtjd�dƒ d S )Nra   r   T©r   r
   rf   r   r$   r3   r(   r(   r)   Útest_has_sequence_schemaÎ   s     ÿüz(HasSequenceTest.test_has_sequence_schemac                 C   s   t t|ƒ d¡dƒ d S )NÚsome_sequenceFre   r3   r(   r(   r)   Útest_has_sequence_neg×   s    þz%HasSequenceTest.test_has_sequence_negc                 C   s   t t|ƒjdtjd�dƒ d S )Nrk   r   Fri   r3   r(   r(   r)   Útest_has_sequence_schemas_negÝ   s     ÿüz-HasSequenceTest.test_has_sequence_schemas_negc                 C   s   t t|ƒjdtjd�dƒ d S )NZother_sequencer   Fri   r3   r(   r(   r)   Ú'test_has_sequence_default_not_in_remoteæ   s     ÿüz7HasSequenceTest.test_has_sequence_default_not_in_remotec                 C   s   t t|ƒ d¡dƒ d S )Nrc   Fre   r3   r(   r(   r)   Ú'test_has_sequence_remote_not_in_defaultï   s    þz7HasSequenceTest.test_has_sequence_remote_not_in_defaultc                 C   s:   ddh}t t|ƒ ¡ ƒ}t| |¡|kƒ td|kƒ d S )Nrb   ra   rc   )Úsetr
   Úget_sequence_namesr   Úintersection)r4   r5   ÚexpÚresr(   r(   r)   Útest_get_sequence_namesö   s    z'HasSequenceTest.test_get_sequence_namesc                 C   s   t t|ƒjtjd�g ƒ d S )Nr   )r   r
   rq   r   Ztest_schema_2r3   r(   r(   r)   Ú*test_get_sequence_names_no_sequence_schemaý   s    ÿüz:HasSequenceTest.test_get_sequence_names_no_sequence_schemac                 C   s$   t tt|ƒjtjd�ƒddgƒ d S )Nr   rc   ra   )r   Úsortedr
   rq   r   r$   r3   r(   r(   r)   Ú(test_get_sequence_names_sequences_schema  s    ÿÿúz8HasSequenceTest.test_get_sequence_names_sequences_schema)rQ   rR   rS   Zrun_deletesrT   rU   rV   r*   rg   rh   r   r!   r"   rj   rl   rm   rn   ro   ru   rv   rx   r(   r(   r(   r)   r`   ©   s*   





r`   c                   @   s   e Zd ZdZdZdd„ ZdS )ÚHasSequenceTestEmptyr   Tc                 C   s   t t|ƒ ¡ g ƒ d S r>   )r   r
   rq   r3   r(   r(   r)   Ú#test_get_sequence_names_no_sequence  s    
þz8HasSequenceTestEmpty.test_get_sequence_names_no_sequenceN)rQ   rR   rS   rT   rU   rz   r(   r(   r(   r)   ry     s   ry   N)Ú r   r   Z
assertionsr   r   r   r   r   r   r
   r   r   r   r   r   Z
TablesTestr   ZAssertsCompiledSQLZTestBaserX   r`   ry   r(   r(   r(   r)   Ú<module>   s"    i