
    ,ej	                    J   d dl mZ d dlZd dlmc mZ d dlm	Z	 d dl
Z
d dlZd dlmZ d dlZ ee                                          j        d         Zedz  Z ed          d e
j                     d	 e
j                     z  Zed
z  dz  Z ed                                                                          ZdD ]Ze
j                            e          Zer ee                                                                          Zeek    s	eej        v r ej        e d           ed                                          egej        R vr ej        e d          de
j        d<    e e          e
j        d<    e e          e
j        d<   de
j        d<    e e          ej!        vr$ej!        "                    d  e e                      ej#        dd          d"d            Z$ ej#        d          d#d            Z%ej#        d$d!            Z&dS )%    )annotationsN)date)Path   srcz/tmpzfinancemanager-pytest--datazfinance.sqlite3z~/jarvis_runtime/finance-system)JARVIS_FINANCE_RUNTIME_DIRJARVIS_FINANCE_DB_PATHz0 points at the productive FinanceManager runtimez  must point below /tmp for teststestJARVIS_FINANCE_ENVr
   r   JARVIS_FINANCE_WRITE_MODEsessionT)scopeautousereturnr   c                     ddl m}  ddlm} t          j                            dd            | t                    }	  ||           |                                 n# |                                 w xY wt          S )zEMake every default API dependency use a disposable schema below /tmp.r   )connect)apply_migrationsT)parentsexist_ok)jarvis_finance.storage.databaser   !jarvis_finance.storage.migrationsr   TEST_DBparentmkdirclose)r   r   conns      ]/home/agent/.hermes/worktrees/FinanceManager-sprint9-portfolio-basis-policy/tests/conftest.pyisolated_runtime_databaser    !   s     877777BBBBBBN55577D



Ns   A A5)r   monkeypatchpytest.MonkeyPatchNonec                :    d	d}|                      d|           dS )
z;Unit tests must never depend on live provider availability._argsobject_kwargsr   r#   c                      t          d          )Nexternal_http_blocked_in_tests)OSError)r%   r'   s     r   blockedz-block_unmocked_external_http.<locals>.blocked5   s    6777    zurllib.request.urlopenN)r%   r&   r'   r&   r   r#   )setattr)r!   r+   s     r   block_unmocked_external_httpr.   1   s5    8 8 8 8 0':::::r,   r   c                    ddl m}  G d dt                    }|                     |d|           |                                S )z>Keep budget tests anchored to their synthetic May 2026 ledger.r   )budget_overviewc                  &    e Zd Zedd            ZdS ),budget_reference_date.<locals>.ReferenceDater   ReferenceDatec                     | ddd          S )Ni         )clss    r   todayz2budget_reference_date.<locals>.ReferenceDate.todayB   s    3tQ###r,   N)r   r3   )__name__
__module____qualname__classmethodr9   r7   r,   r   r3   r2   A   s2        		$ 	$ 	$ 
	$ 	$ 	$r,   r3   r   )jarvis_finance.servicesr0   r   r-   r9   )r!   r0   r3   s      r   budget_reference_dater?   ;   sl     877777$ $ $ $ $ $ $ $
 ???   r,   )r   r   )r!   r"   r   r#   )r!   r"   r   r   )'
__future__r   builtins@py_builtins_pytest.assertion.rewrite	assertionrewrite
@pytest_ardatetimer   ossyspathlibr   pytest__file__resolver   ROOTSRCgetuidgetpidTEST_RUNTIMEr   
expanduserPRODUCTIVE_RUNTIMEvariableenvironget
configuredresolved
UsageErrorstrpathinsertfixturer    r.   r?   r7   r,   r   <module>r_      s   " " " " " "                     				 



       tH~~'*
UltF||Ryry{{RRYRY[[RRR

"3
3T;<<GGIIQQSS H S SH))J S4
##..0088::)))-?8CS-S-S#&#x$a$a$abbb4<<!!()FX5E)F)FFF#&#x$Q$Q$QRRR#)
  +.3|+<+<
' ('*s7||
# $*0
& '3s8838HOOAss3xx    i...   /. ; ; ; ; ! ! ! ! ! !r,   