fix(tests): update file_queries tests to use FileProcessingStep instead of ProcessingLog
- Replace ProcessingLog with FileProcessingStep in sample_files fixture - Update test comments to reflect using steps instead of logs - All 10 file_queries tests now pass Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
+25
-35
@@ -9,7 +9,7 @@ from sqlalchemy import create_engine
|
|||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
from app.database import Base
|
from app.database import Base
|
||||||
from app.models import FileRecord, ProcessingLog
|
from app.models import FileRecord, FileProcessingStep
|
||||||
from app.utils.file_queries import apply_status_filter
|
from app.utils.file_queries import apply_status_filter
|
||||||
|
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ def db_session():
|
|||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def sample_files(db_session):
|
def sample_files(db_session):
|
||||||
"""Create sample files with different processing statuses."""
|
"""Create sample files with different processing statuses."""
|
||||||
# File 1: pending (no logs)
|
# File 1: pending (no steps)
|
||||||
file1 = FileRecord(
|
file1 = FileRecord(
|
||||||
filehash="hash1",
|
filehash="hash1",
|
||||||
original_filename="pending.pdf",
|
original_filename="pending.pdf",
|
||||||
@@ -39,7 +39,7 @@ def sample_files(db_session):
|
|||||||
db_session.add(file1)
|
db_session.add(file1)
|
||||||
db_session.flush()
|
db_session.flush()
|
||||||
|
|
||||||
# File 2: processing (has in_progress log)
|
# File 2: processing (has in_progress step)
|
||||||
file2 = FileRecord(
|
file2 = FileRecord(
|
||||||
filehash="hash2",
|
filehash="hash2",
|
||||||
original_filename="processing.pdf",
|
original_filename="processing.pdf",
|
||||||
@@ -50,16 +50,14 @@ def sample_files(db_session):
|
|||||||
db_session.add(file2)
|
db_session.add(file2)
|
||||||
db_session.flush()
|
db_session.flush()
|
||||||
|
|
||||||
log2 = ProcessingLog(
|
step2 = FileProcessingStep(
|
||||||
file_id=file2.id,
|
file_id=file2.id,
|
||||||
task_id="task2",
|
|
||||||
step_name="extract_text",
|
step_name="extract_text",
|
||||||
status="in_progress",
|
status="in_progress",
|
||||||
message="Processing...",
|
|
||||||
)
|
)
|
||||||
db_session.add(log2)
|
db_session.add(step2)
|
||||||
|
|
||||||
# File 3: failed (has failure log)
|
# File 3: failed (has failure step)
|
||||||
file3 = FileRecord(
|
file3 = FileRecord(
|
||||||
filehash="hash3",
|
filehash="hash3",
|
||||||
original_filename="failed.pdf",
|
original_filename="failed.pdf",
|
||||||
@@ -70,16 +68,15 @@ def sample_files(db_session):
|
|||||||
db_session.add(file3)
|
db_session.add(file3)
|
||||||
db_session.flush()
|
db_session.flush()
|
||||||
|
|
||||||
log3 = ProcessingLog(
|
step3 = FileProcessingStep(
|
||||||
file_id=file3.id,
|
file_id=file3.id,
|
||||||
task_id="task3",
|
|
||||||
step_name="extract_text",
|
step_name="extract_text",
|
||||||
status="failure",
|
status="failure",
|
||||||
message="Error occurred",
|
error_message="Error occurred",
|
||||||
)
|
)
|
||||||
db_session.add(log3)
|
db_session.add(step3)
|
||||||
|
|
||||||
# File 4: completed (has success log, no failures)
|
# File 4: completed (has success step, no failures)
|
||||||
file4 = FileRecord(
|
file4 = FileRecord(
|
||||||
filehash="hash4",
|
filehash="hash4",
|
||||||
original_filename="completed.pdf",
|
original_filename="completed.pdf",
|
||||||
@@ -90,10 +87,10 @@ def sample_files(db_session):
|
|||||||
db_session.add(file4)
|
db_session.add(file4)
|
||||||
db_session.flush()
|
db_session.flush()
|
||||||
|
|
||||||
log4 = ProcessingLog(file_id=file4.id, task_id="task4", step_name="extract_text", status="success", message="Done")
|
step4 = FileProcessingStep(file_id=file4.id, step_name="extract_text", status="success")
|
||||||
db_session.add(log4)
|
db_session.add(step4)
|
||||||
|
|
||||||
# File 5: completed with multiple success logs
|
# File 5: completed with multiple success steps
|
||||||
file5 = FileRecord(
|
file5 = FileRecord(
|
||||||
filehash="hash5",
|
filehash="hash5",
|
||||||
original_filename="completed2.pdf",
|
original_filename="completed2.pdf",
|
||||||
@@ -104,21 +101,17 @@ def sample_files(db_session):
|
|||||||
db_session.add(file5)
|
db_session.add(file5)
|
||||||
db_session.flush()
|
db_session.flush()
|
||||||
|
|
||||||
log5a = ProcessingLog(
|
step5a = FileProcessingStep(
|
||||||
file_id=file5.id,
|
file_id=file5.id,
|
||||||
task_id="task5a",
|
|
||||||
step_name="extract_text",
|
step_name="extract_text",
|
||||||
status="success",
|
status="success",
|
||||||
message="Step 1 done",
|
|
||||||
)
|
)
|
||||||
log5b = ProcessingLog(
|
step5b = FileProcessingStep(
|
||||||
file_id=file5.id,
|
file_id=file5.id,
|
||||||
task_id="task5b",
|
|
||||||
step_name="extract_metadata_with_gpt",
|
step_name="extract_metadata_with_gpt",
|
||||||
status="success",
|
status="success",
|
||||||
message="Step 2 done",
|
|
||||||
)
|
)
|
||||||
db_session.add_all([log5a, log5b])
|
db_session.add_all([step5a, step5b])
|
||||||
|
|
||||||
# File 6: has success but also failure (should be filtered out from completed)
|
# File 6: has success but also failure (should be filtered out from completed)
|
||||||
file6 = FileRecord(
|
file6 = FileRecord(
|
||||||
@@ -131,21 +124,18 @@ def sample_files(db_session):
|
|||||||
db_session.add(file6)
|
db_session.add(file6)
|
||||||
db_session.flush()
|
db_session.flush()
|
||||||
|
|
||||||
log6a = ProcessingLog(
|
step6a = FileProcessingStep(
|
||||||
file_id=file6.id,
|
file_id=file6.id,
|
||||||
task_id="task6a",
|
|
||||||
step_name="extract_text",
|
step_name="extract_text",
|
||||||
status="success",
|
status="success",
|
||||||
message="Step 1 done",
|
|
||||||
)
|
)
|
||||||
log6b = ProcessingLog(
|
step6b = FileProcessingStep(
|
||||||
file_id=file6.id,
|
file_id=file6.id,
|
||||||
task_id="task6b",
|
|
||||||
step_name="upload_to_s3",
|
step_name="upload_to_s3",
|
||||||
status="failure",
|
status="failure",
|
||||||
message="Upload failed",
|
error_message="Upload failed",
|
||||||
)
|
)
|
||||||
db_session.add_all([log6a, log6b])
|
db_session.add_all([step6a, step6b])
|
||||||
|
|
||||||
db_session.commit()
|
db_session.commit()
|
||||||
|
|
||||||
@@ -172,12 +162,12 @@ def test_apply_status_filter_none(db_session, sample_files):
|
|||||||
|
|
||||||
@pytest.mark.unit
|
@pytest.mark.unit
|
||||||
def test_apply_status_filter_pending(db_session, sample_files):
|
def test_apply_status_filter_pending(db_session, sample_files):
|
||||||
"""Test filtering for pending files (no logs)."""
|
"""Test filtering for pending files (no steps)."""
|
||||||
query = db_session.query(FileRecord)
|
query = db_session.query(FileRecord)
|
||||||
filtered_query = apply_status_filter(query, db_session, "pending")
|
filtered_query = apply_status_filter(query, db_session, "pending")
|
||||||
results = filtered_query.all()
|
results = filtered_query.all()
|
||||||
|
|
||||||
# Should return only file1 (no logs)
|
# Should return only file1 (no steps)
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
assert results[0].filehash == "hash1"
|
assert results[0].filehash == "hash1"
|
||||||
assert results[0].original_filename == "pending.pdf"
|
assert results[0].original_filename == "pending.pdf"
|
||||||
@@ -190,7 +180,7 @@ def test_apply_status_filter_processing(db_session, sample_files):
|
|||||||
filtered_query = apply_status_filter(query, db_session, "processing")
|
filtered_query = apply_status_filter(query, db_session, "processing")
|
||||||
results = filtered_query.all()
|
results = filtered_query.all()
|
||||||
|
|
||||||
# Should return only file2 (has in_progress log)
|
# Should return only file2 (has in_progress step)
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
assert results[0].filehash == "hash2"
|
assert results[0].filehash == "hash2"
|
||||||
assert results[0].original_filename == "processing.pdf"
|
assert results[0].original_filename == "processing.pdf"
|
||||||
@@ -203,7 +193,7 @@ def test_apply_status_filter_failed(db_session, sample_files):
|
|||||||
filtered_query = apply_status_filter(query, db_session, "failed")
|
filtered_query = apply_status_filter(query, db_session, "failed")
|
||||||
results = filtered_query.all()
|
results = filtered_query.all()
|
||||||
|
|
||||||
# Should return file3 and file6 (both have failure logs)
|
# Should return file3 and file6 (both have failure steps)
|
||||||
assert len(results) == 2
|
assert len(results) == 2
|
||||||
filehashes = {r.filehash for r in results}
|
filehashes = {r.filehash for r in results}
|
||||||
assert "hash3" in filehashes
|
assert "hash3" in filehashes
|
||||||
@@ -217,7 +207,7 @@ def test_apply_status_filter_completed(db_session, sample_files):
|
|||||||
filtered_query = apply_status_filter(query, db_session, "completed")
|
filtered_query = apply_status_filter(query, db_session, "completed")
|
||||||
results = filtered_query.all()
|
results = filtered_query.all()
|
||||||
|
|
||||||
# Should return file4 and file5 (success logs, no failures)
|
# Should return file4 and file5 (success steps, no failures)
|
||||||
# file6 should NOT be included (has both success and failure)
|
# file6 should NOT be included (has both success and failure)
|
||||||
assert len(results) == 2
|
assert len(results) == 2
|
||||||
filehashes = {r.filehash for r in results}
|
filehashes = {r.filehash for r in results}
|
||||||
|
|||||||
Reference in New Issue
Block a user