overworker / tests /test_url_parser.py
luguog's picture
Upload tests/test_url_parser.py with huggingface_hub
b53b3f6 verified
"""Tests for GitHub URL parsing."""
import pytest
from github_ingestion import GitHubIngestor
def test_parse_github_url():
"""Test GitHub URL parsing."""
ingestor = GitHubIngestor()
# Test various URL formats
test_cases = [
("https://github.com/owner/repo", ("owner", "repo")),
("https://github.com/owner/repo.git", ("owner", "repo")),
("https://github.com/owner/repo/", ("owner", "repo")),
("github.com/owner/repo", ("owner", "repo")),
]
for url, expected in test_cases:
result = ingestor.parse_repo_url(url)
assert result == expected
def test_parse_invalid_url():
"""Test that invalid URLs raise ValueError."""
ingestor = GitHubIngestor()
invalid_urls = [
"https://notgithub.com/owner/repo",
"https://github.com/owner",
"invalid-url",
"",
]
for url in invalid_urls:
with pytest.raises(ValueError):
ingestor.parse_repo_url(url)
def test_validate_github_url():
"""Test GitHub URL validation from main.py."""
from main import RepoRequest
# Valid URLs
valid_urls = [
"https://github.com/owner/repo",
"https://github.com/owner/repo-name",
"https://github.com/owner/repo.name",
]
for url in valid_urls:
request = RepoRequest(url=url)
assert request.validate_github_url() is True
# Invalid URLs
invalid_urls = [
"https://notgithub.com/owner/repo",
"https://github.com/owner",
"invalid-url",
]
for url in invalid_urls:
request = RepoRequest(url=url)
with pytest.raises(ValueError):
request.validate_github_url()