kiwi/tests/test_household.py
pyr0ball 9985d12156 feat: extend CloudUser with household_id + update session resolution
Add household_id and is_household_owner fields to CloudUser dataclass.
Update _user_db_path to route household members to a shared DB path.
Update _fetch_cloud_tier to return a 3-tuple and cache a dict.
Update get_session to unpack and propagate household fields.
2026-04-04 22:30:07 -07:00

38 lines
1.1 KiB
Python

"""Tests for household session resolution in cloud_session.py."""
import os
from pathlib import Path
from unittest.mock import patch, MagicMock
import pytest
os.environ.setdefault("CLOUD_MODE", "false")
from app.cloud_session import (
CloudUser,
_user_db_path,
CLOUD_DATA_ROOT,
)
def test_clouduser_has_household_fields():
u = CloudUser(
user_id="u1", tier="premium", db=Path("/tmp/u1.db"),
has_byok=False, household_id="hh-1", is_household_owner=True
)
assert u.household_id == "hh-1"
assert u.is_household_owner is True
def test_clouduser_household_defaults_none():
u = CloudUser(user_id="u1", tier="free", db=Path("/tmp/u1.db"), has_byok=False)
assert u.household_id is None
assert u.is_household_owner is False
def test_user_db_path_personal():
path = _user_db_path("abc123", household_id=None)
assert path == CLOUD_DATA_ROOT / "abc123" / "kiwi.db"
def test_user_db_path_household():
path = _user_db_path("abc123", household_id="hh-xyz")
assert path == CLOUD_DATA_ROOT / "household_hh-xyz" / "kiwi.db"