Files
OpenBB/openbb_platform/providers/ecb/tests/test_bps_series.py
Danglewood 869cfed125 [Release] openbb-v5.0.0 (#7741)
* 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 <>
2026-09-29 10:58:44 -07:00

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.")