| """Test Commodity extension.""" |
|
|
| import pytest |
| from openbb_core.app.model.obbject import OBBject |
|
|
| |
|
|
|
|
| @pytest.fixture(scope="session") |
| def obb(pytestconfig): |
| """Fixture to setup obb.""" |
| if pytestconfig.getoption("markexpr") != "not integration": |
| import openbb |
|
|
| return openbb.obb |
|
|
|
|
| @pytest.mark.parametrize( |
| "params", |
| [ |
| ( |
| { |
| "commodity": "all", |
| "start_date": None, |
| "end_date": None, |
| "frequency": None, |
| "transform": None, |
| "aggregation_method": None, |
| "provider": "fred", |
| } |
| ), |
| ], |
| ) |
| @pytest.mark.integration |
| def test_commodity_price_spot(params, obb): |
| """Test the commodity spot prices endpoint.""" |
| params = {p: v for p, v in params.items() if v} |
|
|
| result = obb.commodity.price.spot(**params) |
| assert result |
| assert isinstance(result, OBBject) |
| assert len(result.results) > 0 |
|
|
|
|
| @pytest.mark.parametrize( |
| "params", |
| [ |
| ( |
| { |
| "category": "balance_sheet", |
| "table": "stocks", |
| "start_date": None, |
| "end_date": None, |
| "provider": "eia", |
| "use_cache": True, |
| } |
| ), |
| ( |
| { |
| "category": "weekly_estimates", |
| "table": "crude_production", |
| "start_date": "2020-01-01", |
| "end_date": "2023-12-31", |
| "provider": "eia", |
| "use_cache": True, |
| } |
| ), |
| ], |
| ) |
| @pytest.mark.integration |
| def test_commodity_petroleum_status_report(params, obb): |
| """Test Commodity Petroleum Status Report endpoint.""" |
| result = obb.commodity.petroleum_status_report(**params) |
| assert result |
| assert isinstance(result, OBBject) |
| assert len(result.results) > 0 |
|
|
|
|
| @pytest.mark.parametrize( |
| "params", |
| [ |
| ( |
| { |
| "table": "01", |
| "symbol": None, |
| "start_date": "2024-09-01", |
| "end_date": "2024-10-01", |
| "provider": "eia", |
| "frequency": "month", |
| } |
| ), |
| ], |
| ) |
| @pytest.mark.integration |
| def test_commodity_short_term_energy_outlook(params, obb): |
| """Test Commodity Short Term Energy Outlook endpoint.""" |
| result = obb.commodity.short_term_energy_outlook(**params) |
| assert result |
| assert isinstance(result, OBBject) |
| assert len(result.results) > 0 |
|
|