import pytest
import httpx
from omniread.core.content import ContentType
from omniread.html.scraper import HTMLScraper
TEST_HTML = b"""
Test Page
Hello World
Link
"""
def mock_transport(request: httpx.Request) -> httpx.Response:
"""
httpx MockTransport handler.
"""
return httpx.Response(
status_code=200,
headers={"Content-Type": ContentType.HTML.value},
content=TEST_HTML,
request=request,
)
@pytest.fixture
def http_scraper() -> HTMLScraper:
transport = httpx.MockTransport(mock_transport)
client = httpx.Client(transport=transport)
# Patch scraper to use our mocked client
scraper = HTMLScraper()
scraper._client = client # intentional test-only override
return scraper