Skip to content

Commit e9aa5ec

Browse files
committed
test: added missing tests
1 parent d6ddc05 commit e9aa5ec

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

tests/conftest.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
1+
from unittest.mock import MagicMock
2+
13
import pytest
24
from fastapi.testclient import TestClient
5+
from sqlalchemy.orm import Session
6+
37
from app.main import app
48

9+
510
@pytest.fixture
611
def client():
712
return TestClient(app)
813

14+
15+
@pytest.fixture
16+
def fake_db_session():
17+
# A simple mock DB session object
18+
return MagicMock(spec=Session)
19+
920

1021
# @pytest.fixture(autouse=True)
1122
# def disable_auth(monkeypatch):

tests/services/test_processing.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from app.database.models.processing_job import ProcessingJobRecord
66
from app.schemas import BaseJobRequest, ProcessingJobSummary, ProcessType, ProcessingStatusEnum, ServiceDetails
7-
from app.services.processing import create_processing_job
7+
from app.services.processing import create_processing_job, get_processing_jobs_by_user_id
88

99

1010
def make_job_request():
@@ -22,7 +22,7 @@ def make_job_request():
2222

2323
@patch("app.services.processing.save_job_to_db")
2424
@patch("app.services.processing.get_processing_platform")
25-
def test_create_processing_job_calls_platform_execute(mock_get_platform, mock_save_job_to_db):
25+
def test_create_processing_job_calls_platform_execute(mock_get_platform, mock_save_job_to_db, fake_db_session):
2626

2727
# Arrange
2828
fake_job= make_job_request()
@@ -36,7 +36,7 @@ def test_create_processing_job_calls_platform_execute(mock_get_platform, mock_sa
3636

3737
mock_save_job_to_db.return_value =fake_record
3838

39-
result = create_processing_job(None, "foobar", fake_job)
39+
result = create_processing_job(fake_db_session, "foobar", fake_job)
4040

4141
mock_get_platform.assert_called_once_with(fake_job.label)
4242
fake_platform.execute_job.assert_called_once_with(
@@ -48,11 +48,30 @@ def test_create_processing_job_calls_platform_execute(mock_get_platform, mock_sa
4848
assert result == fake_summary
4949

5050

51-
@patch("app.services.processing.save_job_to_db")
5251
@patch("app.services.processing.get_processing_platform")
53-
def test_create_processing_job_platform_raises(mock_get_platform, mock_save_job_to_db):
52+
def test_create_processing_job_platform_raises(mock_get_platform, fake_db_session):
5453
fake_summary = make_job_request()
5554
mock_get_platform.side_effect = ValueError("Unsupported platform")
5655

5756
with pytest.raises(ValueError, match="Unsupported platform"):
58-
create_processing_job(None, "foobar", fake_summary)
57+
create_processing_job(fake_db_session, "foobar", fake_summary)
58+
59+
@patch("app.services.processing.get_jobs_by_user_id")
60+
def test_get_processing_jobs_by_user_id(mock_get_jobs, fake_db_session):
61+
# Arrange
62+
fake_db_records = [
63+
MagicMock(id=1, title="Job 1", status=ProcessingStatusEnum.CREATED),
64+
MagicMock(id=2, title="Job 2", status=ProcessingStatusEnum.CREATED),
65+
]
66+
mock_get_jobs.return_value = fake_db_records
67+
68+
# Act
69+
results = get_processing_jobs_by_user_id(fake_db_session, user="user1")
70+
71+
# Assert
72+
mock_get_jobs.assert_called_once_with(fake_db_session, "user1")
73+
assert len(results) == len(fake_db_records)
74+
for i, job_summary in enumerate(results):
75+
assert job_summary.id == fake_db_records[i].id
76+
assert job_summary.title == fake_db_records[i].title
77+
assert job_summary.status == fake_db_records[i].status

0 commit comments

Comments
 (0)