From 61b2a193e79d74783bb1ad4c3a8ccb6ead0f24c0 Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:57:43 +0900 Subject: fix: lint cleanup after medium priority tasks --- .../src/portfolio_manager/main.py | 9 +- services/portfolio-manager/tests/test_portfolio.py | 112 ++++++++++++++------- 2 files changed, 79 insertions(+), 42 deletions(-) (limited to 'services/portfolio-manager') diff --git a/services/portfolio-manager/src/portfolio_manager/main.py b/services/portfolio-manager/src/portfolio_manager/main.py index 87e4c64..a6823ae 100644 --- a/services/portfolio-manager/src/portfolio_manager/main.py +++ b/services/portfolio-manager/src/portfolio_manager/main.py @@ -1,7 +1,6 @@ """Portfolio Manager Service entry point.""" import asyncio -from decimal import Decimal from shared.broker import RedisBroker from shared.db import Database @@ -111,15 +110,11 @@ async def run() -> None: await broker.ack(ORDERS_STREAM, GROUP, msg_id) except Exception as exc: log.error("pending_process_failed", error=str(exc), msg_id=msg_id) - metrics.errors_total.labels( - service="portfolio-manager", error_type="processing" - ).inc() + metrics.errors_total.labels(service="portfolio-manager", error_type="processing").inc() try: while True: - messages = await broker.read_group( - ORDERS_STREAM, GROUP, CONSUMER, count=10, block=1000 - ) + messages = await broker.read_group(ORDERS_STREAM, GROUP, CONSUMER, count=10, block=1000) for msg_id, msg in messages: try: event = Event.from_dict(msg) diff --git a/services/portfolio-manager/tests/test_portfolio.py b/services/portfolio-manager/tests/test_portfolio.py index 5a7ac64..768e071 100644 --- a/services/portfolio-manager/tests/test_portfolio.py +++ b/services/portfolio-manager/tests/test_portfolio.py @@ -63,19 +63,31 @@ def test_realized_pnl_on_sell() -> None: tracker = PortfolioTracker() # Buy at 50000 - tracker.apply_order(Order( - signal_id="s1", symbol="BTCUSDT", side=OrderSide.BUY, - type=OrderType.MARKET, price=Decimal("50000"), - quantity=Decimal("0.1"), status=OrderStatus.FILLED, - )) + tracker.apply_order( + Order( + signal_id="s1", + symbol="BTCUSDT", + side=OrderSide.BUY, + type=OrderType.MARKET, + price=Decimal("50000"), + quantity=Decimal("0.1"), + status=OrderStatus.FILLED, + ) + ) assert tracker.realized_pnl == Decimal("0") # Sell at 55000 — profit of 500 - tracker.apply_order(Order( - signal_id="s2", symbol="BTCUSDT", side=OrderSide.SELL, - type=OrderType.MARKET, price=Decimal("55000"), - quantity=Decimal("0.1"), status=OrderStatus.FILLED, - )) + tracker.apply_order( + Order( + signal_id="s2", + symbol="BTCUSDT", + side=OrderSide.SELL, + type=OrderType.MARKET, + price=Decimal("55000"), + quantity=Decimal("0.1"), + status=OrderStatus.FILLED, + ) + ) assert tracker.realized_pnl == Decimal("500") @@ -83,16 +95,28 @@ def test_realized_pnl_on_loss() -> None: """Selling at a loss should track negative realized PnL.""" tracker = PortfolioTracker() - tracker.apply_order(Order( - signal_id="s1", symbol="BTCUSDT", side=OrderSide.BUY, - type=OrderType.MARKET, price=Decimal("50000"), - quantity=Decimal("0.1"), status=OrderStatus.FILLED, - )) - tracker.apply_order(Order( - signal_id="s2", symbol="BTCUSDT", side=OrderSide.SELL, - type=OrderType.MARKET, price=Decimal("45000"), - quantity=Decimal("0.1"), status=OrderStatus.FILLED, - )) + tracker.apply_order( + Order( + signal_id="s1", + symbol="BTCUSDT", + side=OrderSide.BUY, + type=OrderType.MARKET, + price=Decimal("50000"), + quantity=Decimal("0.1"), + status=OrderStatus.FILLED, + ) + ) + tracker.apply_order( + Order( + signal_id="s2", + symbol="BTCUSDT", + side=OrderSide.SELL, + type=OrderType.MARKET, + price=Decimal("45000"), + quantity=Decimal("0.1"), + status=OrderStatus.FILLED, + ) + ) assert tracker.realized_pnl == Decimal("-500") @@ -101,24 +125,42 @@ def test_realized_pnl_accumulates() -> None: tracker = PortfolioTracker() # Buy 0.2 at 50000 - tracker.apply_order(Order( - signal_id="s1", symbol="BTCUSDT", side=OrderSide.BUY, - type=OrderType.MARKET, price=Decimal("50000"), - quantity=Decimal("0.2"), status=OrderStatus.FILLED, - )) + tracker.apply_order( + Order( + signal_id="s1", + symbol="BTCUSDT", + side=OrderSide.BUY, + type=OrderType.MARKET, + price=Decimal("50000"), + quantity=Decimal("0.2"), + status=OrderStatus.FILLED, + ) + ) # Sell 0.1 at 55000 -> +500 - tracker.apply_order(Order( - signal_id="s2", symbol="BTCUSDT", side=OrderSide.SELL, - type=OrderType.MARKET, price=Decimal("55000"), - quantity=Decimal("0.1"), status=OrderStatus.FILLED, - )) + tracker.apply_order( + Order( + signal_id="s2", + symbol="BTCUSDT", + side=OrderSide.SELL, + type=OrderType.MARKET, + price=Decimal("55000"), + quantity=Decimal("0.1"), + status=OrderStatus.FILLED, + ) + ) # Sell 0.1 at 60000 -> +1000 - tracker.apply_order(Order( - signal_id="s3", symbol="BTCUSDT", side=OrderSide.SELL, - type=OrderType.MARKET, price=Decimal("60000"), - quantity=Decimal("0.1"), status=OrderStatus.FILLED, - )) + tracker.apply_order( + Order( + signal_id="s3", + symbol="BTCUSDT", + side=OrderSide.SELL, + type=OrderType.MARKET, + price=Decimal("60000"), + quantity=Decimal("0.1"), + status=OrderStatus.FILLED, + ) + ) assert tracker.realized_pnl == Decimal("1500") -- cgit v1.2.3