31 lines
864 B
Python
31 lines
864 B
Python
"""Shared test fixtures for webscraper."""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Add src to path for imports
|
|
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
|
|
|
|
import pytest
|
|
from unittest.mock import MagicMock
|
|
|
|
@pytest.fixture
|
|
def mock_httpx():
|
|
"""Mock httpx for all network calls."""
|
|
mock_get = MagicMock()
|
|
mock_get.return_value.status_code = 200
|
|
mock_get.return_value.text = "<html><body>Test</body></html>"
|
|
mock_get.return_value.headers = {"content-type": "text/html"}
|
|
|
|
with MagicMock() as mock_module:
|
|
mock_module.get.return_value = mock_get
|
|
sys.modules["httpx"] = mock_module
|
|
yield mock_module
|
|
|
|
@pytest.fixture
|
|
def mock_bs4():
|
|
"""Mock BeautifulSoup for parsing."""
|
|
from bs4 import BeautifulSoup
|
|
soup = BeautifulSoup("<html><body>Test</body></html>", "html.parser")
|
|
return soup
|