
    Aj	                    P    d dl mZ d dlZd dlmZ d dlmZmZ ddZd Z	d Z
d ZdS )    )annotationsN)Path)load_operational_gatesformat_operational_gate_reportpathr   payloaddictreturnNonec                    | j                             dd           |                     t          j        |          d           d S )NT)parentsexist_okzutf-8)encoding)parentmkdir
write_textjsondumps)r   r   s     +tests/test_tradingview_operational_gates.py_writer   	   sC    KdT222OODJw'''O:::::    c           	        t          | dz  dz  ddddddi           t          | dz  dz  d	d	d	d
           t          | dz  dz  ddg dd           t          |           }|d         d	d	d	d	d	dk    sJ |d         g k    sJ d S )Nreports!hl_reconcile_watchdog_latest.jsonwatchdogFr   okcriticalblock_new_entriesstops_missing_countstatuspreflight_evidence_latest.jsonTtelegram_alerts_tested position_without_stop_impossibletestnet_fill_stopconfig tiny_autonomous_live_limits.json      )daily_loss_exceededweekly_loss_exceededkill_switch_activeposition_without_stop)max_daily_loss_usdcmax_weekly_loss_usdcblock_new_entries_ifgates)reconcile_cleanalerts_provenloss_gates_activekill_switch_readystop_handling_readyblockersr   r   tmp_pathr2   s     r   :test_load_operational_gates_all_green_from_runtime_reportsr<      s>   
8i"EE
af  ~C  \]  im  Un  Un  Ho  p  p  p
8i"BB_c  JN  ei  Ej  Ej  k  k  k
8h!CC]^xy  Tr  Tr  Tr  Fs  Fs  t  t  t"8,,E>!!#      """"""r   c           	     :   t          | dz  dz  ddddddi           t          | dz  dz  d	d	d	d
           t          | dz  dz  dg i           t          |           }|d         d         d	u sJ |d         d         d	u sJ d|d         v sJ d|d         v sJ d S )Nr   r   r   T   r   r   r"   Fr#   r'   r(   r1   r2   r3   r4   reconcile_clean_missingr8   alerts_proven_missingr9   r:   s     r   Etest_load_operational_gates_blocks_dirty_reconcile_and_missing_alertsrA      s*   
8i"EE
ae  }A  Z[  gq  Ur  Ur  Hs  t  t  t
8i"BB_d  KP  gl  Em  Em  n  n  n
8h!CCF\^`Eabbb"8,,E>+,5555>/*e3333$j(99999"eJ&7777777r   c                r    dddddgd}t          |          }|                    d          sJ d|v sJ d S )NF)r3   r4   r?   r@   )r2   r8   zOperational Gates:)r   
startswith)r;   r2   lines      r   %test_operational_gate_report_is_shortrE   ,   si    */%HHWp  sJ  WK  L  LE)%00D??/00000$,,,,,,r   )r   r   r   r	   r
   r   )
__future__r   r   pathlibr   'src.tools.tradingview_operational_gatesr   r   r   r<   rA   rE    r   r   <module>rJ      s    " " " " " "        j j j j j j j j; ; ; ;
# # #"
8 
8 
8- - - - -r   