from unittest.mock import MagicMock from gitea.client import GiteaClient from gitea.tools.git_tools import GitTools def _create_mock_client() -> MagicMock: """Create a mock GiteaClient with sub-client attributes.""" mock_client: MagicMock = MagicMock(spec=GiteaClient) mock_client.files = MagicMock() return mock_client def test_create_branch_success() -> None: mock_client = _create_mock_client() mock_client.files.create_ref.return_value = {} git_tools: GitTools = GitTools(mock_client) res: str = git_tools.create_branch("owner", "repo", "ref", "sha") assert res == "Branch 'ref' created successfully in owner/repo." mock_client.files.create_ref.assert_called_once_with("owner", "repo", "ref", "sha") def test_create_branch_failure() -> None: mock_client = _create_mock_client() mock_client.files.create_ref.side_effect = Exception("API Error") git_tools: GitTools = GitTools(mock_client) res: str = git_tools.create_branch("owner", "repo", "ref", "sha") assert res == "Error creating branch: API Error"