| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from unittest.mock import Mock, patch
- import pytest
- from openhands.core.exceptions import LLMResponseError
- from openhands.llm.llm import LLM
- from openhands.memory.condenser import MemoryCondenser
- @pytest.fixture
- def memory_condenser():
- return MemoryCondenser()
- @pytest.fixture
- def mock_llm():
- return Mock(spec=LLM)
- def test_condense_success(memory_condenser, mock_llm):
- mock_llm.completion.return_value = {
- 'choices': [{'message': {'content': 'Condensed memory'}}]
- }
- result = memory_condenser.condense('Summarize this', mock_llm)
- assert result == 'Condensed memory'
- mock_llm.completion.assert_called_once_with(
- messages=[{'content': 'Summarize this', 'role': 'user'}]
- )
- def test_condense_exception(memory_condenser, mock_llm):
- mock_llm.completion.side_effect = LLMResponseError('LLM error')
- with pytest.raises(LLMResponseError, match='LLM error'):
- memory_condenser.condense('Summarize this', mock_llm)
- @patch('openhands.memory.condenser.logger')
- def test_condense_logs_error(mock_logger, memory_condenser, mock_llm):
- mock_llm.completion.side_effect = LLMResponseError('LLM error')
- with pytest.raises(LLMResponseError):
- memory_condenser.condense('Summarize this', mock_llm)
- mock_logger.error.assert_called_once_with(
- 'Error condensing thoughts: %s', 'LLM error', exc_info=False
- )
|