From 3396fee869e5cad4bcb8109dcd24f356d9fc6b64 Mon Sep 17 00:00:00 2001 From: MioINAMIJIMA Date: Tue, 27 May 2025 13:37:01 +0900 Subject: [PATCH] style: fix ruff formatting in test_dataset_permission.py --- .../services/test_dataset_permission.py | 66 +++++++++---------- 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/api/tests/unit_tests/services/test_dataset_permission.py b/api/tests/unit_tests/services/test_dataset_permission.py index 35c41c5082..066f541c1b 100644 --- a/api/tests/unit_tests/services/test_dataset_permission.py +++ b/api/tests/unit_tests/services/test_dataset_permission.py @@ -1,6 +1,6 @@ -import pytest from unittest.mock import Mock, patch -from sqlalchemy.orm import Session + +import pytest from models.account import Account, TenantAccountRole from models.dataset import Dataset, DatasetPermission, DatasetPermissionEnum @@ -44,99 +44,93 @@ class TestDatasetPermissionService: def test_permission_check_different_tenant_should_fail(self): """Test that users from different tenants cannot access dataset""" self.normal_user.current_tenant_id = "different-tenant" - + with pytest.raises(NoPermissionError, match="You do not have permission to access this dataset."): DatasetService.check_dataset_permission(self.dataset, self.normal_user) def test_owner_can_access_any_dataset(self): """Test that tenant owners can access any dataset regardless of permission""" self.dataset.permission = DatasetPermissionEnum.ONLY_ME - + # Should not raise any exception DatasetService.check_dataset_permission(self.dataset, self.owner_user) def test_only_me_permission_creator_can_access(self): """Test ONLY_ME permission allows only creator to access""" self.dataset.permission = DatasetPermissionEnum.ONLY_ME - + # Creator should be able to access DatasetService.check_dataset_permission(self.dataset, self.creator_user) def test_only_me_permission_others_cannot_access(self): """Test ONLY_ME permission denies access to non-creators""" self.dataset.permission = DatasetPermissionEnum.ONLY_ME - + with pytest.raises(NoPermissionError, match="You do not have permission to access this dataset."): DatasetService.check_dataset_permission(self.dataset, self.normal_user) def test_all_team_permission_allows_access(self): """Test ALL_TEAM permission allows any team member to access""" self.dataset.permission = DatasetPermissionEnum.ALL_TEAM - + # Should not raise any exception for team members DatasetService.check_dataset_permission(self.dataset, self.normal_user) DatasetService.check_dataset_permission(self.dataset, self.creator_user) - @patch('services.dataset_service.db.session') + @patch("services.dataset_service.db.session") def test_partial_team_permission_creator_can_access(self, mock_session): """Test PARTIAL_TEAM permission allows creator to access""" self.dataset.permission = DatasetPermissionEnum.PARTIAL_TEAM - + # Should not raise any exception for creator DatasetService.check_dataset_permission(self.dataset, self.creator_user) - + # Should not query database for creator mock_session.query.assert_not_called() - @patch('services.dataset_service.db.session') + @patch("services.dataset_service.db.session") def test_partial_team_permission_with_explicit_permission(self, mock_session): """Test PARTIAL_TEAM permission allows users with explicit permission""" self.dataset.permission = DatasetPermissionEnum.PARTIAL_TEAM - + # Mock database query to return a permission record mock_permission = Mock(spec=DatasetPermission) mock_session.query().filter_by().first.return_value = mock_permission - + # Should not raise any exception DatasetService.check_dataset_permission(self.dataset, self.normal_user) - + # Verify database was queried correctly - mock_session.query().filter_by.assert_called_with( - dataset_id=self.dataset.id, - account_id=self.normal_user.id - ) + mock_session.query().filter_by.assert_called_with(dataset_id=self.dataset.id, account_id=self.normal_user.id) - @patch('services.dataset_service.db.session') + @patch("services.dataset_service.db.session") def test_partial_team_permission_without_explicit_permission(self, mock_session): """Test PARTIAL_TEAM permission denies users without explicit permission""" self.dataset.permission = DatasetPermissionEnum.PARTIAL_TEAM - + # Mock database query to return None (no permission record) mock_session.query().filter_by().first.return_value = None - + with pytest.raises(NoPermissionError, match="You do not have permission to access this dataset."): DatasetService.check_dataset_permission(self.dataset, self.normal_user) - + # Verify database was queried correctly - mock_session.query().filter_by.assert_called_with( - dataset_id=self.dataset.id, - account_id=self.normal_user.id - ) + mock_session.query().filter_by.assert_called_with(dataset_id=self.dataset.id, account_id=self.normal_user.id) - @patch('services.dataset_service.db.session') + @patch("services.dataset_service.db.session") def test_partial_team_permission_non_creator_without_permission_fails(self, mock_session): """Test that non-creators without explicit permission are denied access""" self.dataset.permission = DatasetPermissionEnum.PARTIAL_TEAM - + # Create a different user (not the creator) other_user = Mock(spec=Account) other_user.id = "other-user-123" other_user.current_tenant_id = self.tenant_id other_user.current_role = TenantAccountRole.NORMAL - + # Mock database query to return None (no permission record) mock_session.query().filter_by().first.return_value = None - + with pytest.raises(NoPermissionError, match="You do not have permission to access this dataset."): DatasetService.check_dataset_permission(self.dataset, other_user) @@ -144,21 +138,21 @@ class TestDatasetPermissionService: """Test that the method correctly uses DatasetPermissionEnum.PARTIAL_TEAM""" # This test ensures we're using the enum instead of string literals self.dataset.permission = DatasetPermissionEnum.PARTIAL_TEAM - + # Creator should always have access DatasetService.check_dataset_permission(self.dataset, self.creator_user) - @patch('services.dataset_service.logging') - @patch('services.dataset_service.db.session') + @patch("services.dataset_service.logging") + @patch("services.dataset_service.db.session") def test_permission_denied_logs_debug_message(self, mock_session, mock_logging): """Test that permission denied events are logged""" self.dataset.permission = DatasetPermissionEnum.PARTIAL_TEAM mock_session.query().filter_by().first.return_value = None - + with pytest.raises(NoPermissionError): DatasetService.check_dataset_permission(self.dataset, self.normal_user) - + # Verify debug message was logged mock_logging.debug.assert_called_with( f"User {self.normal_user.id} does not have permission to access dataset {self.dataset.id}" - ) \ No newline at end of file + )