Add configurable data providers and localize frontend UI
This commit is contained in:
55
backend/tests/test_data_config.py
Normal file
55
backend/tests/test_data_config.py
Normal file
@@ -0,0 +1,55 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Tests for data source config ordering."""
|
||||
|
||||
from backend.config.data_config import get_config, reset_config
|
||||
|
||||
|
||||
def test_data_config_prefers_env_source(monkeypatch):
|
||||
monkeypatch.setenv("FIN_DATA_SOURCE", "financial_datasets")
|
||||
monkeypatch.setenv("FINNHUB_API_KEY", "fh")
|
||||
monkeypatch.setenv("FINANCIAL_DATASETS_API_KEY", "fd")
|
||||
reset_config()
|
||||
|
||||
config = get_config()
|
||||
|
||||
assert config.sources[0] == "financial_datasets"
|
||||
assert "local_csv" in config.sources
|
||||
|
||||
|
||||
def test_enabled_data_sources_filters_available_sources(monkeypatch):
|
||||
monkeypatch.setenv("FINNHUB_API_KEY", "fh-key")
|
||||
monkeypatch.setenv("FINANCIAL_DATASETS_API_KEY", "fd-key")
|
||||
monkeypatch.setenv("ENABLED_DATA_SOURCES", "financial_datasets,local_csv")
|
||||
monkeypatch.delenv("FIN_DATA_SOURCE", raising=False)
|
||||
reset_config()
|
||||
|
||||
config = get_config()
|
||||
|
||||
assert config.sources == ["financial_datasets", "local_csv"]
|
||||
assert config.source == "financial_datasets"
|
||||
|
||||
|
||||
def test_preferred_source_reorders_enabled_sources(monkeypatch):
|
||||
monkeypatch.setenv("FINNHUB_API_KEY", "fh-key")
|
||||
monkeypatch.setenv("FINANCIAL_DATASETS_API_KEY", "fd-key")
|
||||
monkeypatch.setenv("ENABLED_DATA_SOURCES", "financial_datasets,finnhub,local_csv")
|
||||
monkeypatch.setenv("FIN_DATA_SOURCE", "finnhub")
|
||||
reset_config()
|
||||
|
||||
config = get_config()
|
||||
|
||||
assert config.sources == ["finnhub", "financial_datasets", "local_csv"]
|
||||
assert config.source == "finnhub"
|
||||
|
||||
|
||||
def test_yfinance_can_be_enabled_without_api_key(monkeypatch):
|
||||
monkeypatch.delenv("FINNHUB_API_KEY", raising=False)
|
||||
monkeypatch.delenv("FINANCIAL_DATASETS_API_KEY", raising=False)
|
||||
monkeypatch.setenv("FIN_DATA_SOURCE", "yfinance")
|
||||
monkeypatch.setenv("ENABLED_DATA_SOURCES", "yfinance,local_csv")
|
||||
reset_config()
|
||||
|
||||
config = get_config()
|
||||
|
||||
assert config.sources == ["yfinance", "local_csv"]
|
||||
assert config.source == "yfinance"
|
||||
Reference in New Issue
Block a user