
    ԂAj                        d dl mZ d dlZd dlmc mZ d dlZd dl	m
Z
 d dlmZmZ d dlmZ ddZd Zd Zd Zd Zd ZdS )    )annotationsN)Path)summarize_tradingview_signalsbuild_tradingview_report_lines)#process_pending_tradingview_signalspathr   rowdictreturnNonec                    | j                             dd           |                     dd          5 }|                    t	          j        |          dz              d d d            d S # 1 swxY w Y   d S )NT)parentsexist_okazutf-8)encoding
)parentmkdiropenwritejsondumps)r   r	   fhs      e/home/agent/projects/CryptoTradingBot/Crypto_Agent/tests/test_hyperliquid_daily_report_tradingview.py_appendr   
   s    KdT222	3	)	) )R
C4'((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   +A,,A03A0c                   | dz  dz  }t          |ddddddd	d
           t          |ddddddd	d
           t          |           }|d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         }d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         }ddd}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         }ddd}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d S )Nsignalssignal_journal.jsonltradingviewgaussian_channel_v1BTCentrylongpaper_signalFsourcestrategy_idcoinactionsideexecution_modelive_order_allowedsqueeze_breakout_1hETHexitshortreceived   ==z%(py1)s == %(py4)spy1py4assert %(py6)spy6rejectedr   live_order_allowed_countby_strategy   )r    r-   by_coin)r!   r.   )r   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanation)tmp_pathjournalsummary@py_assert0@py_assert3@py_assert2@py_format5@py_format7s           r   <test_summarize_tradingview_signals_counts_paper_only_runtimerM      s   "%;;GG,(#     G,(#     ,H55G:#!#!##########!#########!###########################:#!#!##########!#########!###########################>"'a'"a''''''''''"a'''''"''''a'''''''''''''''''''''''''''-.3!3.!3333333333.!33333.3333!333333333333333333333333333=!YQWX%Y%YY!%YYYYYYYYYYY!%YYYYYY!YYYY%YYYYYYYYYYYYYYYYYYYYYYYYYYYY951!5!55!55555555555!5555555555!555555555555555555555555555555    c                   t          |           }d}d}|j        } ||          }||v }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          dt          j                    v st          j        |          rt          j        |          ndt          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}x}x}}d	}d}|j        } ||          }||v }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          dt          j                    v st          j        |          rt          j        |          ndt          j        |          dz  }dd|iz  }t          t          j	        |                    d x}x}x}x}}d S )
Nz TradingView Signals: empfangen=0r   inzJ%(py1)s in %(py9)s
{%(py9)s = %(py6)s
{%(py6)s = %(py4)s.join
}(%(py7)s)
}linesr7   r8   r:   py7py9assert %(py11)spy11z#Live-Freigabe aus TradingView: nein)
r   joinr@   rA   rB   @py_builtinslocals_should_repr_global_namerC   rD   )	rE   rS   rH   rI   @py_assert5@py_assert8rJ   @py_format10@py_format12s	            r   ;test_tradingview_report_lines_state_no_live_when_no_signalsra   /   sS   *844E-AAA51A1AA-1AAAAAAAAAAA-1AAAAAA-AAAAAAAAAAAAAAAAAAA5AAAAA5AAAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0DDDDIDIIe4D4DD04DDDDDDDDDDD04DDDDDD0DDDDDDDDDIDDDDDDDDDDDeDDDDDeDDDDDD4DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDrN   c                   | dz  dz  }t          |ddddddd	d
           t          |           }d                    |          }d}||v }|st          j        d|fd||f          t          j        |          dt          j                    v st          j        |          rt          j        |          nddz  }dd|iz  }t          t          j
        |                    d x}}d}||v }|st          j        d|fd||f          t          j        |          dt          j                    v st          j        |          rt          j        |          nddz  }dd|iz  }t          t          j
        |                    d x}}d S )Nr   r   r   bad_live_flagr!   r"   r#   r$   Tr%   r   zempfangen=1rP   z%(py1)s in %(py3)sjoinedr7   py3assert %(py5)spy5z(Live-Freigabe aus TradingView: BLOCKIERT)r   r   rY   r@   rA   rB   rZ   r[   r\   rC   rD   )rE   rF   rS   re   rH   rJ   @py_format4@py_format6s           r   ;test_tradingview_report_lines_warn_if_any_live_flag_appearsrl   6   s   "%;;GG&("     +844EYYuF"=F""""""""""=F"""""="""""""""""F"""""F"""""""""""""""""""""""""""5?5??????????5?????5?????????????????????????????????????????????rN   c                   | dz  dz  }t          |dddd           t          |dddd           t          |dddd           t          |           }t          |           }|d         }d	}||k    }|slt          j        d
|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}|d         }ddd}||k    }|slt          j        d
|fd||f          t          j        |          t          j        |          dz  }dd|iz  }t          t          j        |                    d x}x}}d}d}|j        }	 |	|          }
||
v }|st          j        d|fd||
f          t          j        |          t          j        |          t          j        |	          dt          j
                    v st          j        |          rt          j        |          ndt          j        |
          dz  }dd|iz  }t          t          j        |                    d x}x}x}x}	}
d}d}|j        }	 |	|          }
||
v }|st          j        d|fd||
f          t          j        |          t          j        |          t          j        |	          dt          j
                    v st          j        |          rt          j        |          ndt          j        |
          dz  }dd|iz  }t          t          j        |                    d x}x}x}x}	}
d S )Nr   zrejected_signal_journal.jsonlr   strategy_not_allowedF)r&   reasonr,   duplicate_signalr;      r3   r5   r6   r9   r:   reject_reasonsr2   r>   )rp   rn   zabgelehnt=3r   rP   rR   rS   rT   rW   rX   z;Rejects: {'duplicate_signal': 2, 'strategy_not_allowed': 1})r   r   r   r@   rA   rB   rC   rD   rY   rZ   r[   r\   )rE   reject_journalrG   rS   rH   rI   rJ   rK   rL   r]   r^   r_   r`   s                r   +test_summarize_tradingview_rejected_reasonsrt   I   s#   	),KKNN}@VnsttuuuN}@RjoppqqqN}@Rjoppqqq+H55G*844E:#!#!##########!#########!############################$ZQXY(Z(ZZ$(ZZZZZZZZZZZ$(ZZZZZZ$ZZZZ(ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ,D,DI,IIe,,,=,,,,,,,,,,,=,,,,,,=,,,,D,,,,I,,,,,,,,,,,e,,,,,e,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,H\D\DI\IIV[L\L\\HL\\\\\\\\\\\HL\\\\\\H\\\\D\\\\I\\\\\\\\\\\V[\\\\\V[\\\\\\L\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\rN   c                   | dz  dz  }t          |ddddddd	d
ddddd           t          |            d                    t          |                     }d}||v }|st	          j        d|fd||f          t	          j        |          dt          j                    v st	          j	        |          rt	          j        |          nddz  }dd|iz  }t          t	          j        |                    d x}}d}||v }|st	          j        d|fd||f          t	          j        |          dt          j                    v st	          j	        |          rt	          j        |          nddz  }dd|iz  }t          t	          j        |                    d x}}d}||v }|st	          j        d|fd||f          t	          j        |          dt          j                    v st	          j	        |          rt	          j        |          nddz  }dd|iz  }t          t	          j        |                    d x}}d}||v }|st	          j        d|fd||f          t	          j        |          dt          j                    v st	          j	        |          rt	          j        |          nddz  }dd|iz  }t          t	          j        |                    d x}}d}||v }|st	          j        d|fd||f          t	          j        |          dt          j                    v st	          j	        |          rt	          j        |          nddz  }dd|iz  }t          t	          j        |                    d x}}d S )Nr   r   r   ztv-report-1r    r!   r#   r"   1h60000z2026-06-28T18:00:00Zr$   F)r&   	signal_idr'   r(   r*   r)   	timeframeprice	timestampr+   r,   mainnet_signed_action)runtime_dirr   z#TradingView Paper Bridge: entries=1rP   rd   re   rf   rh   ri   z-Bridge Strategien: {'gaussian_channel_v1': 1}zPromotion Gates:zOperational Gates:z	live=nein)r   r   rY   r   r@   rA   rB   rZ   r[   r\   rC   rD   )rE   rF   re   rH   rJ   rj   rk   s          r   :test_tradingview_report_lines_include_paper_bridge_summaryr~   X   s]   "%;;GG",+(#!&     (H====YY5h??@@F0:0F::::::::::0F:::::0:::::::::::F:::::F::::::::::::::::::::::::::::D:fDDDDDDDDDD:fDDDDD:DDDDDDDDDDDfDDDDDfDDDDDDDDDDDDDDDDDDDDDDDDDDD''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')6))))))))))6))))))))))))))))6)))))6))))))))))))))))))))))))))) ;&          ;&     ;           &     &                             rN   )r   r   r	   r
   r   r   )
__future__r   builtinsrZ   _pytest.assertion.rewrite	assertionrewriter@   r   pathlibr   "src.tools.hyperliquid_daily_reportr   r   "src.tools.tradingview_paper_bridger   r   rM   ra   rl   rt   r~    rN   r   <module>r      s    " " " " " "                     l l l l l l l l R R R R R R) ) ) )6 6 6>E E E@ @ @&] ] ]! ! ! ! !rN   