@@ -54,21 +54,24 @@ class TestMorpheusBot:
5454 async def test_bot_initialization (self , temp_db_path , temp_notebook_dir ):
5555 """Test MorpheusBot initialization."""
5656 from agent import MorpheusBot
57-
57+
5858 # Mock environment variables and external dependencies
59- with patch ('os.getenv' ) as mock_getenv , \
59+ with patch .dict ('os.environ' , {
60+ 'OPENAI_API_KEY' : 'test-openai-key' ,
61+ 'ANTHROPIC_API_KEY' : 'test-anthropic-key' ,
62+ 'DENO_PATH' : '/usr/bin/deno' ,
63+ 'GEMINI_API_KEY' : 'test-gemini-key'
64+ }), \
6065 patch ('pydantic_ai.models.anthropic.AnthropicModel' , return_value = MagicMock ()) as mock_anthropic , \
6166 patch ('pydantic_ai.models.openai.OpenAIModel' , return_value = MagicMock ()) as mock_openai , \
67+ patch ('pydantic_ai.models.gemini.GeminiModel' , return_value = MagicMock ()) as mock_gemini , \
6268 patch ('pydantic_ai.models.fallback.FallbackModel' , return_value = MagicMock ()) as mock_fallback , \
6369 patch ('pydantic_ai.Agent' , return_value = MagicMock ()) as mock_agent , \
6470 patch ('pydantic_ai.mcp.MCPServerStdio' , return_value = MagicMock ()) as mock_mcp :
65-
66- # Set up environment variables
67- mock_getenv .return_value = "mock_value"
68-
71+
6972 # Set up the notebook path
7073 notebook_path = os .path .join (str (temp_notebook_dir ), "test_notebook.md" )
71-
74+
7275 # Create the bot
7376 bot = MorpheusBot (
7477 db_filename = temp_db_path ,
@@ -93,25 +96,28 @@ async def test_bot_initialization(self, temp_db_path, temp_notebook_dir):
9396 async def test_process_message (self , temp_db_path , mock_run_result ):
9497 """Test processing a message through the agent."""
9598 from agent import MorpheusBot
96-
99+
97100 # Create a bot with mocked agent
98- with patch ('os.getenv' ) as mock_getenv , \
101+ with patch .dict ('os.environ' , {
102+ 'OPENAI_API_KEY' : 'test-openai-key' ,
103+ 'ANTHROPIC_API_KEY' : 'test-anthropic-key' ,
104+ 'DENO_PATH' : '/usr/bin/deno' ,
105+ 'GEMINI_API_KEY' : 'test-gemini-key'
106+ }), \
99107 patch ('pydantic_ai.Agent' ) as MockAgent , \
100108 patch ('pydantic_ai.mcp.MCPServerStdio' , return_value = MagicMock ()), \
101109 patch ('pydantic_ai.models.anthropic.AnthropicModel' , return_value = MagicMock ()), \
102110 patch ('pydantic_ai.models.openai.OpenAIModel' , return_value = MagicMock ()), \
111+ patch ('pydantic_ai.models.gemini.GeminiModel' , return_value = MagicMock ()), \
103112 patch ('pydantic_ai.models.fallback.FallbackModel' , return_value = MagicMock ()):
104-
105- # Set up environment variables
106- mock_getenv .return_value = "mock_value"
107-
113+
108114 # Set up the mock agent
109115 mock_agent = MagicMock ()
110116 mock_agent .run = AsyncMock (return_value = mock_run_result )
111117 mock_agent .run_mcp_servers .return_value .__aenter__ = AsyncMock ()
112118 mock_agent .run_mcp_servers .return_value .__aexit__ = AsyncMock ()
113119 MockAgent .return_value = mock_agent
114-
120+
115121 # Create the bot
116122 bot = MorpheusBot (db_filename = temp_db_path )
117123
@@ -142,18 +148,21 @@ async def test_process_message(self, temp_db_path, mock_run_result):
142148 def test_query_db (self , temp_db_path ):
143149 """Test database query functionality."""
144150 from agent import MorpheusBot
145-
151+
146152 # Create a bot
147- with patch ('os.getenv' ) as mock_getenv , \
153+ with patch .dict ('os.environ' , {
154+ 'OPENAI_API_KEY' : 'test-openai-key' ,
155+ 'ANTHROPIC_API_KEY' : 'test-anthropic-key' ,
156+ 'DENO_PATH' : '/usr/bin/deno' ,
157+ 'GEMINI_API_KEY' : 'test-gemini-key'
158+ }), \
148159 patch ('pydantic_ai.Agent' , return_value = MagicMock ()), \
149160 patch ('pydantic_ai.mcp.MCPServerStdio' , return_value = MagicMock ()), \
150161 patch ('pydantic_ai.models.anthropic.AnthropicModel' , return_value = MagicMock ()), \
151162 patch ('pydantic_ai.models.openai.OpenAIModel' , return_value = MagicMock ()), \
163+ patch ('pydantic_ai.models.gemini.GeminiModel' , return_value = MagicMock ()), \
152164 patch ('pydantic_ai.models.fallback.FallbackModel' , return_value = MagicMock ()):
153-
154- # Set up environment variables
155- mock_getenv .return_value = "mock_value"
156-
165+
157166 # Create and initialize the bot
158167 bot = MorpheusBot (db_filename = temp_db_path )
159168
@@ -175,18 +184,21 @@ def test_history_management(self):
175184 """Test history management functions."""
176185 from agent import MorpheusBot
177186 import time
178-
187+
179188 # Create a bot
180- with patch ('os.getenv' ) as mock_getenv , \
189+ with patch .dict ('os.environ' , {
190+ 'OPENAI_API_KEY' : 'test-openai-key' ,
191+ 'ANTHROPIC_API_KEY' : 'test-anthropic-key' ,
192+ 'DENO_PATH' : '/usr/bin/deno' ,
193+ 'GEMINI_API_KEY' : 'test-gemini-key'
194+ }), \
181195 patch ('pydantic_ai.Agent' , return_value = MagicMock ()), \
182196 patch ('pydantic_ai.mcp.MCPServerStdio' , return_value = MagicMock ()), \
183197 patch ('pydantic_ai.models.anthropic.AnthropicModel' , return_value = MagicMock ()), \
184198 patch ('pydantic_ai.models.openai.OpenAIModel' , return_value = MagicMock ()), \
199+ patch ('pydantic_ai.models.gemini.GeminiModel' , return_value = MagicMock ()), \
185200 patch ('pydantic_ai.models.fallback.FallbackModel' , return_value = MagicMock ()):
186-
187- # Set up environment variables
188- mock_getenv .return_value = "mock_value"
189-
201+
190202 # Create the bot
191203 bot = MorpheusBot (db_filename = ":memory:" )
192204
0 commit comments