mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-12 09:12:40 +02:00
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
|
|
"""Strict Confluence indexer fake for Playwright E2E."""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
import json
|
||
|
|
from pathlib import Path
|
||
|
|
from typing import Any
|
||
|
|
from unittest.mock import patch
|
||
|
|
|
||
|
|
_FIXTURE_PATH = Path(__file__).parent / "fixtures" / "confluence_pages.json"
|
||
|
|
|
||
|
|
|
||
|
|
def _load_fixture() -> dict[str, Any]:
|
||
|
|
with _FIXTURE_PATH.open() as f:
|
||
|
|
return json.load(f)
|
||
|
|
|
||
|
|
|
||
|
|
_FIXTURE = _load_fixture()
|
||
|
|
|
||
|
|
|
||
|
|
class _FakeConfluenceHistoryConnector:
|
||
|
|
def __init__(self, *, session: Any, connector_id: int, **kwargs: Any):
|
||
|
|
del session, kwargs
|
||
|
|
self.connector_id = connector_id
|
||
|
|
|
||
|
|
async def get_pages_by_date_range(
|
||
|
|
self,
|
||
|
|
*,
|
||
|
|
start_date: str,
|
||
|
|
end_date: str,
|
||
|
|
include_comments: bool = False,
|
||
|
|
) -> tuple[list[dict[str, Any]], None]:
|
||
|
|
if not start_date or not end_date:
|
||
|
|
raise ValueError("Confluence indexer fake expected start_date and end_date.")
|
||
|
|
del include_comments
|
||
|
|
return _FIXTURE["pages"], None
|
||
|
|
|
||
|
|
async def close(self) -> None:
|
||
|
|
return None
|
||
|
|
|
||
|
|
def __getattr__(self, name: str) -> Any:
|
||
|
|
raise NotImplementedError(
|
||
|
|
"E2E Confluence indexer fake missing surface: "
|
||
|
|
f"ConfluenceHistoryConnector.{name!r}. "
|
||
|
|
"Add it to surfsense_backend/tests/e2e/fakes/confluence_indexer.py."
|
||
|
|
)
|
||
|
|
|
||
|
|
|
||
|
|
def install(active_patches: list[Any]) -> None:
|
||
|
|
"""Patch only the Confluence indexer's bound connector class."""
|
||
|
|
p = patch(
|
||
|
|
"app.tasks.connector_indexers.confluence_indexer.ConfluenceHistoryConnector",
|
||
|
|
_FakeConfluenceHistoryConnector,
|
||
|
|
)
|
||
|
|
p.start()
|
||
|
|
active_patches.append(p)
|