Skip to content

Commit 576410e

Browse files
committed
✨ Now user can save or discard changes in agent config page
✨ Now user would be reminded when leaving the page or starting debug with unsaved changes left 🐛 Bugfix: Agent config will be mistakenly removed when sequentially choose agent -> create new agent -> quit editing 🎨 Beautify the agent config page using lucide icon
1 parent 3029553 commit 576410e

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

test/backend/services/test_agent_service.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sys
22
import asyncio
33
import json
4+
from contextlib import contextmanager
45
from unittest.mock import patch, MagicMock, mock_open, call, Mock, AsyncMock
56

67
import pytest
@@ -15,7 +16,30 @@
1516
sys.modules['boto3'] = boto3_mock
1617

1718
# Mock external dependencies before importing backend modules that might initialize them
18-
with patch('backend.database.client.MinioClient') as minio_mock, \
19+
# Mock create_engine to prevent database connection attempts
20+
mock_engine = MagicMock()
21+
mock_session_maker = MagicMock()
22+
mock_db_session = MagicMock()
23+
mock_session_maker.return_value = mock_db_session
24+
25+
# Mock PostgresClient to prevent database connection attempts
26+
# Create a mock class that returns the same instance (singleton pattern)
27+
mock_postgres_client = MagicMock()
28+
mock_postgres_client.session_maker = mock_session_maker
29+
mock_postgres_client_class = MagicMock(return_value=mock_postgres_client)
30+
31+
# Mock get_db_session context manager - create a proper context manager mock
32+
def mock_get_db_session(db_session=None):
33+
session = mock_db_session if db_session is None else db_session
34+
@contextmanager
35+
def _mock_context():
36+
yield session
37+
return _mock_context()
38+
39+
with patch('sqlalchemy.create_engine', return_value=mock_engine), \
40+
patch('backend.database.client.PostgresClient', new=mock_postgres_client_class), \
41+
patch('backend.database.client.get_db_session', side_effect=mock_get_db_session), \
42+
patch('backend.database.client.MinioClient') as minio_mock, \
1943
patch('elasticsearch.Elasticsearch', return_value=MagicMock()) as es_mock:
2044
minio_mock.return_value = MagicMock()
2145

@@ -44,6 +68,10 @@
4468
_resolve_user_tenant_language,
4569
)
4670
from consts.model import ExportAndImportAgentInfo, ExportAndImportDataFormat, MCPInfo, AgentRequest
71+
72+
# Ensure db_client is set to our mock after import
73+
import backend.database.client as db_client_module
74+
db_client_module.db_client = mock_postgres_client
4775

4876
# Mock Elasticsearch (already done in the import section above, but keeping for reference)
4977
elasticsearch_client_mock = MagicMock()

0 commit comments

Comments
 (0)