
    Lrdj                    v    d dl mZ d dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
 d dlmZ d dlmZ dd
ZddZddZdS )    )annotations)DecimalN)record_audit_event)convert_to_chfget_fx_rate_to_chfset_manual_fx_override)connect_memory)apply_migrationsreturnNonec                     t          d dd          t          d          k    sJ t          t          d          ddd           t          d          k    sJ d S )NCHF
2026-01-011z12.34)r   r   r        tests/unit/test_fx_logic.pytest_chf_to_chf_rate_is_oner      s[    dE<88GCLLHHHH''**E<FF'RYJZJZZZZZZZr   c                 j   t                      } t          |            t          j        t          d          5  t          | dd           d d d            n# 1 swxY w Y   |                     d                                          }|d         dk    sJ |d         d	k    sJ |d
         dk    sJ d S )NzMissing FX ratematchUSDr   z.SELECT priority, category, rule_id FROM alertsprioritykritischcategoryfxrule_id
missing_fx)r	   r
   pytestraises
ValueErrorr   executefetchone)connrows     r   Ftest_foreign_currency_requires_historical_rate_and_alerts_when_missingr&      s    DT	z):	;	;	; 6 645556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ,,G
H
H
Q
Q
S
SCz?j((((z?d""""y>\))))))s   AAAc            	        t                      } t          |            t          j        t          d          5  t          | ddt          d          d           d d d            n# 1 swxY w Y   t          | ddt          d          d          }|sJ t          | dd          t          d          k    sJ |                     d	|f          	                                }|d
         dk    sJ |d         dk    sJ d|d         v sJ d S )Nnoter   r   r   z0.90 )r(   zSynthetic test overridezJSELECT action, entity_type, user_text_note FROM audit_log WHERE audit_id=?actionmanual_fx_overrideentity_typefx_rate	Syntheticuser_text_note)
r	   r
   r   r    r!   r   r   r   r"   r#   )r$   audit_idaudits      r   /test_manual_fx_override_requires_note_and_auditr2      sp   DT	z	0	0	0 T TtUL'&//PRSSSST T T T T T T T T T T T T T T &dE<WpqqqHOO8dE<88GFOOKKKKLLehpgrss||~~E?222229,,,,% 01111111s   "A''A+.A+)r   r   )
__future__r   decimalr   r   jarvis_finance.audit.logr   jarvis_finance.fx.conversionr   r   r   jarvis_finance.storage.databaser	   !jarvis_finance.storage.migrationsr
   r   r&   r2   r   r   r   <module>r9      s    " " " " " "        7 7 7 7 7 7 c c c c c c c c c c : : : : : : > > > > > >[ [ [ [

* 
* 
* 
*2 2 2 2 2 2r   