Skip to content

Commit 530f203

Browse files
authored
feat: add missing data plane passthroughs and integration tests (#352)
* feat: add missing data plane passthroughs and integration tests * fix: remove non-existent list_memory_strategies from control plane passthroughs
1 parent be1be55 commit 530f203

2 files changed

Lines changed: 85 additions & 1 deletion

File tree

src/bedrock_agentcore/memory/client.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ class MemoryClient:
5353
"get_event",
5454
"delete_event",
5555
"list_events",
56+
"batch_create_memory_records",
57+
"batch_delete_memory_records",
58+
"batch_update_memory_records",
59+
"start_memory_extraction_job",
60+
"list_memory_extraction_jobs",
61+
"list_sessions",
62+
"list_actors",
5663
}
5764

5865
# AgentCore Memory control plane methods
@@ -62,7 +69,6 @@ class MemoryClient:
6269
"list_memories",
6370
"update_memory",
6471
"delete_memory",
65-
"list_memory_strategies",
6672
}
6773

6874
def __init__(

tests_integ/memory/test_memory_client.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -422,3 +422,81 @@ def test_delete_memory_and_wait(self):
422422
self.client.delete_memory_and_wait(self.lifecycle_memory_id)
423423
if self.lifecycle_memory_id in self.memory_ids:
424424
self.memory_ids.remove(self.lifecycle_memory_id)
425+
426+
# --- Passthrough Tests (order 19-23) ---
427+
428+
@pytest.mark.order(19)
429+
def test_list_actors(self):
430+
"""list_actors returns actors that have created events in the memory."""
431+
response = self.client.list_actors(memoryId=self.memory_id)
432+
assert "actorSummaries" in response
433+
assert len(response["actorSummaries"]) > 0
434+
435+
@pytest.mark.order(20)
436+
def test_list_sessions(self):
437+
"""list_sessions returns sessions for a known actor."""
438+
actor_id = f"{self.id_prefix}-save-actor"
439+
response = self.client.list_sessions(memoryId=self.memory_id, actorId=actor_id)
440+
assert "sessionSummaries" in response
441+
assert len(response["sessionSummaries"]) > 0
442+
443+
@pytest.mark.order(21)
444+
def test_get_event(self):
445+
"""get_event retrieves an event by ID after creation."""
446+
actor_id = f"{self.id_prefix}-getev-actor"
447+
session_id = f"{self.id_prefix}-getev-session"
448+
created = self.client.save_conversation(
449+
memory_id=self.memory_id,
450+
actor_id=actor_id,
451+
session_id=session_id,
452+
messages=[("test get event", "USER"), ("acknowledged", "ASSISTANT")],
453+
)
454+
event_id = created["eventId"]
455+
self.__class__.get_event_actor_id = actor_id
456+
self.__class__.get_event_session_id = session_id
457+
self.__class__.get_event_event_id = event_id
458+
459+
poll_until(
460+
fn=lambda: self.client.list_events(self.memory_id, actor_id, session_id),
461+
predicate=lambda e: len(e) >= 1,
462+
)
463+
464+
response = self.client.get_event(
465+
memoryId=self.memory_id,
466+
sessionId=session_id,
467+
actorId=actor_id,
468+
eventId=event_id,
469+
)
470+
assert response["event"]["eventId"] == event_id
471+
472+
@pytest.mark.order(22)
473+
def test_delete_event(self):
474+
"""delete_event removes an event and subsequent get_event raises ResourceNotFoundException."""
475+
event_id = getattr(self, "get_event_event_id", None)
476+
if not event_id:
477+
pytest.skip("test_get_event did not run")
478+
response = self.client.delete_event(
479+
memoryId=self.memory_id,
480+
sessionId=self.get_event_session_id,
481+
eventId=event_id,
482+
actorId=self.get_event_actor_id,
483+
)
484+
assert response["eventId"] == event_id
485+
486+
with pytest.raises(self.client.gmdp_client.exceptions.ResourceNotFoundException):
487+
self.client.get_event(
488+
memoryId=self.memory_id,
489+
sessionId=self.get_event_session_id,
490+
actorId=self.get_event_actor_id,
491+
eventId=event_id,
492+
)
493+
494+
@pytest.mark.order(23)
495+
def test_list_memory_records(self):
496+
"""list_memory_records returns extracted records from a prepopulated memory."""
497+
response = self.client.list_memory_records(
498+
memoryId=self.prepopulated_memory_id,
499+
namespace=f"/facts/{self.prepopulated_actor_id}/",
500+
)
501+
assert "memoryRecordSummaries" in response
502+
assert len(response["memoryRecordSummaries"]) > 0

0 commit comments

Comments
 (0)