
    ZeIie.                         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  G d de          ZdS )    N   )MigrationContext)assert_raises)config)eq_)is_)is_false)is_not_)is_true)ne_)TestBasec                       e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej        j        d             Zej        j        d             Zd Zd Zd ZdS )MigrationTransactionTestTNc                 Z   t           j                                        x| _        }|                    dd          rOt          j        |j        |          | _        t          j
                    x| j        _        | j        j        _        nt          j        ||          | _        | j        S )Nas_sqlF)dialectopts)
connectionr   )r   dbconnectconngetr   	configurer   contextioStringIOoutput_bufferimpl)selfr   r   s      k/var/www/html/MCyber-Diagnostic/venv/lib/python3.11/site-packages/alembic/testing/suite/test_environment.py_fixturez!MigrationTransactionTest._fixture   s    !9,,...	D88He$$ 
	+54  DL DL&):)H)H ,5d  DL |    c                 J    | j         r| j                                          d S d S )N)r   close)r   s    r    teardown_methodz(MigrationTransactionTest.teardown_method$   s.    9 	IOO	 	r"   c                 n   |                      ddd          }t          | j                                                   |                    d          }t          | j                                                   |                                 t          | j                                                   d S NTtransaction_per_migrationtransactional_ddl_per_migration)r!   r	   r   in_transactionbegin_transactionr   rollbackr   r   proxys      r    test_proxy_transaction_rollbackz8MigrationTransactionTest.test_proxy_transaction_rollback(   s    --*.TJJ
 
 	))++,,,)))>>	((**+++))++,,,,,r"   c                 "   |                      ddd          }|                    d          }t          | j                                                   |                                 t          | j                                                   d S r'   r!   r.   r   r   r-   commitr	   r0   s      r    test_proxy_transaction_commitz6MigrationTransactionTest.test_proxy_transaction_commit3   s    --*.TJJ
 
 )))>>	((**+++))++,,,,,r"   c                 0   |                      ddd          }|                    d          }t          | j                                                   |5  	 d d d            n# 1 swxY w Y   t          | j                                                   d S r'   )r!   r.   r   r   r-   r	   r0   s      r    ,test_proxy_transaction_contextmanager_commitzEMigrationTransactionTest.test_proxy_transaction_contextmanager_commit<   s    --*.TJJ
 
 )))>>	((**+++ 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	))++,,,,,s   A%%A),A)c                 0   |                      ddd          }|                    d          t          | j                                                   fd}t          t          |           t          | j                                                   d S )NTr(   r+   c                  B     5  t          d          # 1 swxY w Y   d S )Nhi)	Exception)r1   s   r    gozSMigrationTransactionTest.test_proxy_transaction_contextmanager_rollback.<locals>.goM   sQ     & &oo%& & & & & & & & & &s   )r!   r.   r   r   r-   r   r<   r	   )r   r   r=   r1   s      @r    .test_proxy_transaction_contextmanager_rollbackzGMigrationTransactionTest.test_proxy_transaction_contextmanager_rollbackF   s    --*.TJJ
 
 )))>>	((**+++	& 	& 	& 	& 	& 	i$$$))++,,,,,r"   c                    |                      ddd          }|                    d          }t          | j                                                   |5  t          | j                                                   |                                 t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S r'   )r!   r.   r   r   r-   r/   r	   r0   s      r    7test_proxy_transaction_contextmanager_explicit_rollbackzPMigrationTransactionTest.test_proxy_transaction_contextmanager_explicit_rollbackT   s   --*.TJJ
 
 )))>>	((**+++ 	1 	1DI,,..///NNTY--//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
 	))++,,,,,   A!CCCc                    |                      ddd          }|                    d          }t          | j                                                   |5  t          | j                                                   |                                 t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S r'   r4   r0   s      r    5test_proxy_transaction_contextmanager_explicit_commitzNMigrationTransactionTest.test_proxy_transaction_contextmanager_explicit_commitb   s   --*.TJJ
 
 )))>>	((**+++ 	1 	1DI,,..///LLNNNTY--//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
 	))++,,,,,rA   c                 f   |                      ddd          }t          | j                                                   |                                5  t          | j                                                   |                    d          5  t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S r'   r!   r	   r   r-   r.   r   r   r   s     r    0test_transaction_per_migration_transactional_ddlzIMigrationTransactionTest.test_transaction_per_migration_transactional_ddlp   s   --*.TJJ
 
 	))++,,,&&(( 	1 	1TY--//000**$*?? 4 4	00223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 TY--//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	))++,,,,,6   =D 'C7D C	D 
C	)D  DDc                 f   |                      ddd          }t          | j                                                   |                                5  t          | j                                                   |                    d          5  t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S )NTFr(   r+   rE   rF   s     r    4test_transaction_per_migration_non_transactional_ddlzMMigrationTransactionTest.test_transaction_per_migration_non_transactional_ddl   s   --*.UKK
 
 	))++,,,&&(( 	1 	1TY--//000**$*?? 4 4	00223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 TY--//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	))++,,,,,rH   c                 d   |                      ddi          }t          | j                                                   |                                5  t          | j                                                   |                    d          5  t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S )Nr*   Tr+   rE   rF   s     r    *test_transaction_per_all_transactional_ddlzCMigrationTransactionTest.test_transaction_per_all_transactional_ddl   s   --!4d ;<<))++,,,&&(( 	0 	0DI,,..///**$*?? 4 4	00223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 DI,,..///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	))++,,,,,6   =C?'C6C?C	C?	C	
)C??DDc                 d   |                      ddi          }t          | j                                                   |                                5  t          | j                                                   |                    d          5  t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S )Nr*   FTr+   rE   rF   s     r    .test_transaction_per_all_non_transactional_ddlzGMigrationTransactionTest.test_transaction_per_all_non_transactional_ddl   s   --!4e <==))++,,,&&(( 	1 	1TY--//000**$*?? 4 4	00223334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 TY--//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	))++,,,,,rM   c           	      >   |                      ddi          }|                    d           |                                5  |                    d           |                    d          5  |                    d           d d d            n# 1 swxY w Y   |                    d           d d d            n# 1 swxY w Y   |                    d           |j        j        r|                     dd	dddd
d           d S |                     ddddd           d S )Nr   Tstep 1step 2r+   step 3step 4step 5BEGINCOMMITr!   executer.   r   r*   _assert_impl_stepsrF   s     r     test_transaction_per_all_sqlmodez9MigrationTransactionTest.test_transaction_per_all_sqlmode   s   --4 011!!!&&(( 	& 	&OOH%%%**$*?? * *)))* * * * * * * * * * * * * * * OOH%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	!!!<) 	##     ##(Hh    s6   ,B;-BB;B	B;B	B;;B?B?c           	      @   |                      ddd          }|                    d           |                                5  |                    d           |                    d          5  |                    d           d d d            n# 1 swxY w Y   |                    d           d d d            n# 1 swxY w Y   |                    d           |j        j        r|                     ddd	dd
dd           d S |                     ddddd           d S )NT)r   r)   rQ   rR   r+   rS   rT   rU   rV   rW   rX   rF   s     r    &test_transaction_per_migration_sqlmodez?MigrationTransactionTest.test_transaction_per_migration_sqlmode   s   --$??
 
 	!!!&&(( 	& 	&OOH%%%**$*?? * *)))* * * * * * * * * * * * * * * OOH%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	!!!<) 	##     ##(Hh    s6   ,B<.BB<B	B<B	B<<C C c                 h   |                      ddi          }t          | j                                                   |                                5  t          | j                                                   |                    d          5  t          | j                                                   |                                5  | j        rt          |j	        | j                   n@t          |j	        | j                   t          | j                                                   t          |j	        j        d         d           d d d            n# 1 swxY w Y   t          |j	        j                            dd           d           t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d d d            n# 1 swxY w Y   t          | j                                                   d S )Nr)   Tr+   isolation_level
AUTOCOMMIT)r!   r	   r   r-   r.   r   autocommit_blockis_sqlalchemy_futurer   r   r
   r   _execution_optionsr   r   rF   s     r    test_autocommit_blockz.MigrationTransactionTest.test_autocommit_block   s   --!<d CDD))++,,,&&(( 	1 	1TY--//000**$*?? 4 4	0022333--//  
 0 =G.	:::: 2DI>>> !9!9!;!;<<<*=- %	                $ &9==)4  !	   	002233374 4 4 4 4 4 4 4 4 4 4 4 4 4 4: TY--//000?	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1@ 	))++,,,,,s\   =H;G
BEGEG E!AG8HG	HG	)HHHc                    |                      ddi          }t          | j                                                   |                                5  t          |j                                                   | j        rt          |j        | j                   n@t          |j        | j                   t          | j                                                   t          |j        j        d         d           d d d            n# 1 swxY w Y   t          |j        j                            dd           d           t          | j                                                   d S )Nr)   Tr_   r`   )r!   r	   r   r-   ra   r   r   rb   r   r
   r   rc   r   r   rF   s     r    $test_autocommit_block_no_transactionz=MigrationTransactionTest.test_autocommit_block_no_transaction  s   --!<d CDD))++,,,%%'' 	 	G&5577888
 ( 5G&	2222*DI6661133444"56GH  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	" 	1556GNN	
 	
 	

 	))++,,,,,s   B)DDDc                 P   |                      dddd          }|                                5  |                    d           |                    d          5  |                    d           |                                5  |                    d           d d d            n# 1 swxY w Y   |                    d           d d d            n# 1 swxY w Y   |                    d           d d d            n# 1 swxY w Y   |                     dd	dd
dd	dd
d	  	         d S )NTr)   r*   r   rQ   r+   rR   rS   rT   rU   rV   rW   r!   r.   rY   ra   rZ   rF   s     r    /test_autocommit_block_transactional_ddl_sqlmodezHMigrationTransactionTest.test_autocommit_block_transactional_ddl_sqlmode&  s   ---1%) 
 
 &&(( 
	& 
	&OOH%%%**$*?? * *)))--// . .OOH---. . . . . . . . . . . . . . . )))* * * * * * * * * * * * * * * OOH%%%
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 	
	
 
	
 
	
 
	
 
	
Y   ,C>*CB&C&B**C-B*.CC>C	C>C	C>>DDc                 H   |                      dddd          }|                                5  |                    d           |                    d          5  |                    d           |                                5  |                    d           d d d            n# 1 swxY w Y   |                    d           d d d            n# 1 swxY w Y   |                    d	           d d d            n# 1 swxY w Y   |                     ddddd	           d S )
NTFrh   rQ   r+   rR   rS   rT   rU   ri   rF   s     r    2test_autocommit_block_nontransactional_ddl_sqlmodezKMigrationTransactionTest.test_autocommit_block_nontransactional_ddl_sqlmodeG  s   ---1%* 
 
 &&(( 
	& 
	&OOH%%%**$*?? * *)))--// . .OOH---. . . . . . . . . . . . . . . )))* * * * * * * * * * * * * * * OOH%%%
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 
	& 	h(H	
 	
 	
 	
 	
rk   c                    | j         j                                        }t          j                    x| j         j        _        }|D ]k}|dk    r| j         j                                         '|dk    r| j         j                                         L| j         j                            |           lt          ||                                           d S )NrV   rW   )
r   r   getvaluer   r   r   
emit_beginemit_commit_execr   )r   stepsto_checkbufsteps        r    rZ   z+MigrationTransactionTest._assert_impl_steps`  s    <-668802='# 	. 	.Dw!,,....!!!--////!''----Hcllnn%%%%%r"   )__name__
__module____qualname____backend__r   r!   r%   r2   r6   r8   r>   r@   rC   rG   rJ   rL   rO   r[   r]   r   requirementsautocommit_isolationrd   rf   rj   rm   rZ    r"   r    r   r      sc       KD     	- 	- 	-- - -- - -- - -- - -- - -- - -- - -- - -- - -  6  : -%- %- .-%-N -- - .--:
 
 
B
 
 
2& & & & &r"   r   )r   	migrationr   testingr   r   r   r   r	   r
   r   r   testing.fixturesr   r   r}   r"   r    <module>r      s    				 ) ) ) ) ) ) $ $ $ $ $ $                                           ( ( ( ( ( (]& ]& ]& ]& ]&x ]& ]& ]& ]& ]&r"   