mirror of
https://github.com/hansjone/netx.git
synced 2026-10-08 23:33:21 +08:00
Introduce workbench operations for multi-vendor NE CRUD/connect-test and Netmiko batch collection with job lifecycle controls, log downloads, and paginated run filters. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1,011 B
Python
35 lines
1,011 B
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
from datetime import datetime
|
|
from unittest.mock import MagicMock
|
|
|
|
from netx_api.collection_job_state import finalize_collection_job
|
|
|
|
|
|
class CollectionJobFinalizeTests(unittest.TestCase):
|
|
def test_paused_job_stays_paused_when_all_runs_terminal(self):
|
|
job = MagicMock()
|
|
job.status = "paused"
|
|
job.ended_at = None
|
|
job.success_count = 0
|
|
job.fail_count = 0
|
|
|
|
run_ok = MagicMock(status="success")
|
|
run_cancel = MagicMock(status="cancelled")
|
|
|
|
db = MagicMock()
|
|
db.query.return_value.filter.return_value.all.return_value = [run_ok, run_cancel]
|
|
db.get.return_value = job
|
|
|
|
finalize_collection_job(db, "job-1")
|
|
|
|
self.assertEqual(job.status, "paused")
|
|
self.assertEqual(job.success_count, 1)
|
|
self.assertEqual(job.fail_count, 1)
|
|
self.assertIsNotNone(job.ended_at)
|
|
db.commit.assert_called_once()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|