feat: add souls directory integration with search and fetch functionality

This commit is contained in:
Abhimanyu Saharan
2026-02-08 00:46:10 +05:30
parent 527cc13c63
commit 460d4adddf
8 changed files with 395 additions and 2 deletions

View File

@@ -0,0 +1,29 @@
from __future__ import annotations
from app.services.souls_directory import SoulRef, _parse_sitemap_soul_refs, search_souls
def test_parse_sitemap_extracts_soul_refs() -> None:
xml = """<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://souls.directory</loc></url>
<url><loc>https://souls.directory/souls/thedaviddias/code-reviewer</loc></url>
<url><loc>https://souls.directory/souls/someone/technical-writer</loc></url>
</urlset>
"""
refs = _parse_sitemap_soul_refs(xml)
assert refs == [
SoulRef(handle="thedaviddias", slug="code-reviewer"),
SoulRef(handle="someone", slug="technical-writer"),
]
def test_search_souls_matches_handle_or_slug() -> None:
refs = [
SoulRef(handle="thedaviddias", slug="code-reviewer"),
SoulRef(handle="thedaviddias", slug="technical-writer"),
SoulRef(handle="someone", slug="pirate-captain"),
]
assert search_souls(refs, query="writer", limit=20) == [refs[1]]
assert search_souls(refs, query="thedaviddias", limit=20) == [refs[0], refs[1]]