test: add edge case tests for unicode, empty repos, malformed API
Add tests for unicode descriptions, repos with no commits and no release, malformed JSON responses, HTML responses, control characters in names, empty and very long descriptions. fixes #13 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -178,6 +178,40 @@ class TestCollectAllLastCommit:
|
||||
assert result[0].last_commit_date is None
|
||||
|
||||
|
||||
class TestRepoDataEdgeCases:
|
||||
"""Test RepoData with edge case data."""
|
||||
|
||||
def test_repo_data_unicode_description(self):
|
||||
"""RepoData with full unicode description (accents, CJK, emojis)."""
|
||||
repo = RepoData(
|
||||
name="unicode-test",
|
||||
full_name="admin/unicode-test",
|
||||
description="Projet avec accents : e, a, u, CJK: 中文, emojis: 🚀🎉",
|
||||
open_issues=0,
|
||||
is_fork=False,
|
||||
is_archived=False,
|
||||
is_mirror=False,
|
||||
latest_release=None,
|
||||
milestones=[],
|
||||
last_commit_date=None,
|
||||
)
|
||||
assert "🚀" in repo.description
|
||||
assert "中文" in repo.description
|
||||
|
||||
def test_collect_all_repo_zero_commits_and_no_release(self):
|
||||
"""Repo with no commits AND no release produces valid RepoData."""
|
||||
client = MagicMock()
|
||||
client.get_repos.return_value = [_make_repo()]
|
||||
client.get_latest_release.return_value = None
|
||||
client.get_milestones.return_value = []
|
||||
client.get_latest_commit.return_value = None
|
||||
|
||||
result = collect_all(client)
|
||||
|
||||
assert result[0].last_commit_date is None
|
||||
assert result[0].latest_release is None
|
||||
|
||||
|
||||
class TestCollectAllFiltering:
|
||||
"""Test collect_all filtering (include/exclude)."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user