test: assert unregistered id-field queries actually match nothing

test_unregistered_id_field_folds_to_literal_text_not_error only checked
that parse_user_query() didn't raise for a query like tag_id:5. Add a
result-level acceptance test (matching test_acceptance.py's
_matched_ids pattern, indexed against real documents) that asserts the
matched-document-ID set is genuinely empty, not just that the parse
step succeeds.
This commit is contained in:
Trenton Holmes
2026-08-19 13:36:53 -07:00
committed by stumpylog
parent f5e7d309af
commit 35917be2d4
2 changed files with 19 additions and 0 deletions
@@ -245,3 +245,19 @@ class TestMultitokenInNestedOr:
backend.add_or_update(doc_b)
matched = _matched_ids(backend, 'tag:"multi word tag" OR title:B')
assert matched == {doc_a.pk, doc_b.pk}
class TestUnregisteredIdFieldFoldsToLiteralText:
"""tag_id, owner_id, etc. are intentionally excluded from the
FieldRegistry - whoosh-compat parity leniency folds them into a literal
text search rather than raising a diagnostic/400 (see docs/usage.md's
advanced-search section). Prove the fold is inert against real data, not
just that parsing doesn't raise."""
def test_tag_id_query_matches_nothing(
self,
backend: TantivyBackend,
indexed_documents: dict[str, int],
) -> None:
matched = _matched_ids(backend, "tag_id:5")
assert matched == set()