28 lines
894 B
Python
28 lines
894 B
Python
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
from fin_hub.ingest.anthropic import parse_anthropic_billing_csv
|
||
|
|
from fin_hub.ingest.cloud import parse_cloud_cost_csv
|
||
|
|
from fin_hub.ingest.hosteurope import parse_hosteurope_csv
|
||
|
|
|
||
|
|
FIXTURES = Path(__file__).parent / "fixtures"
|
||
|
|
|
||
|
|
|
||
|
|
def test_parse_cloud_cost_csv():
|
||
|
|
rows = parse_cloud_cost_csv(FIXTURES / "cloud-costs.csv")
|
||
|
|
assert len(rows) == 3
|
||
|
|
assert rows[0].service == "state-hub"
|
||
|
|
assert rows[0].amount == 42.5
|
||
|
|
|
||
|
|
|
||
|
|
def test_parse_anthropic_billing_csv():
|
||
|
|
rows = parse_anthropic_billing_csv(FIXTURES / "anthropic-billing.csv")
|
||
|
|
assert len(rows) == 2
|
||
|
|
assert rows[0].provider == "anthropic"
|
||
|
|
assert rows[0].tokens_in == 12000
|
||
|
|
|
||
|
|
|
||
|
|
def test_parse_hosteurope_csv():
|
||
|
|
rows = parse_hosteurope_csv(FIXTURES / "hosteurope.csv")
|
||
|
|
assert len(rows) == 2
|
||
|
|
assert rows[0].service_id == "dedicated-server-m"
|
||
|
|
assert rows[0].period_month == "2026-06"
|