Files
up-ha/tests/test_models.py
git 4dcf2f04c5
Validate / syntax (push) Canceled after 0s
Fix currency presentation and update resilience
2026-09-27 17:56:08 +10:00

27 lines
1.3 KiB
Python

"""Tests for event payloads: no Home Assistant runtime is required."""
from importlib.util import module_from_spec, spec_from_file_location
from pathlib import Path
_MODELS_PATH = Path(__file__).parents[1] / "custom_components" / "up_banking" / "models.py"
_spec = spec_from_file_location("up_banking_models", _MODELS_PATH)
assert _spec and _spec.loader
_models = module_from_spec(_spec)
_spec.loader.exec_module(_models)
account_label = _models.account_label
transaction_event = _models.transaction_event
def test_account_label_includes_saver_and_ownership():
account = {"attributes": {"displayName": "Rainy day", "accountType": "SAVER", "ownershipType": "JOINT"}}
assert account_label(account) == "Rainy day (Saver, Joint)"
def test_transaction_event_is_small_and_automation_ready():
transaction = {
"id": "tx-1",
"attributes": {"status": "HELD", "amount": {"value": "-12.34", "currencyCode": "AUD"}, "description": "Coffee", "createdAt": "2026-01-01T00:00:00Z", "rawText": "Cafe"},
"relationships": {"account": {"data": {"id": "account-1"}}},
}
assert transaction_event(transaction, "created") == {"transaction_id": "tx-1", "event_type": "created", "status": "held", "account_id": "account-1", "amount": "-12.34", "currency": "$", "description": "Coffee", "created_at": "2026-01-01T00:00:00Z", "raw_text": "Cafe"}