Ë
    †V.j  ã                   óÀ   — 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  G d„ dee«      Zy)é    N)ÚColumn)ÚInteger)ÚMetaData)ÚTableé   )ÚAutogenFixtureTesté   )Útesting)Úconfig)Úeq_)Ú
exclusions)Úis_)Úis_true)Úmock)ÚTestBasec                   ó6  — e Zd ZdZdZd„ Zd„ Z ej                  d„ d„ d„ d„ «      e	j                  j                  d	„ «       «       Z ej                  d
„ d„ d„ d„ d„ e	j                  j                  f«      d„ «       Ze	j                  j                  d„ «       Zy)ÚAutogenerateComputedTest)Úcomputed_columnsTc                 ó^  — t        «       }t        «       }t        d|t        dt        d¬«      «       t        d|t        dt        d¬«      t        dt        t	        j
                  d«      «      «       | j                  ||«      }t        |d   d   d«       t        |d   d	   d«       t        |d   d
   j                  d«       |d   d
   j                  }t        t        |t        j
                  «      «       t        |j                  d «       t        t        |j                  «      d«       y )NÚuserÚidT©Úprimary_keyÚfooÚ5r   Ú
add_columné   r	   )r   r   r   r   ÚsaÚComputedÚ_fixturer   ÚnameÚcomputedr   Ú
isinstancer   Ú	persistedÚstrÚsqltext©ÚselfÚm1Úm2ÚdiffsÚcs        úmC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\alembic/testing/suite/test_autogen_computed.pyÚtest_add_computed_columnz1AutogenerateComputedTest.test_add_computed_column   sè   € Ü‹ZˆÜ‹Zˆäˆf�bœ& ¤w¸DÔAÔBäØØÜ�4œ¨dÔ3Ü�5œ'¤2§;¡;¨sÓ#3Ó4ô		
ð —‘˜b "Ó%ˆäˆE�!‰H�Q‰K˜Ô&ÜˆE�!‰H�Q‰K˜Ô ÜˆE�!‰H�Q‰K×Ñ˜eÔ$Ø�!‰H�Q‰K× Ñ ˆä”
˜1œbŸk™kÓ*Ô+ÜˆA�K‰K˜ÔÜŒC�—	‘	‹N˜CÕ ó    c                 ó8  — t        «       }t        «       }t        d|t        dt        d¬«      t        dt        t	        j
                  d«      «      «       t        d|t        dt        d¬«      «       | j                  ||«      }t        |d   d   d«       t        |d   d	   d«       |d   d
   }t        |j                  d«       t        j                  j                  j                  r.t        t        |j                  t        j
                  «      «       nt!        |j                  d «       t        j                  j"                  j                  rat        t        |j$                  t        j&                  «      «       t        t)        |j$                  j*                  j,                  «      d«       y t        j                  j                  j                  r.t        t        |j                  t        j
                  «      «       y t!        |j                  d «       y )Nr   r   Tr   r   r   r   Úremove_columnr   r	   )r   r   r   r   r   r   r    r   r!   r   ÚrequirementsÚcomputed_reflects_normallyÚenabledr   r#   r"   r   Ú#computed_reflects_as_server_defaultÚserver_defaultÚDefaultClauser%   ÚargÚtextr'   s        r-   Útest_remove_computed_columnz4AutogenerateComputedTest.test_remove_computed_column.   sj  € Ü‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3Ü�5œ'¤2§;¡;¨sÓ#3Ó4ô		
ô 	ˆf�bœ& ¤w¸DÔAÔBà—‘˜b "Ó%ˆäˆE�!‰H�Q‰K˜Ô)ÜˆE�!‰H�Q‰K˜Ô Ø�!‰H�Q‰KˆÜˆA�F‰F�EÔä×Ñ×9Ñ9×AÒAÜ”J˜qŸz™z¬2¯;©;Ó7Õ8ä�—
‘
˜DÔ!ä×Ñ×BÑB×JÒJÜ”J˜q×/Ñ/´×1AÑ1AÓBÔCÜ”�A×$Ñ$×(Ñ(×-Ñ-Ó.°Õ4Ü× Ñ ×;Ñ;×CÒCÜ”J˜qŸz™z¬2¯;©;Ó7Õ8ä�—
‘
˜DÕ!r/   c                  ó0   — d t        j                  d«      fS ©Núbar*5©r   r   © r/   r-   Ú<lambda>z!AutogenerateComputedTest.<lambda>P   s   € �”r—{‘{ 7Ó+Ñ,r/   c                  ó0   — t        j                  d«      d fS r<   r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>Q   s   € ”"—+‘+˜gÓ&¨Ñ-r/   c                  óZ   — t        j                  d«      t        j                  dd¬«      fS )Nr=   úbar * 42T)r$   r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>R   s!   € Ü�K‰K˜Ó Ü�K‰K˜
¨dÔ3ñ
r/   c                  óV   — t        j                  d«      t        j                  d«      fS )Nr=   rC   r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>V   s   € ”—‘˜WÓ%¤r§{¡{°:Ó'>Ñ?r/   c           
      óp  — t        j                  |fi t        «       ¤Ž\  }}t        «       }t        «       }|€g n|g}|€g n|g}t	        d|t        dt        d¬«      t        dt        «      t        dt        g|¢­Ž «       t	        d|t        dt        d¬«      t        dt        «      t        dt        g|¢­Ž «       t        j                  d«      5 }| j                  ||«      }d d d «       t        j                  t        j                  d«      g«       t        t        «      g «       y # 1 sw Y   ŒIxY w)	Nr   r   Tr   Úbarr   úalembic.util.warnz/Computed default on user.foo cannot be modified)r
   Úresolve_lambdaÚlocalsr   r   r   r   r   Úpatchr    r   Ú
mock_callsÚcallÚlist©r(   Ú	test_caseÚ
arg_beforeÚ	arg_afterr)   r*   Ú	mock_warnr+   s           r-   Ú!test_cant_change_computed_warningz:AutogenerateComputedTest.test_cant_change_computed_warningO   s  € ô !(× 6Ñ 6°yÑ MÄFÃHÑ MÑˆ
�IÜ‹ZˆÜ‹Zˆà%Ð-‘R°J°<ˆ
Ø#Ð+‘B°)°ˆ	äØØÜ�4œ¨dÔ3Ü�5œ'Ó"Ü�5œ'Ð/ JÒ/ô	
ô 	ØØÜ�4œ¨dÔ3Ü�5œ'Ó"Ü�5œ'Ð. IÒ.ô	
ô �Z‰ZÐ+Ô,°	Ø—M‘M " bÓ)ˆE÷ -ô 	Ø× Ñ Ü�Y‰YÐHÓIÐJô	
ô
 	ŒD�‹K˜Õ÷ -Ð,ús   ÃD,Ä,D5c                   ó   — y)N)NNr?   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>|   s   € �r/   c                  óV   — t        j                  d«      t        j                  d«      fS )Nr   r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>}   s   € ”—‘˜SÓ!¤2§;¡;¨sÓ#3Ñ4r/   c                  óV   — t        j                  d«      t        j                  d«      fS r<   r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>~   s   € ”—‘˜WÓ%¤r§{¡{°7Ó';Ñ<r/   c                  óV   — t        j                  d«      t        j                  d«      fS )Nr=   z
bar * 
	5r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>   s   € ”—‘˜WÓ%¤r§{¡{°?Ó'CÑDr/   c                  ó0   — t        j                  d«      d fS r<   r>   r?   r/   r-   r@   z!AutogenerateComputedTest.<lambda>�   s   € ”R—[‘[ Ó)¨4Ñ0r/   c           
      óH  — t        j                  |fi t        «       ¤Ž\  }}t        «       }t        «       }|€g n|g}|€g n|g}t	        d|t        dt        d¬«      t        dt        «      t        dt        g|¢­Ž «       t	        d|t        dt        d¬«      t        dt        «      t        dt        g|¢­Ž «       t        j                  d«      5 }| j                  ||«      }d d d «       t        j                  g «       t        t        «      g «       y # 1 sw Y   Œ5xY w)Nr   r   Tr   rF   r   rG   )r
   rH   rI   r   r   r   r   r   rJ   r    r   rK   rM   rN   s           r-   Útest_computed_unchangedz0AutogenerateComputedTest.test_computed_unchanged{   sÿ   € ô !(× 6Ñ 6°yÑ MÄFÃHÑ MÑˆ
�IÜ‹ZˆÜ‹Zˆà%Ð-‘R°J°<ˆ
Ø#Ð+‘B°)°ˆ	äØØÜ�4œ¨dÔ3Ü�5œ'Ó"Ü�5œ'Ð/ JÒ/ô	
ô 	ØØÜ�4œ¨dÔ3Ü�5œ'Ó"Ü�5œ'Ð. IÒ.ô	
ô �Z‰ZÐ+Ô,°	Ø—M‘M " bÓ)ˆE÷ -äˆI× Ñ  "Ô%äŒD�‹K˜Õ÷	 -Ð,ús   ÃDÄD!c                 ó|  — t        «       }t        «       }t        d|t        dt        d¬«      t        dt        «      t        dt        t	        j
                  d«      «      «       t        d|t        dt        d¬«      t        dt        «      t        dt        «      «       | j                  ||«      }t        |d   d   d   d	«       t        |d   d   d
   d«       t        |d   d   d   d«       |d   d   d   }|d   d   d   }t        |d«       t        t        |t        j                  «      «       t        j                  t        d«      r*t        t        |j                   j"                  «      d«       yt        j                  t        d«      r*t        t        |j                   j"                  «      d«       yy)zþAsserts the current behavior which is that on PG and Oracle,
        the GENERATED ALWAYS AS is reflected as a server default which we can't
        tell is actually "computed", so these come out as a modification to
        the server default.

        r   r   Tr   rF   r   zbar + 42r   Úmodify_defaultr   r	   éþÿÿÿéÿÿÿÿNÚ
postgresqlz
(bar + 42)Úoraclez"BAR"+42)r   r   r   r   r   r   r    r   r   r   r#   r7   r   Úagainstr   r%   r8   r9   )r(   r)   r*   r+   ÚoldÚnews         r-   Ú(test_remove_computed_default_on_computedzAAutogenerateComputedTest.test_remove_computed_default_on_computed£   sc  € ô ‹ZˆÜ‹ZˆäØØÜ�4œ¨dÔ3Ü�5œ'Ó"Ü�5œ'¤2§;¡;¨zÓ#:Ó;ô	
ô 	ØØÜ�4œ¨dÔ3Ü�5œ'Ó"Ü�5œ'Ó"ô	
ð —‘˜b "Ó%ˆäˆE�!‰H�Q‰K˜‰NÐ,Ô-ÜˆE�!‰H�Q‰K˜‰N˜FÔ#ÜˆE�!‰H�Q‰K˜‰N˜EÔ"Ø�A‰h�q‰k˜"‰oˆØ�A‰h�q‰k˜"‰oˆäˆC�ŒÜ”
˜3¤× 0Ñ 0Ó1Ô2ä×Ñœf lÔ3Ü”�C—G‘G—L‘LÓ! <Õ0Ü×Ñ¤¨Ô1Ü”�C—G‘G—L‘LÓ! :Õ.ð 2r/   N)Ú__name__Ú
__module__Ú__qualname__Ú__requires__Ú__backend__r.   r:   r
   Úcombinationsr   r2   r3   rS   Ú)computed_doesnt_reflect_as_server_defaultrZ   r5   rd   r?   r/   r-   r   r      sÄ   „ Ø(€LØ€Kò!ò0"ðB €W×ÑÙ,Ù	-ñ	
ñ 	@óð ×Ñ×3Ñ3ñ ó 4óð ðD €W×ÑÙÙ4Ù<ÙDá0Ø×Ñ×IÑIð	
ó	ñó	ðð< ×Ñ×<Ñ<ñ(/ó =ñ(/r/   r   )Ú
sqlalchemyr   r   r   r   r   Ú_autogen_fixturesr   Ú r
   r   r   r   r   r   r   r   r   r?   r/   r-   Ú<module>ro      s@   ðÛ Ý Ý Ý Ý å 1Ý Ý Ý Ý !Ý Ý Ý Ý ôz/Ð1°8õ z/r/   