DEVX-76: feat: add --auto-login to publish, extract configure_tea_login to gitea_cli

This commit is contained in:
emil
2026-06-27 13:04:06 +00:00
parent ecd10241fb
commit a9fd1a47af
9 changed files with 199 additions and 74 deletions
+34
View File
@@ -551,3 +551,37 @@ class TestFromTag:
result = runner.invoke(main, ["", "owner/repo", "--skip-build"])
assert result.exit_code != 0
assert "Tag is required" in result.output
class TestPublishAutoLogin:
"""Tests for --auto-login flag in publish."""
@patch.dict("os.environ", {"REPO_TOKEN": "tok"})
@patch("devx.ci.publish.configure_tea_login")
@patch("devx.ci.publish.TeaCLI")
def test_auto_login_calls_configure(self, mock_tea_cls: MagicMock, mock_login: MagicMock) -> None:
"""--auto-login calls configure_tea_login before creating release."""
mock_tea = MagicMock()
mock_tea.list_releases.return_value = []
mock_tea.create_release.return_value = {"tag_name": "v1.0.0"}
mock_tea_cls.return_value = mock_tea
with patch("devx.ci.publish.generate_release_notes", return_value="notes"):
runner = CliRunner()
result = runner.invoke(main, ["v1.0.0", "owner/repo", "--skip-build", "--auto-login"])
assert result.exit_code == 0
mock_login.assert_called_once()
@patch.dict("os.environ", {"REPO_TOKEN": "tok"})
@patch("devx.ci.publish.configure_tea_login")
@patch("devx.ci.publish.TeaCLI")
def test_no_auto_login_skips_configure(self, mock_tea_cls: MagicMock, mock_login: MagicMock) -> None:
"""Without --auto-login, configure_tea_login is not called."""
mock_tea = MagicMock()
mock_tea.list_releases.return_value = []
mock_tea.create_release.return_value = {"tag_name": "v1.0.0"}
mock_tea_cls.return_value = mock_tea
with patch("devx.ci.publish.generate_release_notes", return_value="notes"):
runner = CliRunner()
result = runner.invoke(main, ["v1.0.0", "owner/repo", "--skip-build"])
assert result.exit_code == 0
mock_login.assert_not_called()