
    `%Bj                     N    d dl mZ d dlmZ d Zd Zd Zd Zd Zd Z	d	 Z
d
 ZdS )    )Path)	AlertPlanc                     ddl m} |                     dt          |dz                       |                     dd           |                                }|j        du sJ |j        J |j        J d S )Nr   TelegramAlertConfigCTB_TELEGRAM_ENV_FILEzmissing.envCTB_TELEGRAM_ALERTSFraising)	telegram_alertsr   setenvstrdelenvfrom_envenabledchat_id	thread_id)monkeypatchtmp_pathr   cfgs       tests/test_telegram_paper.py&test_telegram_config_defaults_disabledr      s    333333.H}4L0M0MNNN,e<<<

&
&
(
(C;%;=         c                 N   ddl m} |                     dd           |                     dd           |                     dd           |                     d	d
           |                                }|j        du sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ d S )Nr   r   r	   trueCTB_TELEGRAM_BOT_TOKENtokenCTB_TELEGRAM_CHAT_ID-100123CTB_TELEGRAM_THREAD_ID6579T  )r   r   r   r   r   	bot_tokenr   r   )r   r   r   s      r   $test_telegram_config_reads_topic_envr$      s    333333,f555/999-y999/888

&
&
(
(C;$=G####;)####=D      r   c                    ddl m} |dz  }|                    dd           |                     dt	          |                     |                     dd	
           |                     dd	
           |                     dd	
           |                     dd	
           |                                }|j        du sJ |j        dk    sJ |j	        dk    sJ |j
        dk    sJ d S )Nr   r   zcrypto_agent_telegram.envztCTB_TELEGRAM_ALERTS=true
CTB_TELEGRAM_BOT_TOKEN=file-token
CTB_TELEGRAM_CHAT_ID=-100456
CTB_TELEGRAM_THREAD_ID=6579
zutf-8)encodingr   r   Fr
   r   r    r	   Tz
file-tokenz-100456r"   )r   r   
write_textr   r   r   r   r   r#   r   r   )r   r   r   env_filer   s        r   -test_telegram_config_can_load_secret_env_filer)   "   s2   33333355H  S  ^e  f  f  f.H>>>/???-u===/???,e<<<

&
&
(
(C;$=L((((;)####=D      r   c                      ddl m} m}  |t          d           | d                    }|j        du sJ |j        dk    sJ d S )Nr   r   send_telegram_alerthellotextF)r   disabledr   r   r,   r   sentreason)r   r,   results      r   5test_telegram_disabled_returns_skipped_without_senderr5   5   ss    HHHHHHHH  !8!8!8:M:MV[:\:\:\]]F;%=J&&&&&&r   c                      ddl m} m}  | dddd           } |t          d          |d	 
          }|j        du sJ |j        dk    sJ d S )Nr   r+   Tr   r   r   r#   r   r   r-   r.   c                  
    ddiS )NokT )_args_kwargss     r   <lambda>zAtest_telegram_send_requires_crypto_topic_thread.<locals>.<lambda>C   s    aegk`l r   senderFmissing_thread_idr1   )r   r,   r   r4   s       r   /test_telegram_send_requires_crypto_topic_threadrA   >   s    HHHHHHHH

dgy\`
a
a
aC  !8!8!8#FlFlmmmF;%=///////r   c                  v   ddl m} m} g fd} | dddd          } |t          d	
          ||          }|j        du sJ |j        dk    sJ d         d         d         dk    sJ d         d         d         dk    sJ dt          d         d                   vsJ dd         d         v sJ d S )Nr   r+   c                 B                         | ||f           dddidS )NT
message_id{   )r9   r4   )append)urlpayloadtimeoutcallss      r   fake_senderzLtest_telegram_sender_payload_uses_thread_and_no_secrets.<locals>.fake_senderN   s/    c7G,---|S&9:::r   Tzsecret-tokenr   r"   r7   zCrypto Bot ENTRY BTCr.   r>   r9      r   message_thread_id)r   r   r,   r   r2   r3   r   )r   r,   rK   r   r4   rJ   s        @r   7test_telegram_sender_payload_uses_thread_and_no_secretsrN   I   s   HHHHHHHHE; ; ; ; ; 
dnicg
h
h
hC  0F!G!G!GU`aaaF;$=D    8A;y!Y....8A;*+t3333U1Xa[!1!11111U1Xa[((((((r   c           	      x   ddl m} | dz  } ||          }|                    dd           |                    ddddd	          }|                    ddd
ddddi           |d         dk    sJ |j        d         d         dk    sJ t          |j                  dk    sJ |                                sJ d S )Nr   PaperExchangepaper_state.json   zBTC/USDC:USDCmarketbuyg      ?g      Y@sellg     [@
reduceOnlyT)paramsstatusr9   BTC	contracts   )paper_tradingrQ   set_leveragecreate_order	positionslenordersexists)r   rQ   pathexchanger4   s        r   0test_paper_exchange_records_orders_and_positionsrf   ]   s    ++++++((D}T""H!_---""?HeS%PPF/8VS%Q]_cPdeee(t####e$[1Q6666x1$$$$;;===r   c                     ddl m}  || dz            }|                    ddddd           |                                }|dddd	d
dgk    sJ d S )Nr   rP   rR   zETH/USDC:USDCrT   rU   g       @g      I@rL   long)symbolr[   
entryPriceleverageside)r]   rQ   r_   fetch_positions)r   rQ   re   r`   s       r   6test_paper_exchange_fetch_positions_matches_ccxt_shapern   m   s    ++++++}X(::;;H/8UCFFF((**I!        r   N)pathlibr   alertingr   r   r$   r)   r5   rA   rN   rf   rn   r:   r   r   <module>rq      s               	! 	! 	!! ! ! ! ! !&' ' '0 0 0) ) )(       r   