Files
hkuds--lightrag/tests/api/routes/test_supported_extensions_markdown.py
2026-07-13 12:08:54 +08:00

49 lines
1.8 KiB
Python

"""Upload allowlist exposes the native markdown suffixes (.md / .textpack).
``DocumentManager.supported_extensions`` derives the uploadable suffix set
live from the parser registry + routing: a suffix is advertised only when an
unhinted ``x.<suffix>`` routes to an engine that actually supports it. These
tests pin that ``.md`` and ``.textpack`` are uploadable (and routable), and
that ``.textpack`` resolves to the native engine.
"""
import importlib
import sys
import pytest
# document_routes parses argv at import time; guard it like the sibling tests.
_original_argv = sys.argv[:]
sys.argv = [sys.argv[0]]
_document_routes = importlib.import_module("lightrag.api.routers.document_routes")
_parser_routing = importlib.import_module("lightrag.parser.routing")
sys.argv = _original_argv
DocumentManager = _document_routes.DocumentManager
resolve_file_parser_engine = _parser_routing.resolve_file_parser_engine
@pytest.fixture
def doc_manager(tmp_path, monkeypatch):
# Clear any ambient LIGHTRAG_PARSER so the default routing applies:
# .md -> legacy (opt-in for native), .textpack -> native.
monkeypatch.delenv("LIGHTRAG_PARSER", raising=False)
return DocumentManager(str(tmp_path))
def test_textpack_and_md_are_uploadable(doc_manager):
extensions = doc_manager.supported_extensions
assert ".textpack" in extensions
assert ".md" in extensions
def test_bare_textpack_is_supported_file_via_native(doc_manager, monkeypatch):
monkeypatch.delenv("LIGHTRAG_PARSER", raising=False)
assert doc_manager.is_supported_file("note.textpack") is True
assert resolve_file_parser_engine("note.textpack") == "native"
def test_md_is_supported_file(doc_manager, monkeypatch):
monkeypatch.delenv("LIGHTRAG_PARSER", raising=False)
assert doc_manager.is_supported_file("doc.md") is True