|
1 | 1 | # Copyright (C) 2025 Intel Corporation |
2 | 2 | # SPDX-License-Identifier: Apache-2.0 |
3 | 3 | import asyncio |
| 4 | +from datetime import datetime, timezone |
4 | 5 | from unittest.mock import AsyncMock, MagicMock, patch |
5 | 6 |
|
6 | 7 | import pytest |
| 8 | +from freezegun import freeze_time |
7 | 9 | from sqlalchemy.exc import IntegrityError |
8 | 10 |
|
9 | 11 | from exceptions import DuplicateJobException, ResourceNotFoundException |
@@ -147,14 +149,25 @@ def test_get_pending_train_job(self, fxt_job_repository, fxt_job, job_exists, ex |
147 | 149 | fxt_job_repository.get_pending_job_by_type.assert_called_once_with(JobType.TRAINING) |
148 | 150 |
|
149 | 151 | @pytest.mark.parametrize( |
150 | | - "has_message,message,expected_updates", |
| 152 | + "has_message,message", |
151 | 153 | [ |
152 | | - (True, "Test message", {"status": JobStatus.COMPLETED, "message": "Test message", "progress": 100}), |
153 | | - (False, None, {"status": JobStatus.COMPLETED, "progress": 100}), |
| 154 | + (True, "Test message"), |
| 155 | + (False, None), |
154 | 156 | ], |
155 | 157 | ) |
156 | | - def test_update_job_status_success(self, fxt_job_repository, fxt_job, has_message, message, expected_updates): |
| 158 | + @freeze_time("2025-01-01 00:00:00") |
| 159 | + def test_update_job_status_success(self, fxt_job_repository, fxt_job, has_message, message): |
157 | 160 | """Test updating job status successfully with and without message.""" |
| 161 | + # Expected updates include end_time since status is COMPLETED |
| 162 | + frozen_time = datetime(2025, 1, 1, 0, 0, 0, tzinfo=timezone.utc) |
| 163 | + expected_updates = { |
| 164 | + "status": JobStatus.COMPLETED, |
| 165 | + "end_time": frozen_time, |
| 166 | + "progress": 100, |
| 167 | + } |
| 168 | + if has_message: |
| 169 | + expected_updates["message"] = message |
| 170 | + |
158 | 171 | # Create an updated job object that the repository would return |
159 | 172 | updated_job = fxt_job.model_copy(update=expected_updates) |
160 | 173 | fxt_job_repository.get_by_id.return_value = fxt_job |
|
0 commit comments