fix(review): align quality threshold, cap + DRY scan coverage, warn on failure
Address PR #863 review: - MIN_TEXT_QUALITY 0.45 -> 0.5 so the module/diagnostic default matches the DOCUMENT_OCR_MIN_TEXT_QUALITY setting (registry always passes the setting; this keeps classify_pdf and the test/default path on the production threshold). - image_coverage_per_page is bounded to MAX_SAMPLED_PAGES (the image pass is the costly part, so a 200-page scan isn't fully rasterised on the hot path); pages beyond the cap fall back to the text-quality signal, and page_fraction still gates over every page. - Extracted _page_image_coverage(page) helper, shared by classify_pdf and image_coverage_per_page (DRY + keeps the tiling-double-count note in one place). - Scan-detection failure logs at WARNING (not DEBUG) so a systematic failure on an OCR-enabled tenant is visible at LOG_LEVEL=INFO. - Add the missing DOCUMENT_OCR_MIN_PAGE_CHARS range-validator test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b1f347b8fc
commit
fbc9a3a675
@@ -397,6 +397,14 @@ class TestDynaconfValidators:
|
||||
with pytest.raises(ValidationError, match="DOCUMENT_OCR_PAGE_FRACTION"):
|
||||
_reload_config()
|
||||
|
||||
@patch.dict(os.environ, {"DOCUMENT_OCR_MIN_PAGE_CHARS": "-1"}, clear=True)
|
||||
def test_ocr_min_page_chars_negative(self):
|
||||
"""DOCUMENT_OCR_MIN_PAGE_CHARS must be non-negative."""
|
||||
from dynaconf import ValidationError
|
||||
|
||||
with pytest.raises(ValidationError, match="DOCUMENT_OCR_MIN_PAGE_CHARS"):
|
||||
_reload_config()
|
||||
|
||||
@patch.dict(os.environ, {"LOG_LEVEL": "VERBOSE"}, clear=True)
|
||||
def test_invalid_log_level(self):
|
||||
"""Test invalid LOG_LEVEL raises ValidationError."""
|
||||
|
||||
Reference in New Issue
Block a user