Ë
    †V.jŸ€  ã                   óÜ   — 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e«      Z G d„ dee«      Z G d„ dee«      Zy)é    )ÚColumn)ÚForeignKeyConstraint)ÚInteger)ÚMetaData)ÚString)ÚTableé   )ÚAutogenFixtureTesté   )Úcombinations)Úconfig©Úeq_)Úmock)ÚTestBasec                   ó|   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ej                  j                  d	„ «       Zd
„ Zd„ Zy)ÚAutogenerateForeignKeysTestT)Ú!foreign_key_constraint_reflectionc                 ó   — t        «       }t        «       }t        d|t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        dt        d	«      d
¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dgdg«      «       t        d|t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        dt        d	«      d
¬«      t        dt        d«      d¬«      t        dt        d«      «      «       | j                  ||«      }| j                  |d   dddgddgd¬«       y )NÚ
some_tableÚtesté
   T©Úprimary_keyÚuserÚidÚnameé2   F©ÚnullableÚa1Úx©Úserver_defaultÚtest2úsome_table.testr   Ú	remove_fkÚservergenerated©Úconditional_name©r   r   r   r   r   r   Ú_fixtureÚ_assert_fk_diff©ÚselfÚm1Úm2Údiffss       úhC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\alembic/testing/suite/test_autogen_fks.pyÚtest_remove_fkz*AutogenerateForeignKeysTest.test_remove_fk   s4  € Ü‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8ô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œF 2›JÓ'Ü  ' Ð->Ð,?Ó@ô	
ô 	ØØÜ�6œ6 "›:°4Ô8ô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œF 2›JÓ'ô	
ð —‘˜b "Ó%ˆà×ÑØ�!‰HØØØˆIØØˆHØ.ð 	õ 	
ó    c                 óØ  — t        «       }t        «       }t        d|t        dt        d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d	«      d
¬«      t        dt	        d«      d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d	«      d
¬«      t        dt	        d«      d¬«      t        dt	        d«      «      t        dgdg«      «       | j                  ||«      }| j                  |d   dddgddg«       y )Nr   r   Tr   r   r   r   r   r   Fr   r!   r"   r#   r%   r&   r   Úadd_fk)r   r   r   r   r   r   r,   r-   r.   s       r3   Útest_add_fkz'AutogenerateForeignKeysTest.test_add_fkC   s;  € Ü‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œF 2›JÓ'ô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œF 2›JÓ'Ü  ' Ð->Ð,?Ó@ô	
ð —‘˜b "Ó%ˆà×ÑØ�!‰H�h ¨¨	°<À&Àõ	
r5   c                 óÀ  — t        «       }t        «       }t        d|t        dt        d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d	«      d
¬«      t        dt	        d«      d¬«      t        dt        «      t        dgdg«      «       t        d|t        dt        d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d	«      d
¬«      t        dt	        d«      d¬«      t        dt        «      t        dgdg«      «       | j                  ||«      }t        |g «       y )Nr   r   Tr   r   r   r   r   r   Fr   r!   r"   r#   r%   úsome_table.id)r   r   r   r   r   r   r,   r   r.   s       r3   Útest_no_changez*AutogenerateForeignKeysTest.test_no_changen   s'  € Ü‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œGÓ$Ü  ' ¨_Ð,=Ó>ô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œGÓ$Ü  ' ¨_Ð,=Ó>ô	
ð —‘˜b "Ó%ˆäˆE�2�r5   c                 óH  — t        «       }t        «       }t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d
«      d¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dt        d«      «      t        ddgddg«      «       t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d
«      d¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dt        d«      «      t        ddgddg«      «       | j                  ||«      }t        |g «       y )Nr   Úid_1r   Tr   Úid_2r   r   r   r   Fr   r!   r"   r#   Ú
other_id_1Ú
other_id_2úsome_table.id_1úsome_table.id_2©r   r   r   r   r   r   r,   r   r.   s       r3   Útest_no_change_composite_fkz7AutogenerateForeignKeysTest.test_no_change_composite_fk˜   sk  € Ü‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�<¤¨£Ó,Ü�<¤¨£Ó,Ü Ø˜|Ð,Ø"Ð$5Ð6óô	
ô 	ØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�<¤¨£Ó,Ü�<¤¨£Ó,Ü Ø˜|Ð,Ø"Ð$5Ð6óô	
ð —‘˜b "Ó%ˆäˆE�2�r5   c                 óH  — t        «       }t        «       }t        d|t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        dt        d	«      d
¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dgdgd¬«      «       t        d|t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        dt        d	«      d
¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dgdgd¬«      «       | j                  ||«      }| j                  |d   dddgddgt        j                  j                  j                  rdnd ¬«       | j                  |d   dddgddgd¬«       y )Nr   r   r   Tr   r   r   r   r   Fr   r!   r"   r#   r%   r&   ÚMyFK©r   Úmyfkr   r'   r	   r7   )r   r   r   r   r   r   r,   r-   r   ÚrequirementsÚfk_namesÚenabledr.   s       r3   Ú1test_casing_convention_changed_so_put_drops_firstzMAutogenerateForeignKeysTest.test_casing_convention_changed_so_put_drops_firstÊ   s�  € Ü‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8ô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œF 2›JÓ'Ü  ' Ð->Ð,?ÀfÔMô	
ô 	ØØÜ�6œ6 "›:°4Ô8ô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�7œF 2›JÓ'Ü  $ Ð*;Ð)<À6ÔJô	
ð —‘˜b "Ó%ˆà×ÑØ�!‰HØØØˆIØØˆHÜ!×.Ñ.×7Ñ7×?Ò?‘ÀTð 	ô 	
ð 	×ÑØ�!‰HØØØˆFØØˆHØð 	õ 	
r5   c                 óT  — t        «       }t        «       }t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d
«      d¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dt        d«      «      «       t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d
«      d¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dt        d«      «      t        ddgddgd¬«      «       | j                  ||«      }| j                  |d   ddddgdddgd¬«       y )Nr   r=   r   Tr   r>   r   r   r   r   Fr   r!   r"   r#   r?   r@   rA   rB   Úfk_test_namerG   r   r7   r+   r.   s       r3   Útest_add_composite_fk_with_namez;AutogenerateForeignKeysTest.test_add_composite_fk_with_name  s‚  € Ü‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�<¤¨£Ó,Ü�<¤¨£Ó,ô	
ô 	ØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�<¤¨£Ó,Ü�<¤¨£Ó,Ü Ø˜|Ð,Ø"Ð$5Ð6Ø#ôô	
ð —‘˜b "Ó%ˆØ×ÑØ�!‰HØØØ˜<Ð(ØØ�VÐØð 	õ 	
r5   c                 óT  — t        «       }t        «       }t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d
«      d¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dt        d«      «      t        ddgddgd¬«      «       t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d
«      d¬«      t        dt        d«      d¬«      t        dt        d«      «      t        dt        d«      «      «       | j                  ||«      }| j                  |d   ddddgdddgd¬«       y )Nr   r=   r   Tr   r>   r   r   r   r   Fr   r!   r"   r#   r?   r@   rA   rB   rN   rG   r   r'   r)   r+   r.   s       r3   Útest_remove_composite_fkz4AutogenerateForeignKeysTest.test_remove_composite_fk=  s‚  € ä‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�<¤¨£Ó,Ü�<¤¨£Ó,Ü Ø˜|Ð,Ø"Ð$5Ð6Ø#ôô	
ô 	ØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�4œ ›°CÔ8Ü�<¤¨£Ó,Ü�<¤¨£Ó,ô	
ð —‘˜b "Ó%ˆà×ÑØ�!‰HØØØ˜<Ð(ØØ�VÐØ+ð 	õ 	
r5   c                 ó°  — t        «       }t        «       }t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d«      «      t        d
t        d«      «      «       t        d|t        dt        d«      dd¬«      t        dt        d«      dd¬«      «       t        d|t        dt        d¬«      t        d	t        d«      d¬«      t        d
t        d«      d¬«      t        ddgddgd¬«      «       | j                  ||«      }| j                  |d   ddd	d
gdddgd¬«       y )Nr   r=   r   Tr   r>   r   r   r?   r@   Útid1©Úkeyr   Útid2Úoid1©rU   Úoid2úsome_table.tid1úsome_table.tid2rN   rG   r   r7   r+   r.   s       r3   Útest_add_fk_colkeysz/AutogenerateForeignKeysTest.test_add_fk_colkeysu  sJ  € Ü‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�<¤¨£Ó,Ü�<¤¨£Ó,ô	
ô 	ØØÜ�6œ6 "›:¨6¸tÔDÜ�6œ6 "›:¨6¸tÔDô		
ô 	ØØÜ�4œ¨dÔ3Ü�<¤¨£°Ô8Ü�<¤¨£°Ô8Ü Ø˜Ð Ø"Ð$5Ð6Ø#ôô	
ð —‘˜b "Ó%ˆà×ÑØ�!‰HØØØ˜<Ð(ØØ�VÐØð 	õ 	
r5   c                 ó¤  — t        «       }t        «       }t        d|t        dt        d«      d¬«      t        dt        d«      d¬«      «       t        d|t        dt        d¬«      t        d	t        d«      «      t        d
t        d«      «      t        d	d
gddg«      «       t        d|t        dt        d«      dd¬«      t        dt        d«      dd¬«      «       t        d|t        dt        d¬«      t        d	t        d«      d¬«      t        d
t        d«      d¬«      t        ddgddg«      «       | j                  ||«      }t        |g «       y )Nr   r=   r   Tr   r>   r   r   r?   r@   rA   rB   rS   rT   rV   rW   rX   rY   rZ   r[   rC   r.   s       r3   Útest_no_change_colkeysz2AutogenerateForeignKeysTest.test_no_change_colkeys¨  s3  € Ü‹ZˆÜ‹ZˆäØØÜ�6œ6 "›:°4Ô8Ü�6œ6 "›:°4Ô8ô		
ô 	ØØÜ�4œ¨dÔ3Ü�<¤¨£Ó,Ü�<¤¨£Ó,Ü Ø˜|Ð,Ø"Ð$5Ð6óô
	
ô 	ØØÜ�6œ6 "›:¨6¸tÔDÜ�6œ6 "›:¨6¸tÔDô		
ô 	ØØÜ�4œ¨dÔ3Ü�<¤¨£°Ô8Ü�<¤¨£°Ô8Ü Ø˜Ð Ð#4Ð6GÐ"Hóô		
ð —‘˜b "Ó%ˆäˆE�2�r5   N)Ú__name__Ú
__module__Ú__qualname__Ú__backend__Ú__requires__r4   r8   r;   rD   rL   rO   r   rI   Úno_name_normalizerQ   r\   r^   © r5   r3   r   r      s\   „ Ø€KØ9€Lò-
ò^)
òV(òT0òd;
òz4
ðl ×Ñ×*Ñ*ñ5
ó +ð5
òn1
óf+r5   r   c                   óº   — e Zd ZdZdZ edd«      ej                  j                  d„ «       «       Z	d„ Z
 edd«      ej                  j                  d„ «       «       Zy)	ÚIncludeHooksTestT)rJ   )ÚobjectrG   c           	      ó:  — t        «       }t        «       }t        d|t        dt        d¬«      «      }t        d|t        dt        «      t        dt        «      «      }|j	                  t        |j                  j                  g|j                  j                  gd¬	«      «       |j	                  t        |j                  j                  g|j                  j                  gd
¬	«      «       t        d|t        dt        d¬«      «      }t        d|t        dt        «      t        dt        «      «       |dk(  rd„ }| j                  |||¬«      }n|dk(  rd„ }| j                  |||¬«      }| j                  d   dddgddgd
¬«       t        t        |«      d«       y )NÚrefr   Tr   Útr"   ÚyÚfk1rG   Úfk2rh   c                 óH   — t        | t        «      xr |dk(  xr	 |xr |dk(   S ©NÚforeign_key_constraintrm   ©Ú
isinstancer   ©Úobject_r   Útype_Ú	reflectedÚ
compare_tos        r3   Úinclude_objectzBIncludeHooksTest.test_remove_connection_fk.<locals>.include_object   s;   € ä˜wÔ(<Ó=ò &ØÐ!9Ñ9ò&à!ò&ð  ™ð	ð r5   ©Úobject_filtersr   c                 óT   — | dk(  r#|dk(  ryt        |d«       t        |d dddœ«       yy)Nrm   ÚindexTrq   rk   ©Úschema_nameÚ
table_nameÚschema_qualified_table_nameFr   ©r   rv   Úparent_namess      r3   Úinclude_namez@IncludeHooksTest.test_remove_connection_fk.<locals>.include_name  s@   € Ø˜5’=Ø Ò'Ø#Ü˜Ð7Ô8ÜØ$à+/Ø*-Ø;>ñôð !àr5   ©Úname_filtersr   r'   r)   r	   ©r   r   r   r   Úappend_constraintr   Úcr"   r   rl   r,   r-   r   Úlen)	r/   Ú	hook_typer0   r1   rj   Út1ry   r2   r„   s	            r3   Útest_remove_connection_fkz*IncludeHooksTest.test_remove_connection_fkÚ  s~  € ô ‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3ó
ˆô
 ØØÜ�3œÓ Ü�3œÓ ó	
ˆð 	×ÑÜ  "§$¡$§&¡& ¨C¯E©E¯H©H¨:¸EÔBô	
ð 	×ÑÜ  "§$¡$§&¡& ¨C¯E©E¯H©H¨:¸EÔBô	
ô ØØÜ�4œ¨dÔ3ó
ˆô
 	ØØÜ�3œÓ Ü�3œÓ ô		
ð ˜Ò òð —M‘M " b¸�MÓH‰EØ˜&Ò ò ð" —M‘M " b°|�MÓDˆEà×ÑØ�!‰HØØØˆEØØˆFØ"ð 	ô 	
ô 	ŒC�‹J˜Õr5   c           	      óö  — t        «       }t        «       }t        d|t        dt        d¬«      «       t        d|t        dt        «      t        dt        «      «       t        d|t        dt        d¬«      «      }t        d|t        dt        «      t        dt        «      «      }|j	                  t        |j                  j                  g|j                  j                  gd¬	«      «       |j	                  t        |j                  j                  g|j                  j                  gd
¬	«      «       d„ }| j                  |||¬«      }| j                  |d   dddgddgd
¬	«       t        t        |«      d«       y )Nrj   r   Tr   rk   r"   rl   rm   rG   rn   c                 óJ   — t        | t        «      xr |dk(  xr
 | xr |dk(   S rp   rr   rt   s        r3   ry   z=IncludeHooksTest.test_add_metadata_fk.<locals>.include_objectK  s=   € ä˜7Ô$8Ó9ò "ØÐ5Ñ5ò"à!�Mò"ð ˜E‘Mð	ð r5   rz   r   r7   r	   r‡   )r/   r0   r1   rj   Út2ry   r2   s          r3   Útest_add_metadata_fkz%IncludeHooksTest.test_add_metadata_fk)  sG  € Ü‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3ô	
ô
 	ØØÜ�3œÓ Ü�3œÓ ô		
ô ØØÜ�4œ¨dÔ3ó
ˆô
 ØØÜ�3œÓ Ü�3œÓ ó	
ˆð 	×ÑÜ  "§$¡$§&¡& ¨C¯E©E¯H©H¨:¸EÔBô	
ð 	×ÑÜ  "§$¡$§&¡& ¨C¯E©E¯H©H¨:¸EÔBô	
ò	ð —‘˜b "°^�ÓDˆà×ÑØ�!‰H�h  c U¨E°D°6Àð 	ô 	
ô 	ŒC�‹J˜Õr5   c           
      ó®  — t        «       }t        «       }t        d|t        dt        d¬«      «      }t        d|t        dt        d¬«      t        dt        d¬«      «       t        d|t        dt        «      t        d	t        «      t        d
t        «      «      }|j	                  t        |j                  j                  g|j                  j                  gd¬«      «       |j	                  t        |j                  j                  g|j                  j                  gd¬«      «       t        d|t        dt        d¬«      «       t        d|t        dt        d¬«      t        dt        d¬«      «      }t        d|t        dt        «      t        d	t        «      t        d
t        «      «      }|j	                  t        |j                  j                  |j                  j                  g|j                  j                  |j                  j                  gd¬«      «       |j	                  t        |j                  j                  |j                  j                  g|j                  j                  |j                  j                  gd¬«      «       |dk(  rd„ }| j                  |||¬«      }	n|dk(  rd„ }
| j                  |||
¬«      }	|dk(  rR| j                  	d   ddd	gddgd¬«       | j                  |	d   ddd	d
gdddgd¬«       t        t        |	«      d«       y |dk(  r/t        	D �ch c]  }|d   |d   j                   f’Œ c}h d£«       y y c c}w )NÚref_aÚaTr   Úref_bÚbrk   r"   rl   Úzrm   rG   rn   rh   c                 ó@   — t        | t        «      xr |dk(  xr |dk(   S rp   rr   rt   s        r3   ry   z7IncludeHooksTest.test_change_fk.<locals>.include_object˜  s1   € ä˜wÔ(<Ó=ò &ØÐ!9Ñ9ò&à ™ðð r5   rz   r   c                 óT   — |dk(  ry| dk(  rt        |d«       t        |d dddœ«       yy)Nr}   Trm   rq   rk   r~   Fr   r‚   s      r3   r„   z5IncludeHooksTest.test_change_fk.<locals>.include_name¢  s@   € Ø˜GÒ#Øà˜5’=Ü˜Ð7Ô8ÜØ$à+/Ø*-Ø;>ñôð !àr5   r…   r   r'   r	   r7   é   >   ©r7   rm   ©r7   rn   ©r'   rn   )r   r   r   r   rˆ   r   r‰   r"   r”   rl   r—   r–   r,   r-   r   rŠ   r   )r/   r‹   r0   r1   Úr1arŒ   Úr2br�   ry   r2   r„   Úds               r3   Útest_change_fkzIncludeHooksTest.test_change_fkZ  sì  € ô ‹ZˆÜ‹ZˆäØØÜ�3œ¨TÔ2ó
ˆô
 	ØØÜ�3œ¨TÔ2Ü�3œ¨TÔ2ô		
ô ØØÜ�3œÓ Ü�3œÓ Ü�3œÓ ó
ˆð 	×ÑÜ  "§$¡$§&¡& ¨C¯E©E¯G©G¨9¸5ÔAô	
ð 	×ÑÜ  "§$¡$§&¡& ¨C¯E©E¯G©G¨9¸5ÔAô	
ô 	ØØÜ�3œ¨TÔ2ô	
ô
 ØØÜ�3œ¨TÔ2Ü�3œ¨TÔ2ó	
ˆô ØØÜ�3œÓ Ü�3œÓ Ü�3œÓ ó
ˆð 	×ÑÜ Ø—‘—‘˜Ÿ™Ÿ™Ð  3§5¡5§7¡7¨C¯E©E¯G©GÐ"4¸5ôô	
ð
 	×ÑÜ Ø—‘—‘˜Ÿ™Ÿ™Ð  3§5¡5§7¡7¨C¯E©E¯G©GÐ"4¸5ôô	
ð ˜Ò òð —M‘M " b¸�MÓH‰EØ˜&Ò ò ð$ —M‘M " b°|�MÓDˆEà˜Ò Ø× Ñ Ø�a‘˜+ s¨S¨E°7¸S¸EÈð !ô ð × Ñ Ø�a‘ØØØ�c�
ØØ�c�
Øð !ô ô ”�E“
˜AÕØ˜&Ò ÜÙ,1Ó2©E q�!�A‘$˜˜!™Ÿ	™	Ò"¨EÑ2ÚLõð !ùâ2s   Ì+MN)r_   r`   ra   rb   rc   r   r   rI   rd   r�   r‘   r¡   re   r5   r3   rg   rg   Ö  ss   „ Ø€KØ €Lá�+˜yÓ)Ø×Ñ×*Ñ*ñKó +ó *ðKòZ/ñb �+˜yÓ)Ø×Ñ×*Ñ*ñló +ó *ñlr5   rg   c                   óà  — e Zd ZdZd„ Zej                  j                  d„ «       Zej                  j                  d„ «       Z	d„ Z
ej                  j                  d„ «       Zej                  j                  d„ «       Zej                  j                  d„ «       Zej                  j                   d	„ «       Zej                  j$                  d
„ «       Zej                  j(                  d„ «       Zej                  j                  d„ «       Zej                  j                   d„ «       Zej                  j                   d„ «       Zej                  j                  ej                  j                  d„ «       «       Zej                  j4                  d„ «       Zej                  j4                  d„ «       Zej                  j:                  ej                  j4                  d„ «       «       Zej                  j:                  ej                  j4                  d„ «       «       Zej                  j4                  ej                  j:                  d„ «       «       Z ej                  j4                  ej                  j:                  d„ «       «       Z!ej                  j4                  ej                  j:                  d„ «       «       Z"ej                  j:                  d„ «       Z#ej                  jH                  d„ «       Z%y)ÚAutogenerateFKOptionsTestTc                 óR  — t        «       }t        «       }t        d|t        dt        d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d	«      d
¬«      t        dt        «      t        dgdgfi |¤Ž«       t        d|t        dt        d¬«      t        dt	        d«      «      «       t        d|t        dt        d¬«      t        dt	        d	«      d
¬«      t        dt        «      t        dgdgfi |¤Ž«       | j                  ||«      S )Nr   r   Tr   r   r   r   r   r   Fr   Útidr:   )r   r   r   r   r   r   r,   )r/   Úold_optsÚnew_optsr0   r1   s        r3   Ú_fk_opts_fixturez*AutogenerateFKOptionsTest._fk_opts_fixtureÎ  s	  € Ü‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�5œ'Ó"Ü  % ¨?Ð*;ÑH¸xÑHô	
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:Ó&ô		
ô 	ØØÜ�4œ¨dÔ3Ü�6œ6 "›:°Ô6Ü�5œ'Ó"Ü  % ¨?Ð*;ÑH¸xÑHô	
ð �}‰}˜R Ó$Ð$r5   c           
      ó¢   — | j                  i ddi«      }| j                  |d   dddgddgd d	¬
«       | j                  |d   dddgddgd¬«       y )NÚondeleteÚcascader   r'   r   r¥   r   r   r(   ©rª   r*   r	   r7   ©rª   ©r¨   r-   ©r/   r2   s     r3   Útest_add_ondeletez+AutogenerateFKOptionsTest.test_add_ondeleteô  ó~   € à×%Ñ% b¨:°yÐ*AÓBˆà×ÑØ�!‰HØØØˆGØØˆFØØ.ð 	ô 		
ð 	×ÑØ�!‰HØØØˆGØØˆFØð 	õ 	
r5   c           
      ó¢   — | j                  ddii «      }| j                  |d   dddgddgdd	¬
«       | j                  |d   dddgddgd ¬«       y )Nrª   ÚCASCADEr   r'   r   r¥   r   r   r(   r¬   r	   r7   r­   r®   r¯   s     r3   Útest_remove_ondeletez.AutogenerateFKOptionsTest.test_remove_ondelete  ó~   € à×%Ñ% z°9Ð&=¸rÓBˆà×ÑØ�!‰HØØØˆGØØˆFØØ.ð 	ô 		
ð 	×ÑØ�!‰HØØØˆGØØˆFØð 	õ 	
r5   c                 óH   — | j                  ddiddi«      }t        |g «       y)útest case sensitivityrª   ÚcaSCAdeÚCasCadeN©r¨   r   r¯   s     r3   Útest_nochange_ondeletez0AutogenerateFKOptionsTest.test_nochange_ondelete&  s,   € à×%Ñ%Ø˜Ð# j°)Ð%<ó
ˆô 	ˆE�2�r5   c           
      ó¢   — | j                  i ddi«      }| j                  |d   dddgddgd d	¬
«       | j                  |d   dddgddgd¬«       y )NÚonupdater«   r   r'   r   r¥   r   r   r(   ©r½   r*   r	   r7   ©r½   r®   r¯   s     r3   Útest_add_onupdatez+AutogenerateFKOptionsTest.test_add_onupdate-  r±   r5   c           
      ó¢   — | j                  ddii «      }| j                  |d   dddgddgdd	¬
«       | j                  |d   dddgddgd ¬«       y )Nr½   r³   r   r'   r   r¥   r   r   r(   r¾   r	   r7   r¿   r®   r¯   s     r3   Útest_remove_onupdatez.AutogenerateFKOptionsTest.test_remove_onupdateF  rµ   r5   c                 óH   — | j                  ddiddi«      }t        |g «       y)r·   r½   r¸   r¹   Nrº   r¯   s     r3   Útest_nochange_onupdatez0AutogenerateFKOptionsTest.test_nochange_onupdate_  s.   € ð ×%Ñ%Ø˜Ð# j°)Ð%<ó
ˆô 	ˆE�2�r5   c                 óH   — | j                  ddiddi«      }t        |g «       y)ú6test the RESTRICT option which MySQL doesn't report onrª   ÚrestrictNrº   r¯   s     r3   Útest_nochange_ondelete_restrictz9AutogenerateFKOptionsTest.test_nochange_ondelete_restrictg  ó.   € ð ×%Ñ%Ø˜Ð$ z°:Ð&>ó
ˆô 	ˆE�2�r5   c                 óH   — | j                  ddiddi«      }t        |g «       y)rÆ   r½   rÇ   Nrº   r¯   s     r3   Útest_nochange_onupdate_restrictz9AutogenerateFKOptionsTest.test_nochange_onupdate_restrictp  rÉ   r5   c                 óH   — | j                  ddiddi«      }t        |g «       y)ú<test the NO ACTION option which generally comes back as Nonerª   ú	no actionNrº   r¯   s     r3   Útest_nochange_ondelete_noactionz9AutogenerateFKOptionsTest.test_nochange_ondelete_noactiony  ó.   € ð ×%Ñ%Ø˜Ð%¨
°KÐ'@ó
ˆô 	ˆE�2�r5   c                 óH   — | j                  ddiddi«      }t        |g «       y)rÍ   r½   rÎ   Nrº   r¯   s     r3   Útest_nochange_onupdate_noactionz9AutogenerateFKOptionsTest.test_nochange_onupdate_noaction‚  rÐ   r5   c                 óÆ   — | j                  ddiddi«      }| j                  |d   dddgdd	gd
t        j                  d¬«	       | j                  |d   dddgdd	gd
d¬«       y
)rÆ   rª   rÇ   r«   r   r'   r   r¥   r   r   Nr(   ©r½   rª   r*   r	   r7   ©r½   rª   ©r¨   r-   r   ÚANYr¯   s     r3   Ú"test_change_ondelete_from_restrictz<AutogenerateFKOptionsTest.test_change_ondelete_from_restrict‹  s”   € ð ×%Ñ%Ø˜Ð$ z°9Ð&=ó
ˆð 	×ÑØ�!‰HØØØˆGØØˆFØÜ—X‘XØ.ð 	ô 
	
ð 	×ÑØ�!‰HØØØˆGØØˆFØØð 	õ 		
r5   c                 óÆ   — | j                  ddiddi«      }| j                  |d   dddgdd	gt        j                  d
d¬«	       | j                  |d   dddgdd	gdd
¬«       y
)rÆ   r½   rÇ   r«   r   r'   r   r¥   r   r   Nr(   rÔ   r	   r7   rÕ   rÖ   r¯   s     r3   Ú"test_change_onupdate_from_restrictz<AutogenerateFKOptionsTest.test_change_onupdate_from_restrict«  s”   € ð ×%Ñ%Ø˜Ð$ z°9Ð&=ó
ˆð 	×ÑØ�!‰HØØØˆGØØˆFÜ—X‘XØØ.ð 	ô 
	
ð 	×ÑØ�!‰HØØØˆGØØˆFØØð 	õ 		
r5   c                 ó®   — | j                  dddœdddœ«      }| j                  |d   dddgd	d
gddd¬«	       | j                  |d   dddgd	d
gdd¬«       y )Nr³   zSET NULLrÕ   ÚRESTRICTr   r'   r   r¥   r   r   r(   rÔ   r	   r7   r®   r¯   s     r3   Útest_ondelete_onupdate_comboz6AutogenerateFKOptionsTest.test_ondelete_onupdate_comboË  s‘   € ð ×%Ñ%Ø"°
Ñ;Ø#°Ñ<ó
ˆð
 	×ÑØ�!‰HØØØˆGØØˆFØØØ.ð 	ô 
	
ð 	×ÑØ�!‰HØØØˆGØØˆFØØð 	õ 		
r5   c           
      ó¢   — | j                  i ddi«      }| j                  |d   dddgddgd d	¬
«       | j                  |d   dddgddgd¬«       y )NÚ	initiallyÚdeferredr   r'   r   r¥   r   r   r(   ©rß   r*   r	   r7   ©rß   r®   r¯   s     r3   Útest_add_initially_deferredz5AutogenerateFKOptionsTest.test_add_initially_deferredê  s~   € à×%Ñ% b¨;¸
Ð*CÓDˆà×ÑØ�!‰HØØØˆGØØˆFØØ.ð 	ô 		
ð 	×ÑØ�!‰HØØØˆGØØˆFØ ð 	õ 	
r5   c                 ó¤   — | j                  ddii «      }| j                  |d   dddgddgd	d
d¬«	       | j                  |d   dddgddgd ¬«       y )Nrß   rà   r   r'   r   r¥   r   r   ÚDEFERREDTr(   ©rß   Ú
deferrabler*   r	   r7   râ   r®   r¯   s     r3   Útest_remove_initially_deferredz8AutogenerateFKOptionsTest.test_remove_initially_deferred  s�   € à×%Ñ% {°JÐ&?ÀÓDˆà×ÑØ�!‰HØØØˆGØØˆFØ ØØ.ð 	ô 
	
ð 	×ÑØ�!‰HØØØˆGØØˆFØð 	õ 	
r5   c           
      ó¦   — | j                  i dddœ«      }| j                  |d   dddgdd	gd d
¬«       | j                  |d   dddgdd	gdd¬«       y )NÚ	immediateT©rß   rç   r   r'   r   r¥   r   r   r(   rá   r	   r7   r®   r¯   s     r3   Ú,test_add_initially_immediate_plus_deferrablezFAutogenerateFKOptionsTest.test_add_initially_immediate_plus_deferrable  sˆ   € ð ×%Ñ%Ø˜k¸Ñ>ó
ˆð 	×ÑØ�!‰HØØØˆGØØˆFØØ.ð 	ô 		
ð 	×ÑØ�!‰HØØØˆGØØˆFØ!Øð 	õ 		
r5   c                 ó¨   — | j                  dddœi «      }| j                  |d   dddgdd	gd dd
¬«	       | j                  |d   dddgdd	gd d ¬«       y )Nrê   Trë   r   r'   r   r¥   r   r   r(   ræ   r	   r7   r®   r¯   s     r3   Ú/test_remove_initially_immediate_plus_deferrablezIAutogenerateFKOptionsTest.test_remove_initially_immediate_plus_deferrable:  s‹   € ð ×%Ñ%Ø%°TÑ:¸Bó
ˆð 	×ÑØ�!‰HØØØˆGØØˆFØØØ.ð 	ô 
	
ð 	×ÑØ�!‰HØØØˆGØØˆFØØð 	õ 		
r5   c                 óL   — | j                  dddœdddœ«      }t        |g «       y )NTrê   ©rç   rß   rº   r¯   s     r3   Ú*test_add_initially_deferrable_nochange_onezDAutogenerateFKOptionsTest.test_add_initially_deferrable_nochange_oneX  s/   € ð ×%Ñ%Ø¨kÑ:Ø¨kÑ:ó
ˆô
 	ˆE�2�r5   c                 óL   — | j                  dddœdddœ«      }t        |g «       y )NTrà   rð   rº   r¯   s     r3   Ú*test_add_initially_deferrable_nochange_twozDAutogenerateFKOptionsTest.test_add_initially_deferrable_nochange_twob  ó/   € ð ×%Ñ%Ø¨jÑ9Ø¨jÑ9ó
ˆô
 	ˆE�2�r5   c                 óL   — | j                  d ddœd ddœ«      }t        |g «       y )Nrà   rð   rº   r¯   s     r3   Ú,test_add_initially_deferrable_nochange_threezFAutogenerateFKOptionsTest.test_add_initially_deferrable_nochange_threel  rô   r5   c           
      ó¢   — | j                  i ddi«      }| j                  |d   dddgddgd d	¬
«       | j                  |d   dddgddgd¬«       y ©Nrç   Tr   r'   r   r¥   r   r   r(   )rç   r*   r	   r7   )rç   r®   r¯   s     r3   Útest_add_deferrablez-AutogenerateFKOptionsTest.test_add_deferrablev  s~   € à×%Ñ% b¨<¸Ð*>Ó?ˆà×ÑØ�!‰HØØØˆGØØˆFØØ.ð 	ô 		
ð 	×ÑØ�!‰HØØØˆGØØˆFØð 	õ 	
r5   c           
      ó¢   — | j                  ddii «      }| j                  |d   dddgddgdd	¬
«       | j                  |d   dddgddgd ¬«       y rø   r®   r¯   s     r3   Útest_remove_deferrablez0AutogenerateFKOptionsTest.test_remove_deferrable�  s~   € à×%Ñ% |°TÐ&:¸BÓ?ˆà×ÑØ�!‰HØØØˆGØØˆFØØ.ð 	ô 		
ð 	×ÑØ�!‰HØØØˆGØØˆFØð 	õ 	
r5   N)&r_   r`   ra   rb   r¨   r   rI   Úfk_ondelete_is_reflectedr°   r´   r»   Úfk_onupdate_is_reflectedrÀ   rÂ   Úfk_onupdaterÄ   Úfk_ondelete_restrictrÈ   Úfk_onupdate_restrictrË   Úfk_ondelete_noactionrÏ   rÒ   rØ   rÚ   rÝ   Úfk_initiallyrã   rè   Úfk_deferrablerì   rî   rñ   ró   rö   rù   Úfk_deferrable_is_reflectedrû   re   r5   r3   r£   r£   Ë  s*  „ Ø€Kò$%ðL ×Ñ×1Ñ1ñ
ó 2ð
ð0 ×Ñ×1Ñ1ñ
ó 2ð
ò0ð ×Ñ×1Ñ1ñ
ó 2ð
ð0 ×Ñ×1Ñ1ñ
ó 2ð
ð0 ×Ñ×$Ñ$ñó %ðð ×Ñ×-Ñ-ñó .ðð ×Ñ×-Ñ-ñó .ðð ×Ñ×-Ñ-ñó .ðð ×Ñ×$Ñ$ñó %ðð ×Ñ×-Ñ-ñ
ó .ð
ð> ×Ñ×-Ñ-ñ
ó .ð
ð> ×Ñ×1Ñ1Ø×Ñ×1Ñ1ñ
ó 2ó 2ð
ð: ×Ñ×%Ñ%ñ
ó &ð
ð0 ×Ñ×%Ñ%ñ
ó &ð
ð2 ×Ñ×&Ñ&Ø×Ñ×%Ñ%ñ
ó &ó 'ð
ð6 ×Ñ×&Ñ&Ø×Ñ×%Ñ%ñ
ó &ó 'ð
ð8 ×Ñ×%Ñ%Ø×Ñ×&Ñ&ñó 'ó &ðð ×Ñ×%Ñ%Ø×Ñ×&Ñ&ñó 'ó &ðð ×Ñ×%Ñ%Ø×Ñ×&Ñ&ñó 'ó &ðð ×Ñ×&Ñ&ñ
ó 'ð
ð0 ×Ñ×3Ñ3ñ
ó 4ñ
r5   r£   N)Ú
sqlalchemyr   r   r   r   r   r   Ú_autogen_fixturesr
   Útestingr   r   r   r   r   r   rg   r£   re   r5   r3   Ú<module>r     s^   ðÝ Ý +Ý Ý Ý Ý å 1Ý #Ý Ý Ý Ý ôCÐ"4°hô CôLrÐ)¨8ô rôj[
Ð 2°Hõ [
r5   