mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
"""Tests for indexes.base — None-safe doc_source builder."""
|
|||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from roboco.services.optimal_brain.indexes.base import build_doc_source
|
||
|
|
from roboco.services.optimal_brain.indexes.journals import JournalsIndexPlugin
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# Tests for build_doc_source (module-level helper)
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
|
||
|
|
def test_doc_source_returns_none_when_id_missing() -> None:
|
||
|
|
assert build_doc_source(kind="journals", id_=None) is None
|
||
|
|
|
||
|
|
|
||
|
|
def test_doc_source_with_id() -> None:
|
||
|
|
result = build_doc_source(kind="journals", id_="abc-123")
|
||
|
|
assert result == "roboco://journals/abc-123"
|
||
|
|
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# Tests for JournalsIndexPlugin.build_source_uri
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
|
||
|
|
def test_journals_plugin_build_source_uri_returns_none_when_entry_id_none() -> None:
|
||
|
|
"""build_source_uri returns None when entry_id kwarg is None (the spam scenario)."""
|
||
|
|
plugin = JournalsIndexPlugin.__new__(JournalsIndexPlugin)
|
||
|
|
result = plugin.build_source_uri(doc_id=None, entry_id=None)
|
||
|
|
assert result is None
|
||
|
|
|
||
|
|
|
||
|
|
def test_journals_plugin_build_source_uri_with_entry_id() -> None:
|
||
|
|
"""build_source_uri returns correct URI when entry_id is set."""
|
||
|
|
plugin = JournalsIndexPlugin.__new__(JournalsIndexPlugin)
|
||
|
|
result = plugin.build_source_uri(doc_id=None, entry_id="entry-abc-123")
|
||
|
|
assert result == "roboco://journals/entry-abc-123"
|
||
|
|
|
||
|
|
|
||
|
|
def test_journals_plugin_build_source_uri_falls_back_to_doc_id() -> None:
|
||
|
|
"""build_source_uri falls back to doc_id when entry_id kwarg is absent."""
|
||
|
|
plugin = JournalsIndexPlugin.__new__(JournalsIndexPlugin)
|
||
|
|
result = plugin.build_source_uri(doc_id="fallback-id")
|
||
|
|
assert result == "roboco://journals/fallback-id"
|