
    ȅ%jM                     J    d dl Z d dlZd dlZd dlmZ d dlZd Zd Zd Zd Z	dS )    N)Pathc                    | dz  }|                     t          j        dddddddd	d
dddt          | dz            dddidgd                     |                    dd           |                    dt          | dz                       ddlm} |                    |          }|j        dk    sJ |j	        dk    sJ |j
        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        d	k    sJ |j        d
k    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        du sJ |j        | dz  k    sJ d S )Nzstrategy_config.json         i  g      ?risk   <      g      @-   Fzruntime-from-config)max_total_tradesdefault_leveragetrade_size_usdwallet_equity_usdcrisk_per_trade_pctposition_sizing_modemax_position_margin_pctmax_position_notional_pctmin_order_notional_usdflash_crash_trigger_pctcooldown_minutesdry_runruntime_dirmin_volume_24hi90  BAD)
parametersfilters	blacklistCTB_DRY_RUNtrueCTB_RUNTIME_DIRzruntime-from-envr   )	BotConfig)r   T)
write_textjsondumpsstrsetenvconfigr"   	from_filer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )tmp_pathmonkeypatchconfig_pathr"   cfgs        tests/test_safety_config.py7test_config_loads_strategy_parameters_and_env_overridesr/   	   s"   33K4: ! ! "%"&$*'))+&('* "x*??@@
 
 %e,W#' '     & }f---(#h9K.K*L*LMMM      


k
*
*C1$$$$1$$$$####!S((((!T))))#v----&",,,,(B....%++++&#----2%%%%&&&&=H$$$$;$?h);;;;;;;;    c                 n   ddl m}m}  || dz            }|                    |          }|                                 |j        | dz  k    sJ |j                                        sJ |j                                        sJ |j	        j
        |j        k    sJ |j        j
        |j        k    sJ d S )Nr   )r"   RuntimePathsruntime)r   )r(   r"   r2   from_configensure_dirsr   tradeanalyse_direxistsreports_dirtrading_logparenttrade_journal)r*   r"   r2   r-   pathss        r.   +test_runtime_paths_are_created_outside_repor=   6   s    ........
)9 4
5
5
5C$$S))E	9 44444!((*****##%%%%%#u'=====%)???????r0   c                     ddl m} g  G fdd          } | |            d          }|                    dd          d	         du sJ |                    dd
ddd          d	         du sJ g k    sJ d S )Nr   TradingExecutorc                   $    e Zd Z fdZ fdZdS )Ltest_dry_run_executor_records_without_calling_exchange.<locals>.FakeExchangec                 8                         d||f           d S )Nset_leverageappendselfargskwargscallss      r.   rD   zYtest_dry_run_executor_records_without_calling_exchange.<locals>.FakeExchange.set_leverageJ   "    LL.$788888r0   c                 8                         d||f           d S )Ncreate_orderrE   rG   s      r.   rN   zYtest_dry_run_executor_records_without_calling_exchange.<locals>.FakeExchange.create_orderM   rL   r0   N__name__
__module____qualname__rD   rN   rK   s   r.   FakeExchangerB   I   sG        	9 	9 	9 	9 	9	9 	9 	9 	9 	9 	9 	9r0   rT   Tr      BTC/USDC:USDCr   marketbuy{Gz?      Y@)	executionr@   rD   rN   )r*   r@   rT   executorrK   s       @r.   6test_dry_run_executor_records_without_calling_exchanger^   D   s    ))))))E9 9 9 9 9 9 9 9 9 9 ||~~t<<<H  O44Y?4GGGG  (E4OOPYZ^bbbbbB;;;;;;r0   c                 Z   ddl m} |                     dd           g  G fdd          } | |            d          }|                    d	d
          ddik    sJ |                    d
dddd          ddik    sJ d         d         dk    sJ d         d         dk    sJ d S )Nr   r?   CTB_ALLOW_LEGACY_EXECUTIONr    c                   $    e Zd Z fdZ fdZdS )>test_live_executor_delegates_to_exchange.<locals>.FakeExchangec                 <                         d||f           ddiS )NrD   statusokrE   rG   s      r.   rD   zKtest_live_executor_delegates_to_exchange.<locals>.FakeExchange.set_leverage^   '    LL.$7888d##r0   c                 <                         d||f           ddiS )NrN   rd   re   rE   rG   s      r.   rN   zKtest_live_executor_delegates_to_exchange.<locals>.FakeExchange.create_orderb   rf   r0   NrO   rS   s   r.   rT   rb   ]   sG        	$ 	$ 	$ 	$ 	$	$ 	$ 	$ 	$ 	$ 	$ 	$r0   rT   FrU   rV   rW   rd   re   rX   rY   rZ   r[   rD      rN   )r\   r@   r'   rD   rN   )r+   r@   rT   r]   rK   s       @r.   (test_live_executor_delegates_to_exchangeri   W   s   ))))))3V<<<E$ $ $ $ $ $ $ $ $ $ ||~~u===H  O4448HHHHH  (E4OOT\^bSccccc8A;.((((8A;.((((((r0   )
	importlibr$   ospathlibr   pytestr/   r=   r^   ri    r0   r.   <module>ro      s         				       *< *< *<Z@ @ @  &) ) ) ) )r0   