Suppress terminal logging in CI tests (#504)
* Test logging to terminal is disabled for testing * Suppress terminal logging in CI tests * Pass verbosity_level to test terminal logging output * Refactor
This commit is contained in:
parent
66b76200e7
commit
ce5ede8c12
|
@ -0,0 +1,19 @@
|
|||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
|
||||
from smolagents.agents import MultiStepAgent
|
||||
|
||||
|
||||
original_multi_step_agent_init = MultiStepAgent.__init__
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def patch_multi_step_agent_with_suppressed_logging():
|
||||
with patch.object(MultiStepAgent, "__init__", autospec=True) as mock_init:
|
||||
|
||||
def init_with_suppressed_logging(self, *args, verbosity_level=-1, **kwargs):
|
||||
original_multi_step_agent_init(self, *args, verbosity_level=verbosity_level, **kwargs)
|
||||
|
||||
mock_init.side_effect = init_with_suppressed_logging
|
||||
yield
|
|
@ -481,7 +481,8 @@ class AgentTests(unittest.TestCase):
|
|||
assert "You can also give requests to team members." in manager_agent.system_prompt
|
||||
|
||||
def test_code_agent_missing_import_triggers_advice_in_error_log(self):
|
||||
agent = CodeAgent(tools=[], model=fake_code_model_import)
|
||||
# Set explicit verbosity level to 1 to override the default verbosity level of -1 set in CI fixture
|
||||
agent = CodeAgent(tools=[], model=fake_code_model_import, verbosity_level=1)
|
||||
|
||||
with agent.logger.console.capture() as capture:
|
||||
agent.run("Count to 3")
|
||||
|
@ -655,6 +656,11 @@ nested_answer()
|
|||
|
||||
|
||||
class TestMultiStepAgent:
|
||||
def test_logging_to_terminal_is_disabled(self):
|
||||
fake_model = MagicMock()
|
||||
agent = MultiStepAgent(tools=[], model=fake_model)
|
||||
assert agent.logger.level == -1, "logging to terminal should be disabled for testing using a fixture"
|
||||
|
||||
def test_step_number(self):
|
||||
fake_model = MagicMock()
|
||||
agent = MultiStepAgent(tools=[], model=fake_model)
|
||||
|
|
Loading…
Reference in New Issue