Skip to content

Commit 565d7dd

Browse files
committed
Merge branch 'xyc/dev_skills' into xyq/skill_market
2 parents e367672 + 3de76bf commit 565d7dd

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

backend/database/skill_db.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,11 +352,12 @@ def delete_skill(skill_name: str, updated_by: Optional[str] = None) -> bool:
352352
updated_by: User ID of the user performing the delete
353353
354354
Returns:
355-
True if deleted successfully
355+
True if deleted successfully, False if skill not found or already deleted
356356
"""
357357
with get_db_session() as session:
358358
skill = session.query(SkillInfo).filter(
359-
SkillInfo.skill_name == skill_name
359+
SkillInfo.skill_name == skill_name,
360+
SkillInfo.delete_flag != 'Y'
360361
).first()
361362

362363
if not skill:

test/backend/database/test_skill_db.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,6 +1699,26 @@ def test_delete_skill_without_updated_by(self, monkeypatch, mock_session):
16991699

17001700
assert result is True
17011701

1702+
def test_delete_skill_already_deleted(self, monkeypatch, mock_session):
1703+
"""Test deleting a skill that is already deleted returns False."""
1704+
session, query = mock_session
1705+
1706+
mock_first = MagicMock()
1707+
mock_first.return_value = None
1708+
mock_filter = MagicMock()
1709+
mock_filter.first = mock_first
1710+
query.filter.return_value = mock_filter
1711+
1712+
mock_ctx = MagicMock()
1713+
mock_ctx.__enter__.return_value = session
1714+
mock_ctx.__exit__.return_value = None
1715+
monkeypatch.setattr(
1716+
"backend.database.skill_db.get_db_session", lambda: mock_ctx)
1717+
1718+
result = delete_skill('already_deleted_skill')
1719+
1720+
assert result is False
1721+
17021722

17031723
# ===== get_tool_names_by_ids Tests =====
17041724

0 commit comments

Comments
 (0)