Add configurable data providers and localize frontend UI
This commit is contained in:
@@ -157,6 +157,15 @@ class TestPollingPriceManager:
|
||||
|
||||
assert manager.api_key == "test_key"
|
||||
assert manager.poll_interval == 30
|
||||
assert manager.provider == "finnhub"
|
||||
assert manager.running is False
|
||||
|
||||
def test_init_yfinance(self):
|
||||
manager = PollingPriceManager(provider="yfinance", poll_interval=15)
|
||||
|
||||
assert manager.api_key is None
|
||||
assert manager.poll_interval == 15
|
||||
assert manager.provider == "yfinance"
|
||||
assert manager.running is False
|
||||
|
||||
def test_subscribe(self):
|
||||
@@ -182,7 +191,7 @@ class TestPollingPriceManager:
|
||||
assert callback in manager.price_callbacks
|
||||
|
||||
@patch.object(PollingPriceManager, "_fetch_prices")
|
||||
def test_start_stop(self):
|
||||
def test_start_stop(self, _mock_fetch_prices):
|
||||
manager = PollingPriceManager(api_key="test_key", poll_interval=1)
|
||||
manager.subscribe(["AAPL"])
|
||||
|
||||
@@ -246,6 +255,20 @@ class TestMarketService:
|
||||
assert service.mock_mode is False
|
||||
assert service.api_key == "test_key"
|
||||
|
||||
@patch("backend.services.market.get_data_source", return_value="yfinance")
|
||||
@patch.object(PollingPriceManager, "start")
|
||||
def test_start_real_mode_with_yfinance(self, _mock_start, _mock_source):
|
||||
service = MarketService(
|
||||
tickers=["AAPL"],
|
||||
poll_interval=10,
|
||||
mock_mode=False,
|
||||
)
|
||||
|
||||
service._start_real_mode()
|
||||
|
||||
assert isinstance(service._price_manager, PollingPriceManager)
|
||||
assert service._price_manager.provider == "yfinance"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_start_mock_mode(self):
|
||||
service = MarketService(
|
||||
@@ -264,8 +287,9 @@ class TestMarketService:
|
||||
|
||||
service.stop()
|
||||
|
||||
@patch("backend.services.market.get_data_source", return_value="finnhub")
|
||||
@pytest.mark.asyncio
|
||||
async def test_start_real_mode_without_api_key(self):
|
||||
async def test_start_real_mode_without_api_key(self, _mock_source):
|
||||
service = MarketService(
|
||||
tickers=["AAPL"],
|
||||
mock_mode=False,
|
||||
|
||||
Reference in New Issue
Block a user