test: add comprehensive tests across modules to increase coverage above 60%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
"""Tests for app/tasks/extract_metadata_with_gpt.py module."""
|
||||
import pytest
|
||||
|
||||
from app.tasks.extract_metadata_with_gpt import extract_json_from_text
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
class TestExtractJsonFromText:
|
||||
"""Tests for extract_json_from_text function."""
|
||||
|
||||
def test_extracts_json_from_backticks(self):
|
||||
"""Test extraction of JSON from triple-backtick block."""
|
||||
text = '```json\n{"key": "value"}\n```'
|
||||
result = extract_json_from_text(text)
|
||||
assert result == '{"key": "value"}'
|
||||
|
||||
def test_extracts_json_from_backticks_no_lang(self):
|
||||
"""Test extraction from backticks without language tag."""
|
||||
text = '```\n{"key": "value"}\n```'
|
||||
result = extract_json_from_text(text)
|
||||
assert result == '{"key": "value"}'
|
||||
|
||||
def test_extracts_json_from_raw_text(self):
|
||||
"""Test extraction from raw text with JSON."""
|
||||
text = 'Here is the result: {"key": "value"} end.'
|
||||
result = extract_json_from_text(text)
|
||||
assert result == '{"key": "value"}'
|
||||
|
||||
def test_returns_none_for_no_json(self):
|
||||
"""Test returns None when no JSON found."""
|
||||
text = "No JSON here at all."
|
||||
result = extract_json_from_text(text)
|
||||
assert result is None
|
||||
|
||||
def test_extracts_complex_json(self):
|
||||
"""Test extraction of complex JSON."""
|
||||
text = '{"filename": "2024-01-01_Invoice", "tags": ["test", "invoice"], "amount": 100}'
|
||||
result = extract_json_from_text(text)
|
||||
assert '"filename"' in result
|
||||
assert '"tags"' in result
|
||||
Reference in New Issue
Block a user