
    %jD                     Z    d dl Zd dlmc mZ d dlZd dlmZ  G d d          Z	d Z
d ZdS )    N)TradingExecutorc                        e Zd Zd Zd Zd ZdS )FakeExchangec                     g | _         d S )N)calls)selfs    W/home/agent/projects/CryptoTradingBot/Crypto_Agent/tests/test_legacy_execution_guard.py__init__zFakeExchange.__init__   s    


    c                 B    | j                             ||f           ddiS )Nstatus	submittedr   appendr   argskwargss      r	   create_orderzFakeExchange.create_order
   s'    
4.)))+&&r   c                 B    | j                             ||f           ddiS )Nr   leverager   r   s      r	   set_leveragezFakeExchange.set_leverage   s'    
4.)))*%%r   N)__name__
__module____qualname__r
   r   r    r   r	   r   r      sA          ' ' '& & & & &r   r   c                    |                      dd           t                      }t          |d          }t          j        t
          d          5  |                    ddd	d
           d d d            n# 1 swxY w Y   |j        }g }||k    }|st          j	        d|fd||f          dt          j                    v st          j        |          rt          j        |          ndt          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )NCTB_ALLOW_LEGACY_EXECUTIONFraisingdry_runzLegacy TradingExecutor disabled)matchBTC/USDC:USDCmarketbuy皙?)==)z-%(py2)s
{%(py2)s = %(py0)s.calls
} == %(py5)sex)py0py2py5zassert %(py7)spy7)delenvr   r   pytestraisesPermissionErrorr   r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)monkeypatchr(   executor@py_assert1@py_assert4@py_assert3@py_format6@py_format8s           r	   =test_legacy_trading_executor_blocks_non_dry_run_without_guardr@      s   3UCCC	Br5111H	.O	P	P	P E EoxDDDE E E E E E E E E E E E E E E 8r8r>8r228rs   A77A;>A;c                    |                      dd           t          t                      d          }|                    dddd	          }|d
         }d}||u }|slt	          j        d|fd||f          t	          j        |          t	          j        |          dz  }dd|iz  }t          t	          j        |                    d x}x}}d S )Nr   Fr   Tr    r#   r$   r%   r&   r!   )is)z%(py1)s is %(py4)s)py1py4zassert %(py6)spy6)	r-   r   r   r   r1   r2   r6   r7   r8   )r9   r:   result@py_assert0r=   @py_assert2@py_format5@py_format7s           r	   2test_legacy_trading_executor_dry_run_still_allowedrK      s    3UCCC|~~t<<<H""?HeSIIF)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$r   )builtinsr3   _pytest.assertion.rewrite	assertionrewriter1   r.   	executionr   r   r@   rK   r   r   r	   <module>rQ      s                  % % % % % %
& 
& 
& 
& 
& 
& 
& 
&  % % % % %r   