From 8b4a88f4bd754d1355d000eeef06999333c4c413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=81=B5=E5=BA=94?= Date: Fri, 3 Jul 2026 17:58:35 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=90=8E=E7=AB=AF=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=B8=85=E7=90=86-=E7=A7=BB=E9=99=A4=E6=AD=BB?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=92=8C=E6=97=A0=E7=94=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 packages/domain/permissions.py(完全未引用的权限模块) - 删除 packages/adapters/sqlite_tracker/(空包,无实现文件) - 移除 requirements.txt 中未使用的依赖:aiosmtplib、python-dotenv - 清理 test_email_service.py 中 workspace 邀请邮件的废弃测试 --- packages/adapters/sqlite_tracker/__init__.py | 7 --- packages/domain/permissions.py | 50 -------------------- requirements.txt | 6 --- tests/unit/test_email_service.py | 24 ---------- 4 files changed, 87 deletions(-) delete mode 100644 packages/adapters/sqlite_tracker/__init__.py delete mode 100644 packages/domain/permissions.py diff --git a/packages/adapters/sqlite_tracker/__init__.py b/packages/adapters/sqlite_tracker/__init__.py deleted file mode 100644 index ef2cad630..000000000 --- a/packages/adapters/sqlite_tracker/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -"""SQLite Tracker Adapter""" - -__all__ = [ - "SQLiteTaskRepository", - "SQLiteMilestoneRepository", - "SQLiteTaskIssueRepository", -] diff --git a/packages/domain/permissions.py b/packages/domain/permissions.py deleted file mode 100644 index 952849fed..000000000 --- a/packages/domain/permissions.py +++ /dev/null @@ -1,50 +0,0 @@ -""" -Permissions module. -All permission checks pass by default (workspace concept removed). -""" - - -class PermissionChecker: - """Permission checker - all checks pass by default.""" - - def __init__(self, member_repository=None): - self.member_repository = member_repository - - def check_access(self, project_id, user_id): - return True, "owner" - - def check_is_owner(self, project_id, user_id): - return True - - def check_is_admin_or_owner(self, project_id, user_id): - return True - - def check_can_manage_members(self, project_id, user_id): - return True - - def check_can_edit_project(self, project_id, user_id): - return True - - def check_can_delete_project(self, project_id, user_id): - return True - - def check_can_view_project(self, project_id, user_id): - return True - - -class Permission: - PROJECT_VIEW = "project:view" - PROJECT_CREATE = "project:create" - PROJECT_EDIT = "project:edit" - PROJECT_DELETE = "project:delete" - ASSET_VIEW = "asset:view" - ASSET_UPLOAD = "asset:upload" - ASSET_EDIT = "asset:edit" - ASSET_DELETE = "asset:delete" - - -ROLE_PERMISSIONS = {} - - -def has_permission(role, permission): - return True diff --git a/requirements.txt b/requirements.txt index 99dc5e323..ae0d9cdc0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,9 +21,6 @@ python-multipart==0.0.32 # Redis redis==5.2.0 -# 邮件 -aiosmtplib==3.0.2 - # HTTP 客户端 httpx==0.27.2 @@ -32,9 +29,6 @@ pytest==8.3.3 pytest-asyncio==0.24.0 pytest-cov==6.0.0 -# 工具 -python-dotenv==1.0.1 - # 视频处理 ffmpeg-python==0.2.0 Pillow==10.4.0 diff --git a/tests/unit/test_email_service.py b/tests/unit/test_email_service.py index 2bbbe74dc..08b97b4f8 100644 --- a/tests/unit/test_email_service.py +++ b/tests/unit/test_email_service.py @@ -137,30 +137,6 @@ class TestEmailService: # 验证收件人 assert call_args[0][1] == ["user@example.com"] - @patch("smtplib.SMTP") - def test_send_workspace_invitation_email(self, mock_smtp, email_service): - """测试发送工作空间邀请邮件""" - mock_server = MagicMock() - mock_smtp.return_value.__enter__.return_value = mock_server - - success, error = email_service.send_workspace_invitation_email( - to_email="user@example.com", - inviter_name="Alice", - workspace_name="My Workspace", - role="admin", - invitation_url="https://example.com/invite?token=inv123", - ) - - assert success is True - assert error is None - - # 验证发送了邮件 - mock_server.sendmail.assert_called_once() - call_args = mock_server.sendmail.call_args - - # 验证收件人 - assert call_args[0][1] == ["user@example.com"] - @patch("smtplib.SMTP") def test_email_without_tls(self, mock_smtp): """测试不使用 TLS 发送邮件"""