
     ncjH                       d dl 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            ZdS )!    )annotations)dateN)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      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monkeypatchpytest.MonkeyPatchr   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.today8   s    3tQ###    N)r   r'   )__name__
__module____qualname__classmethodr-   r+   r.   r   r'   r&   7   s2        		$ 	$ 	$ 
	$ 	$ 	$r.   r'   r   )jarvis_finance.servicesr$   r   setattrr-   )r!   r$   r'   s      r   budget_reference_dater5   1   sl     877777$ $ $ $ $ $ $ $
 ???   r.   )r   r   )r!   r"   r   r   ) 
__future__r   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    r5   r+   r.   r   <module>rO      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.   