Ë
    V.j„0  ã                   óh  — d dl 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 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«      Z G d„ dej*                  «      ZdZy)é    Né   )Útestingé   )Úconfig)Úfixtures)Úutil)Úeq_)Úis_false)Úis_true)Úrequirements)ÚTableé   )ÚCheckConstraint)ÚColumn)ÚForeignKeyConstraint)ÚIndex)Úinspect)ÚInteger©Úschema)ÚString)ÚUniqueConstraintc                   óÞ  — e Zd ZdZdd„Zd„ Zdd„Zd„ Zej                  e
j                  d„ «       «       Zej                  ej                  e
j                  d„ «       «       «       Zej                  e
j                  d	„ «       «       Zej                  e
j                  d
„ «       «       Zej$                  e
j                  d„ «       «       Zej$                  e
j                  d„ «       «       Zej*                  e
j                  d„ «       «       Zej.                  e
j                  d„ «       «       Zej*                  e
j                  d„ «       «       Zej.                  e
j                  d„ «       «       Zy)ÚTableDDLTestTNc                 ó~   — t        d| j                  t        dt        dd¬«      t        dt	        d«      «      |¬«      S )	NÚ
test_tableÚidTF©Úprimary_keyÚautoincrementÚdataé2   r   ©r   Úmetadatar   r   r   )Úselfr   s     úcC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\sqlalchemy/testing/suite/test_ddl.pyÚ_simple_fixturezTableDDLTest._simple_fixture"   s8   € ÜØØ�M‰MÜ�4œ¨dÀ%ÔHÜ�6œ6 "›:Ó&Øô
ð 	
ó    c                 óz   — t        d| j                  t        dt        dd¬«      t        dt	        d«      «      «      S )NÚ_test_tabler   TFr   Ú_datar"   r#   )r%   s    r&   Ú_underscore_fixturez TableDDLTest._underscore_fixture+   s5   € ÜØØ�M‰MÜ�4œ¨dÀ%ÔHÜ�7œF 2›JÓ'ó	
ð 	
r(   c                 ón   — | j                  |¬«      }t        d|j                  j                  «      }||fS )Nr   Ú
test_index)r'   r   Úcr!   )r%   r   ÚtableÚidxs       r&   Ú_table_index_fixturez!TableDDLTest._table_index_fixture3   s3   € Ø×$Ñ$¨FÐ$Ó3ˆÜ�L %§'¡'§,¡,Ó/ˆØ�cˆzÐr(   c                 ó8  — t         j                  j                  «       5 }|j                  |j	                  «       j                  d«      «       |j                  |j                  «       «      }t        |j                  «       d«       d d d «       y # 1 sw Y   y xY w)N)r   z	some data)	r   ÚdbÚbeginÚexecuteÚinsertÚvaluesÚselectr	   Úfirst)r%   r0   ÚconnÚresults       r&   Ú_simple_roundtripzTableDDLTest._simple_roundtrip8   sa   € Ü�Y‰Y�_‰_Ô $Ø�L‰L˜Ÿ™›×.Ñ.Ð/?Ó@ÔAØ—\‘\ %§,¡,£.Ó1ˆFÜ�—‘“Ð 0Ô1÷ ×Ñús   ŸA(BÂBc                 óˆ   — | j                  «       }|j                  t        j                  d¬«       | j	                  |«       y ©NF©Ú
checkfirst)r'   Úcreater   r4   r=   ©r%   r0   s     r&   Útest_create_tablezTableDDLTest.test_create_table>   s4   € ð ×$Ñ$Ó&ˆØ�‰”V—Y‘Y¨5ˆÔ1Ø×Ñ˜uÕ%r(   c                 ó¨   — | j                  t        j                  ¬«      }|j                  t        j                  d¬«       | j                  |«       y )Nr   Fr@   )r'   r   Útest_schemarB   r4   r=   rC   s     r&   Útest_create_table_schemaz%TableDDLTest.test_create_table_schemaE   s?   € ð ×$Ñ$¬F×,>Ñ,>Ð$Ó?ˆØ�‰”V—Y‘Y¨5ˆÔ1Ø×Ñ˜uÕ%r(   c                 ó¨   — | j                  «       }|j                  t        j                  d¬«       |j	                  t        j                  d¬«       y r?   )r'   rB   r   r4   ÚdroprC   s     r&   Útest_drop_tablezTableDDLTest.test_drop_tableM   s:   € ð ×$Ñ$Ó&ˆØ�‰”V—Y‘Y¨5ˆÔ1Ø�
‰
”6—9‘9¨ˆ
Õ/r(   c                 óˆ   — | j                  «       }|j                  t        j                  d¬«       | j	                  |«       y r?   )r,   rB   r   r4   r=   rC   s     r&   Útest_underscore_namesz"TableDDLTest.test_underscore_namesT   s4   € ð ×(Ñ(Ó*ˆØ�‰”V—Y‘Y¨5ˆÔ1Ø×Ñ˜uÕ%r(   c                 óì   — | j                  «       }|j                  |d¬«       d|_        |j                  t	        j
                  |«      «       t        t        |«      j                  d«      ddi«       y ©NFr@   z	a commentr   Útext)	r'   rB   Úcommentr6   r   ÚSetTableCommentr	   r   Úget_table_comment©r%   Ú
connectionr0   s      r&   Útest_add_table_commentz#TableDDLTest.test_add_table_comment[   se   € ð ×$Ñ$Ó&ˆØ�‰�Z¨EˆÔ2Ø#ˆŒØ×Ñœ6×1Ñ1°%Ó8Ô9ÜÜ�JÓ×1Ñ1°,Ó?Ø�[Ð!õ	
r(   c                 ó4  — | j                  «       }|j                  |d¬«       d|_        |j                  t	        j
                  |«      «       |j                  t	        j                  |«      «       t        t        |«      j                  d«      dd i«       y rN   )
r'   rB   rP   r6   r   rQ   ÚDropTableCommentr	   r   rR   rS   s      r&   Útest_drop_table_commentz$TableDDLTest.test_drop_table_commentg   s|   € ð ×$Ñ$Ó&ˆØ�‰�Z¨EˆÔ2Ø#ˆŒØ×Ñœ6×1Ñ1°%Ó8Ô9Ø×Ñœ6×2Ñ2°5Ó9Ô:ÜÜ�JÓ×1Ñ1°,Ó?À&È$Àõ	
r(   c                 ó  — | j                  «       }|j                  t        j                  |d¬«      «       t	        t        |«      j                  d«      «       |j                  t        j                  |d¬«      «       y )NT©Úif_not_existsr   )r'   r6   r   ÚCreateTabler   r   Ú	has_tablerS   s      r&   Útest_create_table_if_not_existsz,TableDDLTest.test_create_table_if_not_existss   s`   € ð ×$Ñ$Ó&ˆà×Ñœ6×-Ñ-¨eÀ4ÔHÔIä”˜
Ó#×-Ñ-¨lÓ;Ô<Ø×Ñœ6×-Ñ-¨eÀ4ÔHÕIr(   c                 ó@  — | j                  «       \  }}|j                  t        j                  |d¬«      «       t	        t        |«      j                  d«      «       t        dt        |«      j                  d«      D �cg c]  }|d   ‘Œ	 c}v «       |j                  t        j                  |d¬«      «       t	        dt        |«      j                  d«      D �cg c]  }|d   ‘Œ	 c}v «       |j                  t        j                  |d¬«      «       y c c}w c c}w )NTrZ   r   r.   Úname)
r2   r6   r   r\   r   r   r]   r
   Úget_indexesÚCreateIndex©r%   rT   r0   r1   Úixs        r&   Útest_create_index_if_not_existsz,TableDDLTest.test_create_index_if_not_exists}   s  € ð ×.Ñ.Ó0‰
ˆˆsà×Ñœ6×-Ñ-¨eÀ4ÔHÔIÜ”˜
Ó#×-Ñ-¨lÓ;Ô<ÜØô " *Ó-×9Ñ9¸,ÔGóáG�Bð �6“
ØGñðô	
ð 	×Ñœ6×-Ñ-¨cÀÔFÔGäØô " *Ó-×9Ñ9¸,ÔGóáG�Bð �6“
ØGñðô	
ð 	×Ñœ6×-Ñ-¨cÀÔFÕGùò!ùòs   Á?D
ÃD
c                 ój  — | j                  «       }|j                  |«       t        t        |«      j	                  d«      «       |j                  t        j                  |d¬«      «       t        t        |«      j	                  d«      «       |j                  t        j                  |d¬«      «       y )Nr   T©Ú	if_exists)	r'   rB   r   r   r]   r6   r   Ú	DropTabler
   rS   s      r&   Útest_drop_table_if_existsz&TableDDLTest.test_drop_table_if_exists˜   s„   € ð ×$Ñ$Ó&ˆà�‰�ZÔ ä”˜
Ó#×-Ñ-¨lÓ;Ô<à×Ñœ6×+Ñ+¨E¸TÔBÔCä”˜Ó$×.Ñ.¨|Ó<Ô=à×Ñœ6×+Ñ+¨E¸TÔBÕCr(   c                 óÐ  — | j                  «       \  }}|j                  |«       t        dt        |«      j	                  d«      D �cg c]  }|d   ‘Œ	 c}v «       |j                  t        j                  |d¬«      «       t        dt        |«      j	                  d«      D �cg c]  }|d   ‘Œ	 c}v «       |j                  t        j                  |d¬«      «       y c c}w c c}w )Nr.   r   r`   Trg   )	r2   rB   r   r   ra   r6   r   Ú	DropIndexr
   rc   s        r&   Útest_drop_index_if_existsz&TableDDLTest.test_drop_index_if_exists§   sè   € ð ×.Ñ.Ó0‰
ˆˆsà�‰�ZÔ äØô " *Ó-×9Ñ9¸,ÔGóáG�Bð �6“
ØGñðô	
ð 	×Ñœ6×+Ñ+¨C¸4Ô@ÔAäØô " *Ó-×9Ñ9¸,ÔGóáG�Bð �6“
ØGñðô	
ð 	×Ñœ6×+Ñ+¨C¸4Ô@ÕAùò!ùòs   ÁC
Â#C#
)N)Ú__name__Ú
__module__Ú__qualname__Ú__backend__r'   r,   r2   r=   r   Úcreate_tabler   Úprovide_metadatarD   ÚschemasrG   Ú
drop_tablerJ   rL   Úcomment_reflectionrU   rX   Útable_ddl_if_existsr^   Úindex_ddl_if_existsre   rj   rm   © r(   r&   r   r      sÁ  „ Ø€Kó
ò
óò
2ð ×ÑØ	×Ññ&ó ó ð&ð
 ×ÑØ×ÑØ	×Ññ&ó ó ó ð&ð
 ×ÑØ	×Ññ0ó ó ð0ð
 ×ÑØ	×Ññ&ó ó ð&ð
 ×$Ñ$Ø	×Ññ
ó ó %ð
ð ×$Ñ$Ø	×Ññ
ó ó %ð
ð ×%Ñ%Ø	×ÑñJó ó &ðJð ×%Ñ%Ø	×ÑñHó ó &ðHð2 ×%Ñ%Ø	×ÑñDó ó &ðDð ×%Ñ%Ø	×ÑñBó ó &ñBr(   r   c                   ó   — e Zd Zy)ÚFutureTableDDLTestN)rn   ro   rp   ry   r(   r&   r{   r{   Ã   s   „ Ør(   r{   c            	       óþ   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	 e
j                  dd	d
de
j                  j                  j                  «       fde
j                  j                  j                  «       fd¬«      d„ «       Zy)ÚLongNameBlowoutTestzjtest the creation of a variety of DDL structures and ensure
    label length limits pass on backends

    Tc           	      óÂ  — dddj                  d„ t        d«      D «       «      z   i}||_        t        d|t	        dt
        d¬	«      d¬
«       t        dgdg«      }t        d|t	        d«      |d¬
«       |j                  }|j                  |«       t        j                  j                  j                  r(t        |«      }|j                  d«      }|d   d   }||fS |d fS )NÚfkzGforeign_key_%(table_name)s_%(column_0_N_name)s_%(referred_table_name)s_Ú_c              3   ó^   K  — | ]%  }d j                  d„ t        d«      D «       «      –— Œ' y­w)Ú c              3   óF   K  — | ]  }t        j                  d «      –— Œ y­w©ÚabcdefN©ÚrandomÚchoice©Ú.0Újs     r&   Ú	<genexpr>z3LongNameBlowoutTest.fk.<locals>.<genexpr>.<genexpr>Ö   ó   è ø€ ÐG¹Y¸œFŸM™M¨(×3¹Yùó   ‚!é   N©ÚjoinÚrange©rŠ   Úis     r&   rŒ   z)LongNameBlowoutTest.fk.<locals>.<genexpr>Õ   ó+   è ø€ ð á&˜ð —G‘GÑG¼UÀ2¼YÓG×GÙ&ùó   ‚+-é
   Úa_things_with_stuffÚid_long_column_nameT©r   )Útest_needs_fkÚaidz'a_things_with_stuff.id_long_column_nameÚb_related_things_of_valuer   r`   )r‘   r’   Únaming_conventionr   r   r   r   r`   Ú
create_allr   ÚrequiresÚ&foreign_key_constraint_name_reflectionÚenabledr   Úget_foreign_keys)	r%   r$   rT   Ú
conventionÚconsÚactual_nameÚinspÚfksÚreflected_names	            r&   r   zLongNameBlowoutTest.fkÏ   s  € àð 'ð —‘ñ ä" 2œYóó ñ	ð

ˆ
ð &0ˆÔ"äØ!ØÜÐ(¬'¸tÔDØõ		
ô $ØˆGÐ?Ð@ó
ˆô 	Ø'ØÜØóð Øõ	
ð —i‘iˆà×Ñ˜JÔ'ä×Ñ×BÑB×JÒJÜ˜:Ó&ˆDØ×'Ñ'Ð(CÓDˆCØ  ™V F™^ˆNà Ð.Ð.à Ð$Ð$r(   c           
      óT  — dddj                  d„ t        d«      D «       «      z   i}||_        t        d|t	        dt
        d¬	«      t	        d
t
        d¬	«      «      }|j                  }|j                  }|j                  |«       t        |«      }|j                  d«      }|d   }	||	fS )NÚpkz.primary_key_%(table_name)s_%(column_0_N_name)sr€   c              3   ó^   K  — | ]%  }d j                  d„ t        d«      D «       «      –— Œ' y­w)r‚   c              3   óF   K  — | ]  }t        j                  d «      –— Œ y­wr„   r†   r‰   s     r&   rŒ   z3LongNameBlowoutTest.pk.<locals>.<genexpr>.<genexpr>  r�   rŽ   é   Nr�   r“   s     r&   rŒ   z)LongNameBlowoutTest.pk.<locals>.<genexpr>  r•   r–   r—   r˜   r™   Trš   Úid_another_long_namer`   )r‘   r’   rž   r   r   r   r   r`   rŸ   r   Úget_pk_constraint)
r%   r$   rT   r¤   Úar¥   r¦   r§   r«   r©   s
             r&   r«   zLongNameBlowoutTest.pký   sº   € àð "ð —‘ñ ä" 2œYóó ñð	
ˆ
ð &0ˆÔ"äØ!ØÜÐ(¬'¸tÔDÜÐ)¬7ÀÔEó	
ˆð �}‰}ˆØ—i‘iˆà×Ñ˜JÔ'Ü�zÓ"ˆØ×#Ñ#Ð$9Ó:ˆØ˜F™ˆØ˜NÐ*Ð*r(   c           	      ó¨  — dddj                  d„ t        d«      D «       «      z   i}||_        t        d|t	        dt
        d¬	«      t	        d
t
        «      «      }t        d |j                  j                  |j                  j                  «      }|j                  }|j                  |«       t        |«      }|j                  d«      }|d   d   }	||	fS )Nrd   z(index_%(table_name)s_%(column_0_N_name)sr€   c              3   ó^   K  — | ]%  }d j                  d„ t        d«      D «       «      –— Œ' y­w)r‚   c              3   óF   K  — | ]  }t        j                  d «      –— Œ y­wr„   r†   r‰   s     r&   rŒ   z3LongNameBlowoutTest.ix.<locals>.<genexpr>.<genexpr>  r�   rŽ   r®   Nr�   r“   s     r&   rŒ   z)LongNameBlowoutTest.ix.<locals>.<genexpr>  r•   r–   r—   r˜   r™   Trš   r¯   r   r`   )r‘   r’   rž   r   r   r   r   r/   r™   r¯   r`   rŸ   r   ra   )
r%   r$   rT   r¤   r±   r¥   r¦   r§   rd   r©   s
             r&   rd   zLongNameBlowoutTest.ix  sÕ   € àð "ð —‘ñ ä" 2œYóó ñð	
ˆ
ð &0ˆÔ"äØ!ØÜÐ(¬'¸tÔDÜÐ)¬7Ó3ó	
ˆô �T˜1Ÿ3™3×2Ñ2°A·C±C×4LÑ4LÓMˆØ—i‘iˆà×Ñ˜JÔ'Ü�zÓ"ˆØ×ÑÐ3Ó4ˆØ˜A™˜v™ˆØ˜NÐ*Ð*r(   c           	      óX  — dddj                  d„ t        d«      D «       «      z   i}||_        t        dd«      }t	        d|t        dt        d	¬
«      t        dt        «      |«       |j                  }|j                  |«       t        |«      }|j                  d«      }|d   d   }||fS )NÚuqz4unique_constraint_%(table_name)s_%(column_0_N_name)sr€   c              3   ó^   K  — | ]%  }d j                  d„ t        d«      D «       «      –— Œ' y­w)r‚   c              3   óF   K  — | ]  }t        j                  d «      –— Œ y­wr„   r†   r‰   s     r&   rŒ   z3LongNameBlowoutTest.uq.<locals>.<genexpr>.<genexpr>;  r�   rŽ   r®   Nr�   r“   s     r&   rŒ   z)LongNameBlowoutTest.uq.<locals>.<genexpr>:  r•   r–   r—   r™   r¯   r˜   Trš   r   r`   )r‘   r’   rž   r   r   r   r   r`   rŸ   r   Úget_unique_constraints)	r%   r$   rT   r¤   r¥   r¦   r§   r¶   r©   s	            r&   r¶   zLongNameBlowoutTest.uq5  sÂ   € àð "ð —‘ñ ä" 2œYóó ñð	
ˆ
ð &0ˆÔ"äÐ 5Ð7MÓNˆÜØ!ØÜÐ(¬'¸tÔDÜÐ)¬7Ó3Øô	
ð —i‘iˆà×Ñ˜JÔ'Ü�zÓ"ˆØ×(Ñ(Ð)>Ó?ˆØ˜A™˜v™ˆØ˜NÐ*Ð*r(   c           	      óV  — dddj                  d„ t        d«      D «       «      z   i}||_        t        d«      }t	        d|t        dt        d	¬
«      t        dt        «      |«       |j                  }|j                  |«       t        |«      }|j                  d«      }|d   d   }||fS )NÚckzcheck_constraint_%(table_name)sr€   c              3   ó^   K  — | ]%  }d j                  d„ t        d«      D «       «      –— Œ' y­w)r‚   c              3   óF   K  — | ]  }t        j                  d «      –— Œ y­wr„   r†   r‰   s     r&   rŒ   z3LongNameBlowoutTest.ck.<locals>.<genexpr>.<genexpr>W  r�   rŽ   r®   Nr�   r“   s     r&   rŒ   z)LongNameBlowoutTest.ck.<locals>.<genexpr>V  r•   r–   r—   zsome_long_column_name > 5r˜   r™   Trš   Úsome_long_column_namer   r`   )r‘   r’   rž   r   r   r   r   r`   rŸ   r   Úget_check_constraints)	r%   r$   rT   r¤   r¥   r¦   r§   r»   r©   s	            r&   r»   zLongNameBlowoutTest.ckR  s»   € àÐ3à—‘ñ ä" 2œYóó ñð
ˆ
ð &0ˆÔ"äÐ:Ó;ˆÜØ!ØÜÐ(¬'¸tÔDÜÐ*¬GÓ4Øô	
ð —i‘iˆà×Ñ˜JÔ'Ü�zÓ"ˆØ×'Ñ'Ð(=Ó>ˆØ˜A™˜v™ˆØ˜NÐ*Ð*r(   )r   )r«   )rd   r»   r¶   Útype_)Úargnamesc                 óö   —  t        | |«      ||«      \  }}t        |«      dkD  sJ ‚|�Q|dt        |«       }t        |«      t        |«      k  rt        |dd |dt        |«      dz
   «       y t        ||«       y y )Néÿ   r   éûÿÿÿé   )ÚgetattrÚlenr	   )r%   rÀ   r$   rT   r¦   r©   Úoverlaps          r&   Útest_long_convention_namez-LongNameBlowoutTest.test_long_convention_namen  s�   € ð ';¤g¨d°EÓ&:Ø�jó'
Ñ#ˆ�^ô �;Ó #Ò%Ð%Ð%àÐ%Ø! !¤c¨.Ó&9Ð:ˆGÜ�7‹|œc +Ó.Ò.Ü�G˜A˜b�M >°!´c¸'³lÀQÑ6FÐ#GÕHä�G˜^Õ,ð &r(   N)rn   ro   rp   Ú__doc__rq   r   r«   rd   r¶   r»   r   Úcombinationsr    Úcheck_constraint_reflectionÚas_skipsÚunique_constraint_reflectionrÉ   ry   r(   r&   r}   r}   Ç   s�   „ ñð
 €Kò,%ò\+ò8+ò8+ò:+ð8 €W×ÑØØØØ	ˆw×Ñ×;Ñ;×DÑDÓFÐGØ	ˆw×Ñ×<Ñ<×EÑEÓGÐHØôñ-óñ-r(   r}   )r   r{   r}   )r‡   r‚   r   r   r   r   Ú
assertionsr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   ÚTestBaser   ÚFutureEngineMixinr{   r}   Ú__all__ry   r(   r&   Ú<module>rÓ      sˆ   ðó å Ý Ý Ý Ý Ý !Ý  Ý !Ý Ý Ý Ý $Ý Ý Ý Ý Ý Ý  ôaB�8×$Ñ$ô aBôH	˜×3Ñ3°\ô 	ô{-˜(×+Ñ+ô {-ð| H�r(   