import tarfile from collections import defaultdict import pytest from src.scraper.download import ( download_page, download_issue, download_commit_activity, ) @pytest.fixture def valid_github_token(): return "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" @pytest.fixture def invalid_github_token(): return "ghp_invalid" @pytest.fixture def valid_issue_id(): return 192213 # Replace with a valid issue ID @pytest.fixture def invalid_issue_id(): return -1 def test_download_page_normal_execution(valid_github_token): page = 1 tar_file_name = "test_archive.tar" with tarfile.open(tar_file_name, "w") as tar_file: result = download_page(page, valid_github_token, tar_file) assert result is True def test_download_page_invalid_page(valid_github_token): page = -1 # Invalid page number tar_file_name = "test_archive.tar" with pytest.raises(ValueError): with tarfile.open(tar_file_name, "w") as tar_file: download_page(page, valid_github_token, tar_file) def test_download_page_ok(valid_github_token): page = 1 tar_file_name = "test_archive.tar" with tarfile.open(tar_file_name, "w") as tar_file: result = download_page(page, valid_github_token, tar_file) assert result is True def test_download_issue_valid_issue_id(valid_issue_id, valid_github_token): result = download_issue(valid_issue_id, valid_github_token) assert type(result) is dict def test_download_issue_invalid_issue_id(invalid_issue_id, valid_github_token): with pytest.raises(IOError): download_issue(invalid_issue_id, valid_github_token) def test_download_commit_activity_valid_token(valid_github_token): result = download_commit_activity(valid_github_token) assert type(result) is defaultdict def test_download_commit_activity_invalid_token(invalid_github_token): with pytest.raises(IOError): download_commit_activity(invalid_github_token)