
    Uj	
                    ^   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<   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_MODEz-synthetic-test-only-household-fingerprint-keyJARVIS_FINANCE_FINGERPRINT_KEY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      I/home/agent/.hermes/worktrees/FinanceManager-sprint23.1/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>.blocked6   s    6777    zurllib.request.urlopenN)r&   r'   r(   r'   r   r$   )setattr)r"   r,   s     r    block_unmocked_external_httpr/   2   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.todayC   s    3tQ###r-   N)r   r4   )__name__
__module____qualname__classmethodr:   r8   r-   r    r4   r3   B   s2        		$ 	$ 	$ 
	$ 	$ 	$r-   r4   r   )jarvis_finance.servicesr1   r   r.   r:   )r"   r1   r4   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@   r8   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-   