Files
wehub-resource-sync 7a0da7932b
OSV-Scanner (Scheduled) / scan-scheduled (push) Failing after 0s
Create Release / test-gate (push) Has been cancelled
Create Release / release-gate (push) Has been cancelled
Create Release / ci-gate (push) Has been cancelled
Create Release / version-check (push) Has been cancelled
Create Release / e2e-test-gate (push) Has been cancelled
Create Release / responsive-test-gate (push) Has been cancelled
Create Release / compat-test-gate (push) Has been cancelled
Create Release / compose-integration-gate (push) Has been cancelled
Create Release / vulture-gate (push) Has been cancelled
Create Release / build (push) Has been cancelled
Create Release / provenance (push) Has been cancelled
Create Release / prerelease-docker (push) Has been cancelled
Create Release / publish-docker (push) Has been cancelled
Create Release / create-release (push) Has been cancelled
Create Release / cleanup-changelog (push) Has been cancelled
Create Release / trigger-pypi (push) Has been cancelled
Create Release / monitor-pypi (push) Has been cancelled
Create Release / Clean up orphan prerelease tags and signatures (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-form] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-metrics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-workflow] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-core] (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [history-news] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [library] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [link-analytics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-core] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-lifecycle] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [error-benchmark] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) (push) Has been cancelled
Docker Tests (Consolidated) / Accessibility Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Unit Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Example Tests (push) Has been cancelled
Docker Tests (Consolidated) / Production Image Smoke Test (push) Has been cancelled
Docker Tests (Consolidated) / Infrastructure Tests (push) Has been cancelled
OSSF Scorecard / OSSF Security Scorecard Analysis (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [mobile] (push) Has been cancelled
Backwards Compatibility / Verify Encryption Constants (push) Has been cancelled
Backwards Compatibility / PyPI Version Compatibility (push) Has been cancelled
Backwards Compatibility / Database Migration Tests (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Docker Tests (Consolidated) / detect-changes (push) Has been cancelled
Docker Tests (Consolidated) / Build Test Image (push) Has been cancelled
Docker Tests (Consolidated) / All Pytest Tests + Coverage (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [accessibility] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [api-crud] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-login] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-register] (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:08:55 +08:00

100 lines
2.8 KiB
Python

"""
Fixtures for content_fetcher tests.
"""
import pytest
from unittest.mock import MagicMock, patch
@pytest.fixture
def mock_html_response():
"""Mock HTML response for testing."""
return """
<!DOCTYPE html>
<html>
<head>
<title>Test Article Title</title>
<meta name="description" content="This is a test article description.">
<meta name="author" content="Test Author">
</head>
<body>
<nav>Navigation menu to be removed</nav>
<article>
<h1>Main Article Heading</h1>
<p>This is the first paragraph of the article content. It contains important information about the topic being discussed.</p>
<p>This is the second paragraph with more details about the subject matter.</p>
<h2>Subheading</h2>
<p>Additional content under the subheading explaining more concepts.</p>
</article>
<footer>Footer content to be removed</footer>
</body>
</html>
"""
@pytest.fixture
def mock_arxiv_html():
"""Mock arXiv abstract page."""
return """
<!DOCTYPE html>
<html>
<head>
<title>[2301.12345] Attention Is All You Need</title>
</head>
<body>
<div id="abs">
<h1>Attention Is All You Need</h1>
<div class="authors">Vaswani et al.</div>
<blockquote class="abstract">
The dominant sequence transduction models are based on complex recurrent or
convolutional neural networks. We propose a new simple network architecture,
the Transformer, based solely on attention mechanisms.
</blockquote>
</div>
</body>
</html>
"""
@pytest.fixture
def mock_session():
"""Mock requests session."""
mock = MagicMock()
mock.headers = {}
return mock
@pytest.fixture
def mock_successful_response(mock_html_response):
"""Mock successful HTTP response."""
response = MagicMock()
response.status_code = 200
response.text = mock_html_response
response.content = mock_html_response.encode("utf-8")
response.headers = {"content-type": "text/html; charset=utf-8"}
return response
@pytest.fixture
def mock_pdf_response():
"""Mock PDF response (minimal valid PDF)."""
# Minimal PDF content
pdf_content = b"%PDF-1.4\n1 0 obj\n<<>>\nendobj\ntrailer\n<<>>\n%%EOF"
response = MagicMock()
response.status_code = 200
response.content = pdf_content
response.headers = {"content-type": "application/pdf"}
return response
@pytest.fixture
def mock_rate_tracker():
"""Mock rate tracker."""
with patch(
"local_deep_research.research_library.downloaders.html.AdaptiveRateLimitTracker"
) as mock:
tracker = MagicMock()
tracker.apply_rate_limit.return_value = 0
mock.return_value = tracker
yield tracker