mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-10 11:21:12 +00:00
* merge branch develop with main * bump desktop version * fix the merge * sync Cargo.lock to desktop 2.0.0 * fix cli conftest.py --------- Co-authored-by: deeleeramone <>
63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
import pytest
|
|
|
|
from openbb_ecb.utils.bps_series import BPS_COUNTRIES_DICT, generate_bps_series_ids
|
|
|
|
REPORTS = [
|
|
"main",
|
|
"summary",
|
|
"services",
|
|
"investment_income",
|
|
"direct_investment",
|
|
"portfolio_investment",
|
|
"other_investment",
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize("report_type", REPORTS)
|
|
def test_every_report_returns_keys(report_type):
|
|
ids = generate_bps_series_ids("quarterly", report_type)
|
|
assert ids and all(isinstance(v, str) for v in ids.values())
|
|
|
|
|
|
def test_corrected_keys_and_field_names():
|
|
summary = generate_bps_series_ids("quarterly", "summary")
|
|
assert summary["goods_debit"].split(".")[7:9] == ["D", "G"]
|
|
|
|
services = generate_bps_series_ids("quarterly", "services")
|
|
assert "SF+SG" in services["financial_services_credit"]
|
|
assert "SA+SB+SE+SH+SK+SL+SN" in services["other_services_credit"]
|
|
|
|
inv = generate_bps_series_ids("quarterly", "investment_income")
|
|
assert "debt_instruments_credit" in inv
|
|
assert "portofolio_investment_debt_instruments_debit" in inv
|
|
|
|
portfolio = generate_bps_series_ids("quarterly", "portfolio_investment")
|
|
assert "assets_equity_shares" in portfolio
|
|
assert all(not v.startswith("BPS") for v in portfolio.values())
|
|
|
|
other = generate_bps_series_ids("quarterly", "other_investment")
|
|
assert "assets_trade_credit_and_advances" in other
|
|
|
|
|
|
def test_invalid_report_returns_none():
|
|
assert generate_bps_series_ids("quarterly", "not_a_report") is None
|
|
|
|
|
|
def test_country_branch():
|
|
country = generate_bps_series_ids("monthly", "main", country="united_states")
|
|
code = BPS_COUNTRIES_DICT["united_states"]
|
|
assert all(f".{code}." in v for v in country.values())
|
|
|
|
|
|
def test_frequency_logic():
|
|
assert generate_bps_series_ids("monthly", "main")["goods"].startswith("M.")
|
|
assert generate_bps_series_ids("monthly", "summary")["goods_credit"].startswith(
|
|
"M."
|
|
)
|
|
assert generate_bps_series_ids("monthly", "services")[
|
|
"transport_credit"
|
|
].startswith("Q.")
|
|
assert generate_bps_series_ids("monthly", "main", country="japan")[
|
|
"goods_balance"
|
|
].startswith("Q.")
|