feat: consolidate ledger trade writes into portfolio_ledger
- add ledger consolidation migration and remove ledger_trades usage - return portfolio state after v1 ledger trade writes - deprecate legacy buy/sell endpoints with deprecation headers - add BAT-016, DCY-006, and REQ-036~038 documentation - update repository models and tests for unified ledger entries
This commit is contained in:
@@ -151,10 +151,10 @@ def _setup_ledger_mocks(monkeypatch, principal: TokenPrincipal, portfolio: Magic
|
||||
|
||||
|
||||
def test_ledger_trade_403_when_token_has_no_daemon_id(monkeypatch) -> None:
|
||||
from app.domain.models import LedgerTrade
|
||||
from app.domain.models import LedgerEntry
|
||||
principal = _principal(daemon_id=None)
|
||||
portfolio = _portfolio_with_daemon(daemon_id="d-1")
|
||||
trade = MagicMock(spec=LedgerTrade)
|
||||
trade = MagicMock(spec=LedgerEntry)
|
||||
mock_repo, client = _setup_ledger_mocks(monkeypatch, principal, portfolio, trade)
|
||||
|
||||
with patch("app.core.auth.get_portfolio_repository_from_settings", return_value=mock_repo), \
|
||||
@@ -170,10 +170,10 @@ def test_ledger_trade_403_when_token_has_no_daemon_id(monkeypatch) -> None:
|
||||
|
||||
|
||||
def test_ledger_trade_403_when_asset_has_no_daemon_assignment(monkeypatch) -> None:
|
||||
from app.domain.models import LedgerTrade
|
||||
from app.domain.models import LedgerEntry
|
||||
principal = _principal(daemon_id="d-1")
|
||||
portfolio = _portfolio_with_daemon(daemon_id=None)
|
||||
trade = MagicMock(spec=LedgerTrade)
|
||||
trade = MagicMock(spec=LedgerEntry)
|
||||
mock_repo, client = _setup_ledger_mocks(monkeypatch, principal, portfolio, trade)
|
||||
|
||||
with patch("app.core.auth.get_portfolio_repository_from_settings", return_value=mock_repo), \
|
||||
@@ -189,10 +189,10 @@ def test_ledger_trade_403_when_asset_has_no_daemon_assignment(monkeypatch) -> No
|
||||
|
||||
|
||||
def test_ledger_trade_403_when_daemon_mismatch(monkeypatch) -> None:
|
||||
from app.domain.models import LedgerTrade
|
||||
from app.domain.models import LedgerEntry
|
||||
principal = _principal(daemon_id="d-1")
|
||||
portfolio = _portfolio_with_daemon(daemon_id="d-2")
|
||||
trade = MagicMock(spec=LedgerTrade)
|
||||
trade = MagicMock(spec=LedgerEntry)
|
||||
mock_repo, client = _setup_ledger_mocks(monkeypatch, principal, portfolio, trade)
|
||||
|
||||
with patch("app.core.auth.get_portfolio_repository_from_settings", return_value=mock_repo), \
|
||||
@@ -208,7 +208,7 @@ def test_ledger_trade_403_when_daemon_mismatch(monkeypatch) -> None:
|
||||
|
||||
|
||||
def test_ledger_trade_201_when_daemon_matches(monkeypatch) -> None:
|
||||
from app.domain.models import LedgerTrade
|
||||
from app.domain.models import LedgerEntry
|
||||
principal = _principal(daemon_id="d-1")
|
||||
portfolio = _portfolio_with_daemon(daemon_id="d-1")
|
||||
trade = MagicMock()
|
||||
|
||||
Reference in New Issue
Block a user