supermemory/packages/pipecat-sdk-python/tests/test_service_none_profile.py
Aegis Dev 165e8a4d93 fix(pipecat): guard against None profile in _retrieve_memories()
response.profile can be None when the API returns no data for a new
user, causing an AttributeError. Added None checks before accessing
.static and .dynamic, returning empty lists in that case.

Fixes #1027
2026-05-31 18:35:54 -04:00

32 lines
1.1 KiB
Python

"""Test that _retrieve_memories handles a None profile without raising AttributeError."""
import pytest
def test_retrieve_memories_none_profile_returns_empty_lists():
"""API can return response.profile=None (e.g. new user); must not raise AttributeError."""
class FakeProfile:
static = ["fact"]
dynamic = ["recent"]
class FakeResponse:
profile = None
search_results = None
response = FakeResponse()
# Mirrors the fixed logic in service.py _retrieve_memories()
profile_static = response.profile.static if response.profile is not None else []
profile_dynamic = response.profile.dynamic if response.profile is not None else []
assert profile_static == []
assert profile_dynamic == []
# Also verify non-None profile still works correctly
response.profile = FakeProfile()
profile_static = response.profile.static if response.profile is not None else []
profile_dynamic = response.profile.dynamic if response.profile is not None else []
assert profile_static == ["fact"]
assert profile_dynamic == ["recent"]