"""Test for utility functions of the Bring! integration.""" from bring_api import ( BringActivityResponse, BringItemsResponse, BringListResponse, BringUserSettingsResponse, ) from bring_api.types import BringUsersResponse import pytest from homeassistant.components.bring.const import DOMAIN from homeassistant.components.bring.coordinator import BringData from homeassistant.components.bring.util import list_language, sum_attributes from tests.common import load_fixture @pytest.mark.parametrize( ("list_uuid", "expected"), [ ("e542eef6-dba7-4c31-a52c-29e6ab9d83a5", "de-DE"), ("b4776778-7f6c-496e-951b-92a35d3db0dd", "en-US"), ("00000000-0000-0000-0000-000000000000", None), ], ) def test_list_language(list_uuid: str, expected: str | None) -> None: """Test function list_language.""" result = list_language( list_uuid, BringUserSettingsResponse.from_json(load_fixture("usersettings.json", DOMAIN)), ) assert result == expected @pytest.mark.parametrize( ("attribute", "expected"), [ ("urgent", 2), ("convenient", 2), ("discounted", 2), ], ) def test_sum_attributes(attribute: str, expected: int) -> None: """Test function sum_attributes.""" items = BringItemsResponse.from_json(load_fixture("items.json", DOMAIN)) lst = BringListResponse.from_json(load_fixture("lists.json", DOMAIN)) activity = BringActivityResponse.from_json(load_fixture("activity.json", DOMAIN)) users = BringUsersResponse.from_json(load_fixture("users.json", DOMAIN)) result = sum_attributes( BringData(lst.lists[0], items, activity, users), attribute, ) assert result == expected