feat: ingest CLI entry point

Per sub-project-2 plan Task 10. argparse entry wiring named fetcher +
HeuristicProposer into ingest_search/ingest_candidate; --query/--resolve,
--limit, --catalog, --media-root (env HEF_MEDIA_ROOT), --dominant-color.
Unknown archive -> exit 2, deferred archive -> exit 3. Secrets env-only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ben Stull
2026-06-04 06:33:01 -07:00
parent cecc5a0f61
commit 1d7f821ab8
2 changed files with 124 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
import pytest
from tools.ingest_cli import main
def test_help_parses():
with pytest.raises(SystemExit) as e:
main(["--help"])
assert e.value.code == 0
def test_unknown_archive_errors_cleanly(capsys):
rc = main(["bogus", "--query", "x"])
assert rc == 2
assert "unknown archive" in capsys.readouterr().err
def test_missing_query_and_resolve_errors():
assert main(["nasa"]) == 2
def test_deferred_archive_reports_not_implemented(capsys):
rc = main(["musopen", "--query", "bach"])
assert rc == 3
assert "deferred" in capsys.readouterr().err