fix: data quality query and suppression fallback in recommendation worker

- Fix _DATA_QUALITY_QUERY: remove nonexistent d.source_id/s.source_class,
  use d.source_type directly
- Fix LIMIT 1 applied after jsonb expansion by restructuring as CTE
- Fix fallback build_quality_context_from_summary returning empty
  source_types which always triggered LOW_SOURCE_DIVERSITY suppression
- Update test to reflect corrected fallback behavior
This commit is contained in:
Celes Renata
2026-04-14 06:57:46 +00:00
parent 4fbddc307a
commit b478022ba3
3 changed files with 22 additions and 20 deletions
+3 -6
View File
@@ -128,12 +128,9 @@ def test_fallback_context_from_summary():
def test_no_suppression_with_summary_fallback():
"""When no quality context is provided, summary-based fallback is used."""
summary = _make_summary(confidence=0.7)
# Default config has min_source_types=1, but fallback has empty source_types.
# With min_source_types=1 and empty source_types, LOW_SOURCE_DIVERSITY fires
# only when total_documents > 0. But default min_source_types is 1 and
# len(set()) = 0 < 1, so it would fire. Let's use a config that relaxes this.
config = SuppressionConfig(min_source_types=0)
result = evaluate_suppression(summary, config=config, reference_time=NOW)
# Default config has min_source_types=1. The fallback now returns
# source_types={"unknown"} so LOW_SOURCE_DIVERSITY does not fire.
result = evaluate_suppression(summary, config=SuppressionConfig(), reference_time=NOW)
assert result.suppressed is False