56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
# -*- 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"
|