test: cover add_decision kwargs form and VectorStore inmemory backend

- test_add_decision_kwargs_form: verifies add_decision() accepts kwargs
  directly (category, scenario, reasoning, outcome, confidence) without
  requiring a Decision object
- test_add_decision_kwargs_and_object_both_return_id: verifies both call
  forms return a non-empty string ID
- test_agent_context_inmemory_store_and_retrieve: verifies AgentContext
  with VectorStore(backend="inmemory") stores memories without faiss-cpu

Closes #433

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
KaifAhmad1
2026-04-02 20:25:34 +05:30
co-authored by Claude Sonnet 4.6
parent 40fe1d587a
commit f8ec5ac010
2 changed files with 50 additions and 0 deletions
+18
View File
@@ -39,6 +39,24 @@ def test_agent_context_minimal_decisions_and_chain():
assert len(chain) >= 1
def test_agent_context_inmemory_store_and_retrieve():
"""VectorStore(backend="inmemory") stores memories without faiss-cpu."""
vs = VectorStore(backend="inmemory")
ctx = AgentContext(
vector_store=vs,
knowledge_graph=ContextGraph(),
decision_tracking=True,
kg_algorithms=False,
vector_store_features=False,
)
memory_id = ctx.store(
"GPT-4 outperforms GPT-3.5 on reasoning benchmarks by 40%",
conversation_id="test_session",
)
assert isinstance(memory_id, str)
assert len(memory_id) > 0
def test_agent_context_policy_engine_with_graph_backend():
vs = VectorStore(backend="inmemory", dimension=64)
graph = ContextGraph()
@@ -49,6 +49,38 @@ class TestContextGraphDecisions:
assert node.properties["confidence"] == sample_decision.confidence
assert node.properties["decision_maker"] == sample_decision.decision_maker
def test_add_decision_kwargs_form(self, context_graph):
"""add_decision() accepts kwargs directly (no Decision object required)."""
decision_id = context_graph.add_decision(
category="loan_approval",
scenario="Mortgage application — 780 credit score",
reasoning="Strong credit history, low DTI",
outcome="approved",
confidence=0.95,
)
assert isinstance(decision_id, str)
assert len(decision_id) > 0
node = context_graph.nodes[decision_id]
assert node.node_type in ("Decision", "decision")
assert node.properties["category"] == "loan_approval"
assert node.properties["outcome"] == "approved"
assert node.properties["confidence"] == 0.95
def test_add_decision_kwargs_and_object_both_return_id(self, context_graph, sample_decision):
"""Both call forms return a non-empty decision ID string."""
id_from_object = context_graph.add_decision(sample_decision)
id_from_kwargs = context_graph.add_decision(
category="test",
scenario="test scenario",
reasoning="test reasoning",
outcome="approved",
confidence=0.8,
)
assert isinstance(id_from_object, str) and len(id_from_object) > 0
assert isinstance(id_from_kwargs, str) and len(id_from_kwargs) > 0
def test_add_decision_with_embeddings(self, context_graph):
"""Test adding decision with embeddings."""
decision = Decision(