|
1 | 1 | from pathlib import Path |
2 | 2 | import os |
| 3 | +from unittest.mock import patch, MagicMock |
| 4 | +from packaging.version import Version |
3 | 5 |
|
4 | 6 | try: |
5 | 7 | import tomllib as toml |
@@ -69,3 +71,39 @@ def test_check_file_sets_is_stable_false_for_beta(tmp_path, monkeypatch): |
69 | 71 | assert data["packaging"]["is_stable"] is False |
70 | 72 | # title still populated |
71 | 73 | assert data["packaging"]["title"] == "FooClient" |
| 74 | + |
| 75 | + |
| 76 | +def test_get_version_info_treats_0_0_0_as_invalid(): |
| 77 | + """get_version_info should return empty strings when the latest PyPI version is 0.0.0.""" |
| 78 | + with patch("pypi_tools.pypi.PyPIClient") as MockClient: |
| 79 | + mock_client = MagicMock() |
| 80 | + MockClient.return_value = mock_client |
| 81 | + mock_client.get_ordered_versions.return_value = [Version("0.0.0")] |
| 82 | + |
| 83 | + result = pu.get_version_info("azure-some-package", tag_is_stable=False) |
| 84 | + |
| 85 | + assert result == ("", "") |
| 86 | + |
| 87 | + |
| 88 | +def test_get_version_info_treats_0_0_0_prerelease_as_invalid(): |
| 89 | + """get_version_info should return empty strings when the latest PyPI version is 0.0.0b1.""" |
| 90 | + with patch("pypi_tools.pypi.PyPIClient") as MockClient: |
| 91 | + mock_client = MagicMock() |
| 92 | + MockClient.return_value = mock_client |
| 93 | + mock_client.get_ordered_versions.return_value = [Version("0.0.0b1")] |
| 94 | + |
| 95 | + result = pu.get_version_info("azure-some-package", tag_is_stable=False) |
| 96 | + |
| 97 | + assert result == ("", "") |
| 98 | + |
| 99 | + |
| 100 | +def test_get_version_info_does_not_filter_0_0_0_1(): |
| 101 | + """get_version_info should NOT filter 0.0.0.1 — its base version is not 0.0.0.""" |
| 102 | + with patch("pypi_tools.pypi.PyPIClient") as MockClient: |
| 103 | + mock_client = MagicMock() |
| 104 | + MockClient.return_value = mock_client |
| 105 | + mock_client.get_ordered_versions.return_value = [Version("0.0.0.1")] |
| 106 | + |
| 107 | + result = pu.get_version_info("azure-some-package", tag_is_stable=False) |
| 108 | + |
| 109 | + assert result != ("", "") |
0 commit comments