Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions nodes/src/nodes/memory_persistent/IInstance.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def writeQuestions(self, question: Question) -> None:
store = self.IGlobal.store
if store is None:
self.instance.writeQuestions(question)
return
return self.preventDefault()

# Deep copy to prevent mutation of the original question
question = copy.deepcopy(question)
Expand All @@ -63,7 +63,7 @@ def writeQuestions(self, question: Question) -> None:
self._current_session_id = None
debug(f'Ignoring invalid session_id in question metadata: {session_id!r}')
self.instance.writeQuestions(question)
return
return self.preventDefault()

# Load all keys from the session
keys_result = store.list_keys(session_id)
Expand All @@ -83,6 +83,7 @@ def writeQuestions(self, question: Question) -> None:

# Forward the (possibly enriched) question downstream
self.instance.writeQuestions(question)
return self.preventDefault()

def writeAnswers(self, answer: Answer) -> None:
"""Store answer text in session memory for future retrieval, then forward.
Expand All @@ -93,7 +94,7 @@ def writeAnswers(self, answer: Answer) -> None:
store = self.IGlobal.store
if store is None:
self.instance.writeAnswers(answer)
return
return self.preventDefault()

# Deep copy to prevent mutation
answer = copy.deepcopy(answer)
Expand All @@ -116,7 +117,7 @@ def writeAnswers(self, answer: Answer) -> None:
except ValueError:
debug(f'Ignoring invalid session_id in answer metadata: {session_id!r}')
self.instance.writeAnswers(answer)
return
return self.preventDefault()

# Store the answer text
answer_text = answer.getText() if hasattr(answer, 'getText') else str(answer)
Expand All @@ -129,3 +130,4 @@ def writeAnswers(self, answer: Answer) -> None:

# Forward the answer downstream
self.instance.writeAnswers(answer)
return self.preventDefault()
5 changes: 5 additions & 0 deletions nodes/test/memory_persistent/test_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -802,19 +802,22 @@ def _make_instance(self, store=None):
inst.IGlobal = MagicMock()
inst.IGlobal.store = store
inst.instance = MagicMock()
inst.preventDefault = MagicMock()
return inst

def test_write_questions_forwards_without_store(self):
inst = self._make_instance(store=None)
question = MagicMock()
inst.writeQuestions(question)
inst.instance.writeQuestions.assert_called_once()
inst.preventDefault.assert_called_once()

def test_write_answers_forwards_without_store(self):
inst = self._make_instance(store=None)
answer = MagicMock()
inst.writeAnswers(answer)
inst.instance.writeAnswers.assert_called_once()
inst.preventDefault.assert_called_once()

def test_write_questions_enriches_with_memory(self):
store = PersistentMemoryStore(backend='memory')
Expand All @@ -827,6 +830,7 @@ def test_write_questions_enriches_with_memory(self):

inst.writeQuestions(question)
inst.instance.writeQuestions.assert_called_once()
inst.preventDefault.assert_called_once()

# The forwarded question should have memory_context
forwarded = inst.instance.writeQuestions.call_args[0][0]
Expand Down Expand Up @@ -854,6 +858,7 @@ def test_write_answers_stores_in_session(self):

inst.writeAnswers(answer)
inst.instance.writeAnswers.assert_called_once()
inst.preventDefault.assert_called_once()

# Check that answer was stored
result = store.get('test-sess', 'last_answer')
Expand Down
Loading