Skip to content

Commit 15803d7

Browse files
committed
Delete functions and tests that are not used
1 parent e170b7d commit 15803d7

File tree

2 files changed

+1
-227
lines changed

2 files changed

+1
-227
lines changed

comfy_cli/command/install.py

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -412,27 +412,6 @@ def handle_github_rate_limit(response):
412412
raise GitHubRateLimitError(message)
413413

414414

415-
def fetch_github_releases(repo_owner: str, repo_name: str) -> list[dict[str, str]]:
416-
"""
417-
Fetch the list of releases from the GitHub API.
418-
Handles rate limiting by logging the wait time.
419-
"""
420-
url = f"https://api.github.com/repos/{repo_owner}/{repo_name}/releases"
421-
422-
headers = {}
423-
if github_token := os.getenv("GITHUB_TOKEN"):
424-
headers["Authorization"] = f"Bearer {github_token}"
425-
426-
response = requests.get(url, headers=headers, timeout=5)
427-
428-
# Handle rate limiting
429-
if response.status_code in (403, 429):
430-
handle_github_rate_limit(response)
431-
432-
response.raise_for_status()
433-
return response.json()
434-
435-
436415
class GithubRelease(TypedDict):
437416
"""
438417
A dictionary representing a GitHub release.
@@ -448,41 +427,6 @@ class GithubRelease(TypedDict):
448427
download_url: str
449428

450429

451-
def parse_releases(releases: list[dict[str, str]]) -> list[GithubRelease]:
452-
"""
453-
Parse the list of releases fetched from the GitHub API into a list of GithubRelease objects.
454-
"""
455-
parsed_releases: list[GithubRelease] = []
456-
for release in releases:
457-
tag = release["tag_name"]
458-
if tag.lower() in ["latest", "nightly"]:
459-
parsed_releases.append({"version": None, "download_url": release["zipball_url"], "tag": tag})
460-
else:
461-
version = semver.VersionInfo.parse(tag.lstrip("v"))
462-
parsed_releases.append({"version": version, "download_url": release["zipball_url"], "tag": tag})
463-
464-
return parsed_releases
465-
466-
467-
def select_version(releases: list[GithubRelease], version: str) -> GithubRelease | None:
468-
"""
469-
Given a list of Github releases, select the release that matches the specified version.
470-
"""
471-
if version.lower() == "latest":
472-
return next((r for r in releases if r["tag"].lower() == version.lower()), None)
473-
474-
version = version.lstrip("v")
475-
476-
try:
477-
requested_version = semver.VersionInfo.parse(version)
478-
return next(
479-
(r for r in releases if isinstance(r["version"], semver.VersionInfo) and r["version"] == requested_version),
480-
None,
481-
)
482-
except ValueError:
483-
return None
484-
485-
486430
def clone_comfyui(url: str, repo_dir: str):
487431
"""
488432
Clone the ComfyUI repository from the specified URL.

tests/comfy_cli/test_install.py

Lines changed: 1 addition & 171 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
1-
from unittest.mock import MagicMock, patch
2-
31
import pytest
4-
import requests
5-
import semver
62

7-
from comfy_cli.command.install import (
8-
GithubRelease,
9-
fetch_github_releases,
10-
parse_releases,
11-
select_version,
12-
validate_version,
13-
)
3+
from comfy_cli.command.install import validate_version
144

155

166
def test_validate_version_nightly():
@@ -39,166 +29,6 @@ def test_validate_version_empty():
3929
validate_version("")
4030

4131

42-
# Tests for fetch_github_releases function
43-
@patch("requests.get")
44-
def test_fetch_releases_success(mock_get):
45-
# Mock the response
46-
mock_response = MagicMock()
47-
mock_response.json.return_value = [{"id": 1, "tag_name": "v1.0.0"}, {"id": 2, "tag_name": "v1.1.0"}]
48-
mock_get.return_value = mock_response
49-
50-
releases = fetch_github_releases("owner", "repo")
51-
52-
assert len(releases) == 2
53-
assert releases[0]["tag_name"] == "v1.0.0"
54-
assert releases[1]["tag_name"] == "v1.1.0"
55-
mock_get.assert_called_once_with("https://api.github.com/repos/owner/repo/releases", headers={}, timeout=5)
56-
57-
58-
@patch("requests.get")
59-
def test_fetch_releases_empty(mock_get):
60-
# Mock an empty response
61-
mock_response = MagicMock()
62-
mock_response.json.return_value = []
63-
mock_get.return_value = mock_response
64-
65-
releases = fetch_github_releases("owner", "repo")
66-
67-
assert len(releases) == 0
68-
69-
70-
@patch("requests.get")
71-
def test_fetch_releases_error(mock_get):
72-
# Mock a request exception
73-
mock_get.side_effect = requests.RequestException("API error")
74-
75-
with pytest.raises(requests.RequestException):
76-
fetch_github_releases("owner", "repo")
77-
78-
79-
def test_parse_releases_with_semver():
80-
input_releases = [
81-
{"tag_name": "v1.2.3", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/v1.2.3"},
82-
{"tag_name": "2.0.0", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/2.0.0"},
83-
]
84-
85-
result = parse_releases(input_releases)
86-
87-
assert len(result) == 2
88-
assert result[0]["version"] == semver.VersionInfo.parse("1.2.3")
89-
assert result[0]["tag"] == "v1.2.3"
90-
assert result[0]["download_url"] == "https://api.github.com/repos/owner/repo/zipball/v1.2.3"
91-
assert result[1]["version"] == semver.VersionInfo.parse("2.0.0")
92-
assert result[1]["tag"] == "2.0.0"
93-
94-
95-
def test_parse_releases_with_special_tags():
96-
input_releases = [
97-
{"tag_name": "latest", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/latest"},
98-
{"tag_name": "nightly", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/nightly"},
99-
]
100-
101-
result = parse_releases(input_releases)
102-
103-
assert len(result) == 2
104-
assert result[0]["version"] is None
105-
assert result[0]["tag"] == "latest"
106-
assert result[1]["version"] is None
107-
assert result[1]["tag"] == "nightly"
108-
109-
110-
def test_parse_releases_mixed():
111-
input_releases = [
112-
{"tag_name": "v1.0.0", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/v1.0.0"},
113-
{"tag_name": "latest", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/latest"},
114-
{"tag_name": "2.0.0-beta", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/2.0.0-beta"},
115-
]
116-
117-
result = parse_releases(input_releases)
118-
119-
assert len(result) == 3
120-
assert result[0]["version"] == semver.VersionInfo.parse("1.0.0")
121-
assert result[1]["version"] is None
122-
assert result[1]["tag"] == "latest"
123-
assert result[2]["version"] == semver.VersionInfo.parse("2.0.0-beta")
124-
125-
126-
def test_parse_releases_empty_list():
127-
input_releases: list[dict[str, str]] = []
128-
129-
result = parse_releases(input_releases)
130-
131-
assert len(result) == 0
132-
133-
134-
def test_parse_releases_invalid_semver():
135-
input_releases = [
136-
{"tag_name": "invalid", "zipball_url": "https://api.github.com/repos/owner/repo/zipball/invalid"},
137-
]
138-
139-
with pytest.raises(ValueError):
140-
parse_releases(input_releases)
141-
142-
143-
# Sample data for tests
144-
sample_releases: list[GithubRelease] = [
145-
{"version": semver.VersionInfo.parse("1.0.0"), "tag": "v1.0.0", "download_url": "url1"},
146-
{"version": semver.VersionInfo.parse("1.1.0"), "tag": "v1.1.0", "download_url": "url2"},
147-
{"version": semver.VersionInfo.parse("2.0.0"), "tag": "v2.0.0", "download_url": "url3"},
148-
{"version": None, "tag": "latest", "download_url": "url_latest"},
149-
{"version": None, "tag": "nightly", "download_url": "url_nightly"},
150-
]
151-
152-
153-
def test_select_version_latest():
154-
result = select_version(sample_releases, "latest")
155-
assert result is not None
156-
assert result["tag"] == "latest"
157-
assert result["download_url"] == "url_latest"
158-
159-
160-
def test_select_version_specific():
161-
result = select_version(sample_releases, "1.1.0")
162-
assert result is not None
163-
assert result["version"] == semver.VersionInfo.parse("1.1.0")
164-
assert result["tag"] == "v1.1.0"
165-
166-
167-
def test_select_version_with_v_prefix():
168-
result = select_version(sample_releases, "v2.0.0")
169-
assert result is not None
170-
assert result["version"] == semver.VersionInfo.parse("2.0.0")
171-
assert result["tag"] == "v2.0.0"
172-
173-
174-
def test_select_version_nonexistent():
175-
result = select_version(sample_releases, "3.0.0")
176-
assert result is None
177-
178-
179-
def test_select_version_invalid():
180-
result = select_version(sample_releases, "invalid_version")
181-
assert result is None
182-
183-
184-
def test_select_version_case_insensitive_latest():
185-
result = select_version(sample_releases, "LATEST")
186-
assert result is not None
187-
assert result["tag"] == "latest"
188-
189-
190-
def test_select_version_nightly():
191-
# Note: This test will fail with the current implementation
192-
# as it doesn't handle "nightly" specifically
193-
result = select_version(sample_releases, "nightly")
194-
assert result is None # or assert result is not None if you want to handle nightly
195-
196-
197-
def test_select_version_empty_list():
198-
result = select_version([], "1.0.0")
199-
assert result is None
200-
201-
20232
# Run the tests
20333
if __name__ == "__main__":
20434
pytest.main([__file__])

0 commit comments

Comments
 (0)