Enforce authenticated user and login validation in workspace operations, crashing program on failure instead of fallback defaults

This commit is contained in:
Michael Ingvarsson
2026-07-16 12:36:54 +02:00
parent c5dd178fd6
commit f08c7b64c1
2 changed files with 69 additions and 26 deletions
+44
View File
@@ -33,9 +33,19 @@ def test_workspace_manager_configure_repo_user(
@patch("gitea.workspace.subprocess.run")
@patch("gitea.workspace.GiteaClient")
def test_workspace_manager_clone_repo(
mock_client_class: MagicMock,
mock_run: MagicMock
) -> None:
mock_client = MagicMock()
mock_client_class.return_value = mock_client
mock_user = MagicMock()
mock_user.full_name = "Agent Tester"
mock_user.login = "agent-test"
mock_user.email = "agent-test@example.com"
mock_client.get_authenticated_user.return_value = mock_user
workspace = WorkspaceManager()
with patch.object(workspace, "_configure_repo_user") as mock_configure:
@@ -51,3 +61,37 @@ def test_workspace_manager_clone_repo(
assert "clone" in args
assert any("http.extraHeader=Authorization: Basic" in arg for arg in args)
mock_configure.assert_called_once_with(mock_repo_path)
@patch("gitea.workspace.GiteaClient")
def test_workspace_manager_fails_if_no_authenticated_user(
mock_client_class: MagicMock
) -> None:
mock_client = MagicMock()
mock_client_class.return_value = mock_client
mock_client.get_authenticated_user.return_value = None
workspace = WorkspaceManager()
with pytest.raises(RuntimeError, match="No authenticated user found."):
workspace.clone_repo("meeks/repo1")
with pytest.raises(RuntimeError, match="No authenticated user found."):
workspace._configure_repo_user(Path("/tmp/mock-repo"))
@patch("gitea.workspace.GiteaClient")
def test_workspace_manager_fails_if_authenticated_user_has_no_login(
mock_client_class: MagicMock
) -> None:
mock_client = MagicMock()
mock_client_class.return_value = mock_client
mock_user = MagicMock()
mock_user.login = ""
mock_client.get_authenticated_user.return_value = mock_user
workspace = WorkspaceManager()
with pytest.raises(RuntimeError, match="No authenticated user found."):
workspace.clone_repo("meeks/repo1")
with pytest.raises(RuntimeError, match="No authenticated user found."):
workspace._configure_repo_user(Path("/tmp/mock-repo"))