From bf4afbc0a3cc4e847ef01840365fd6a6ae9c142f Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Thu, 2 Apr 2026 15:54:55 +0900 Subject: style: auto-fix lint violations from enhanced ruff rules --- tests/edge_cases/test_empty_data.py | 5 ++-- tests/edge_cases/test_extreme_values.py | 13 +++++----- tests/edge_cases/test_strategy_reset.py | 29 ++++++++++++----------- tests/edge_cases/test_zero_volume.py | 11 +++++---- tests/integration/test_backtest_end_to_end.py | 7 +++--- tests/integration/test_order_execution_flow.py | 5 ++-- tests/integration/test_portfolio_tracking_flow.py | 3 ++- tests/integration/test_strategy_signal_flow.py | 11 +++++---- 8 files changed, 46 insertions(+), 38 deletions(-) (limited to 'tests') diff --git a/tests/edge_cases/test_empty_data.py b/tests/edge_cases/test_empty_data.py index bfefc95..876a640 100644 --- a/tests/edge_cases/test_empty_data.py +++ b/tests/edge_cases/test_empty_data.py @@ -12,13 +12,14 @@ sys.path.insert( 0, str(Path(__file__).resolve().parents[2] / "services" / "portfolio-manager" / "src") ) -from shared.models import Signal, OrderSide from backtester.engine import BacktestEngine from backtester.metrics import compute_detailed_metrics -from portfolio_manager.portfolio import PortfolioTracker from order_executor.risk_manager import RiskManager +from portfolio_manager.portfolio import PortfolioTracker from strategies.rsi_strategy import RsiStrategy +from shared.models import OrderSide, Signal + class TestBacktestEngineEmptyCandles: """BacktestEngine.run([]) should return valid result with 0 trades.""" diff --git a/tests/edge_cases/test_extreme_values.py b/tests/edge_cases/test_extreme_values.py index b375d5e..8ec3b77 100644 --- a/tests/edge_cases/test_extreme_values.py +++ b/tests/edge_cases/test_extreme_values.py @@ -1,7 +1,7 @@ """Tests for extreme value edge cases.""" import sys -from datetime import datetime, timezone +from datetime import UTC, datetime from decimal import Decimal from pathlib import Path @@ -9,19 +9,20 @@ sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "strat sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "backtester" / "src")) sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "order-executor" / "src")) -from shared.models import Candle, Signal, OrderSide -from strategies.rsi_strategy import RsiStrategy -from strategies.vwap_strategy import VwapStrategy -from strategies.bollinger_strategy import BollingerStrategy from backtester.engine import BacktestEngine from backtester.simulator import OrderSimulator from order_executor.risk_manager import RiskManager +from strategies.bollinger_strategy import BollingerStrategy +from strategies.rsi_strategy import RsiStrategy +from strategies.vwap_strategy import VwapStrategy + +from shared.models import Candle, OrderSide, Signal def _candle(close: str, volume: str = "1000", idx: int = 0) -> Candle: from datetime import timedelta - base = datetime(2025, 1, 1, tzinfo=timezone.utc) + base = datetime(2025, 1, 1, tzinfo=UTC) return Candle( symbol="AAPL", timeframe="1h", diff --git a/tests/edge_cases/test_strategy_reset.py b/tests/edge_cases/test_strategy_reset.py index 6e9b956..13ed4da 100644 --- a/tests/edge_cases/test_strategy_reset.py +++ b/tests/edge_cases/test_strategy_reset.py @@ -1,21 +1,22 @@ """Tests that strategy reset() properly clears internal state.""" import sys -from datetime import datetime, timezone +from datetime import UTC, datetime from decimal import Decimal from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "strategy-engine")) sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "backtester" / "src")) -from shared.models import Candle -from strategies.rsi_strategy import RsiStrategy -from strategies.grid_strategy import GridStrategy -from strategies.macd_strategy import MacdStrategy from strategies.bollinger_strategy import BollingerStrategy from strategies.ema_crossover_strategy import EmaCrossoverStrategy -from strategies.vwap_strategy import VwapStrategy +from strategies.grid_strategy import GridStrategy +from strategies.macd_strategy import MacdStrategy +from strategies.rsi_strategy import RsiStrategy from strategies.volume_profile_strategy import VolumeProfileStrategy +from strategies.vwap_strategy import VwapStrategy + +from shared.models import Candle def _make_candles(count: int, base_price: float = 100.0) -> list[Candle]: @@ -28,7 +29,7 @@ def _make_candles(count: int, base_price: float = 100.0) -> list[Candle]: Candle( symbol="AAPL", timeframe="1h", - open_time=datetime(2025, 1, 1, i % 24, tzinfo=timezone.utc), + open_time=datetime(2025, 1, 1, i % 24, tzinfo=UTC), open=Decimal(str(price)), high=Decimal(str(price + 1)), low=Decimal(str(price - 1)), @@ -57,7 +58,7 @@ class TestRsiReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price @@ -71,7 +72,7 @@ class TestGridReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price @@ -84,7 +85,7 @@ class TestMacdReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price @@ -97,7 +98,7 @@ class TestBollingerReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price @@ -110,7 +111,7 @@ class TestEmaCrossoverReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price @@ -123,7 +124,7 @@ class TestVwapReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price @@ -136,6 +137,6 @@ class TestVolumeProfileReset: strategy.reset() signals2 = _collect_signals(strategy, candles) assert len(signals1) == len(signals2) - for s1, s2 in zip(signals1, signals2): + for s1, s2 in zip(signals1, signals2, strict=True): assert s1.side == s2.side assert s1.price == s2.price diff --git a/tests/edge_cases/test_zero_volume.py b/tests/edge_cases/test_zero_volume.py index ba2c133..df247cc 100644 --- a/tests/edge_cases/test_zero_volume.py +++ b/tests/edge_cases/test_zero_volume.py @@ -1,21 +1,22 @@ """Tests for strategies handling zero-volume candles gracefully.""" import sys -from datetime import datetime, timezone +from datetime import UTC, datetime from decimal import Decimal from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "strategy-engine")) sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "backtester" / "src")) -from shared.models import Candle -from strategies.vwap_strategy import VwapStrategy -from strategies.volume_profile_strategy import VolumeProfileStrategy from strategies.rsi_strategy import RsiStrategy +from strategies.volume_profile_strategy import VolumeProfileStrategy +from strategies.vwap_strategy import VwapStrategy + +from shared.models import Candle def _candle(close: str, volume: str = "0", idx: int = 0) -> Candle: - base = datetime(2025, 1, 1, tzinfo=timezone.utc) + base = datetime(2025, 1, 1, tzinfo=UTC) from datetime import timedelta return Candle( diff --git a/tests/integration/test_backtest_end_to_end.py b/tests/integration/test_backtest_end_to_end.py index 4cc0b12..fbc0a24 100644 --- a/tests/integration/test_backtest_end_to_end.py +++ b/tests/integration/test_backtest_end_to_end.py @@ -9,19 +9,20 @@ sys.path.insert( sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "strategy-engine")) sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "backtester" / "src")) +from datetime import UTC, datetime, timedelta from decimal import Decimal -from datetime import datetime, timedelta, timezone -from shared.models import Candle from backtester.engine import BacktestEngine +from shared.models import Candle + def _generate_candles(prices: list[float], symbol="AAPL") -> list[Candle]: return [ Candle( symbol=symbol, timeframe="1h", - open_time=datetime(2025, 1, 1, tzinfo=timezone.utc) + timedelta(hours=i), + open_time=datetime(2025, 1, 1, tzinfo=UTC) + timedelta(hours=i), open=Decimal(str(p)), high=Decimal(str(p + 100)), low=Decimal(str(p - 100)), diff --git a/tests/integration/test_order_execution_flow.py b/tests/integration/test_order_execution_flow.py index dcbc498..2beb388 100644 --- a/tests/integration/test_order_execution_flow.py +++ b/tests/integration/test_order_execution_flow.py @@ -5,14 +5,15 @@ from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "order-executor" / "src")) -import pytest from decimal import Decimal from unittest.mock import AsyncMock -from shared.models import Signal, OrderSide, OrderStatus +import pytest from order_executor.executor import OrderExecutor from order_executor.risk_manager import RiskManager +from shared.models import OrderSide, OrderStatus, Signal + @pytest.mark.asyncio async def test_signal_to_order_flow(): diff --git a/tests/integration/test_portfolio_tracking_flow.py b/tests/integration/test_portfolio_tracking_flow.py index b20275a..d91a265 100644 --- a/tests/integration/test_portfolio_tracking_flow.py +++ b/tests/integration/test_portfolio_tracking_flow.py @@ -9,9 +9,10 @@ sys.path.insert( from decimal import Decimal -from shared.models import Order, OrderSide, OrderType, OrderStatus from portfolio_manager.portfolio import PortfolioTracker +from shared.models import Order, OrderSide, OrderStatus, OrderType + def test_portfolio_tracks_buy_sell_cycle(): """Buy then sell should update position and reset on full sell.""" diff --git a/tests/integration/test_strategy_signal_flow.py b/tests/integration/test_strategy_signal_flow.py index 6b048fb..3f7ec35 100644 --- a/tests/integration/test_strategy_signal_flow.py +++ b/tests/integration/test_strategy_signal_flow.py @@ -8,15 +8,16 @@ sys.path.insert( ) sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "services" / "strategy-engine")) -import pytest +from datetime import UTC, datetime from decimal import Decimal -from datetime import datetime, timezone from unittest.mock import AsyncMock -from shared.models import Candle -from shared.events import CandleEvent +import pytest from strategy_engine.engine import StrategyEngine +from shared.events import CandleEvent +from shared.models import Candle + @pytest.fixture def candles(): @@ -28,7 +29,7 @@ def candles(): Candle( symbol="AAPL", timeframe="1m", - open_time=datetime(2025, 1, 1, i, 0, tzinfo=timezone.utc), + open_time=datetime(2025, 1, 1, i, 0, tzinfo=UTC), open=price, high=price + 1, low=price - 1, -- cgit v1.2.3