From 5a3ef5efa137d657296e74163deabe2453957ae5 Mon Sep 17 00:00:00 2001 From: Nicholas Albion Date: Fri, 29 Sep 2023 16:21:34 +1000 Subject: [PATCH] Added unit test, failed to reproduce #35 --- pilot/helpers/agents/test_Developer.py | 33 ++++++++++++++++++++++++-- pilot/helpers/agents/test_TechLead.py | 2 +- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/pilot/helpers/agents/test_Developer.py b/pilot/helpers/agents/test_Developer.py index c01f8d3..39dcf17 100644 --- a/pilot/helpers/agents/test_Developer.py +++ b/pilot/helpers/agents/test_Developer.py @@ -7,9 +7,10 @@ from helpers.AgentConvo import AgentConvo from dotenv import load_dotenv load_dotenv() -from main import get_custom_print +from main import get_custom_print from .Developer import Developer, ENVIRONMENT_SETUP_STEP from helpers.Project import Project +from test.mock_questionary import MockQuestionary class TestDeveloper: @@ -83,7 +84,7 @@ class TestDeveloper: @patch('helpers.AgentConvo.create_gpt_chat_completion', return_value={'text': '{"type": "manual_test", "manual_test_description": "Does it look good?"}'}) @patch('helpers.Project.ask_user', return_value='continue') - def test_code_changes_manual_test(self, mock_get_saved_step, mock_save, mock_chat_completion, mock_ask_user): + def test_code_changes_manual_test_continue(self, mock_get_saved_step, mock_save, mock_chat_completion, mock_ask_user): # Given monkey = None convo = AgentConvo(self.developer) @@ -94,3 +95,31 @@ class TestDeveloper: # Then assert result == {'success': True, 'user_input': 'continue'} + + @patch('helpers.AgentConvo.get_saved_development_step') + @patch('helpers.AgentConvo.save_development_step') + @patch('helpers.AgentConvo.create_gpt_chat_completion') + @patch('utils.questionary.get_saved_user_input') + # https://github.com/Pythagora-io/gpt-pilot/issues/35 + def test_code_changes_manual_test_no(self, mock_get_saved_user_input, mock_chat_completion, mock_save, mock_get_saved_step): + # Given + monkey = None + convo = AgentConvo(self.developer) + convo.save_branch = lambda branch_name=None: branch_name + convo.load_branch = lambda function_uuid=None: function_uuid + self.project.developer = self.developer + + mock_chat_completion.side_effect = [ + {'text': '{"type": "manual_test", "manual_test_description": "Does it look good?"}'}, + {'text': '{"steps": [{"type": "command", "command": {"command": "something scary", "timeout": 3000}, "check_if_fixed": true}]}'}, + {'text': 'do something else scary'}, + ] + + mock_questionary = MockQuestionary(['no', 'no']) + + with patch('utils.questionary.questionary', mock_questionary): + # When + result = self.developer.test_code_changes(monkey, convo) + + # Then + assert result == {'success': True, 'user_input': 'continue'} diff --git a/pilot/helpers/agents/test_TechLead.py b/pilot/helpers/agents/test_TechLead.py index 1da468d..4ca72e7 100644 --- a/pilot/helpers/agents/test_TechLead.py +++ b/pilot/helpers/agents/test_TechLead.py @@ -5,7 +5,7 @@ from unittest.mock import patch from dotenv import load_dotenv load_dotenv() -from main import get_custom_print +from main import get_custom_print from helpers.agents.TechLead import TechLead, DEVELOPMENT_PLANNING_STEP from helpers.Project import Project from test.test_utils import assert_non_empty_string