DEVX-38: fix: clean dist/ before build and add workflow_dispatch to publish

This commit is contained in:
emil
2026-06-24 19:02:02 +00:00
parent 7fa1c4450c
commit cb037aa69c
3 changed files with 29 additions and 3 deletions
+15 -2
View File
@@ -1,5 +1,6 @@
"""Unit tests for devx.ci.publish."""
from pathlib import Path
from unittest.mock import MagicMock, patch
import click
@@ -64,7 +65,8 @@ class TestGenerateReleaseNotes:
class TestBuildPackage:
@patch("devx.ci.publish.subprocess.run")
def test_success(self, mock_run: MagicMock) -> None:
@patch("devx.ci.publish.Path.exists", return_value=False)
def test_success(self, mock_exists: MagicMock, mock_run: MagicMock) -> None:
mock_run.return_value = MagicMock(returncode=0, stderr="")
build_package()
args, _ = mock_run.call_args
@@ -72,12 +74,23 @@ class TestBuildPackage:
assert args[0][2] == "build"
@patch("devx.ci.publish.subprocess.run")
def test_failure_raises(self, mock_run: MagicMock) -> None:
@patch("devx.ci.publish.Path.exists", return_value=False)
def test_failure_raises(self, mock_exists: MagicMock, mock_run: MagicMock) -> None:
mock_run.return_value = MagicMock(returncode=1, stderr="build error")
with pytest.raises(click.ClickException) as exc:
build_package()
assert "build" in str(exc.value)
@patch("devx.ci.publish.subprocess.run")
@patch("devx.ci.publish.shutil.rmtree")
@patch("devx.ci.publish.Path.exists", return_value=True)
def test_cleans_dist_before_build(
self, mock_exists: MagicMock, mock_rmtree: MagicMock, mock_run: MagicMock
) -> None:
mock_run.return_value = MagicMock(returncode=0, stderr="")
build_package()
mock_rmtree.assert_called_once_with(Path("dist"))
class TestPublishToPypi:
@patch("devx.ci.publish.subprocess.run")