feat: add ops center and node onboarding flow
This commit is contained in:
96
domain-api/tests/test_ops_api_routes.py
Normal file
96
domain-api/tests/test_ops_api_routes.py
Normal file
@@ -0,0 +1,96 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
from app.api.routes.ops import (
|
||||
ops_doctor_decision,
|
||||
ops_go_live_bundle,
|
||||
ops_go_live_review,
|
||||
ops_go_live_signoff,
|
||||
ops_go_live_summary,
|
||||
)
|
||||
|
||||
|
||||
class OpsApiRoutesTestCase(unittest.TestCase):
|
||||
@patch("app.api.routes.ops.get_ops_go_live_signoff")
|
||||
def test_go_live_signoff_route_uses_service_payload(self, mock_get_ops_go_live_signoff) -> None:
|
||||
mock_get_ops_go_live_signoff.return_value = {
|
||||
"signoff_status": "ready",
|
||||
"headline": "ok",
|
||||
}
|
||||
|
||||
response = ops_go_live_signoff(base_url="http://127.0.0.1:8100", report_dir="/tmp/signoff")
|
||||
|
||||
self.assertEqual(0, response.code)
|
||||
self.assertEqual("ready", response.data["signoff_status"])
|
||||
self.assertEqual("ok", response.data["headline"])
|
||||
mock_get_ops_go_live_signoff.assert_called_once_with(
|
||||
base_url="http://127.0.0.1:8100",
|
||||
report_dir="/tmp/signoff",
|
||||
)
|
||||
|
||||
@patch("app.api.routes.ops.get_ops_go_live_summary")
|
||||
def test_go_live_summary_route_passes_base_url(self, mock_get_ops_go_live_summary) -> None:
|
||||
mock_get_ops_go_live_summary.return_value = {
|
||||
"go_live_status": "attention",
|
||||
}
|
||||
|
||||
response = ops_go_live_summary(base_url="http://example.test")
|
||||
|
||||
self.assertEqual(0, response.code)
|
||||
self.assertEqual("attention", response.data["go_live_status"])
|
||||
mock_get_ops_go_live_summary.assert_called_once_with(base_url="http://example.test")
|
||||
|
||||
@patch("app.api.routes.ops.get_ops_go_live_bundle")
|
||||
def test_go_live_bundle_route_passes_base_url_and_report_dir(self, mock_get_ops_go_live_bundle) -> None:
|
||||
mock_get_ops_go_live_bundle.return_value = {
|
||||
"status": "missing",
|
||||
}
|
||||
|
||||
response = ops_go_live_bundle(base_url="http://example.test", report_dir="/tmp/go-live")
|
||||
|
||||
self.assertEqual(0, response.code)
|
||||
self.assertEqual("missing", response.data["status"])
|
||||
mock_get_ops_go_live_bundle.assert_called_once_with(
|
||||
base_url="http://example.test",
|
||||
report_dir="/tmp/go-live",
|
||||
)
|
||||
|
||||
@patch("app.api.routes.ops.get_ops_go_live_review")
|
||||
def test_go_live_review_route_passes_base_url_and_report_dir(self, mock_get_ops_go_live_review) -> None:
|
||||
mock_get_ops_go_live_review.return_value = {
|
||||
"status": "attention",
|
||||
"headline": "review",
|
||||
}
|
||||
|
||||
response = ops_go_live_review(base_url="http://example.test", report_dir="/tmp/review")
|
||||
|
||||
self.assertEqual(0, response.code)
|
||||
self.assertEqual("attention", response.data["status"])
|
||||
self.assertEqual("review", response.data["headline"])
|
||||
mock_get_ops_go_live_review.assert_called_once_with(
|
||||
base_url="http://example.test",
|
||||
report_dir="/tmp/review",
|
||||
)
|
||||
|
||||
@patch("app.api.routes.ops.get_ops_doctor_decision")
|
||||
def test_doctor_decision_route_passes_base_url_and_report_dir(self, mock_get_ops_doctor_decision) -> None:
|
||||
mock_get_ops_doctor_decision.return_value = {
|
||||
"status": "attention",
|
||||
"headline": "doctor",
|
||||
}
|
||||
|
||||
response = ops_doctor_decision(base_url="http://example.test", report_dir="/tmp/doctor")
|
||||
|
||||
self.assertEqual(0, response.code)
|
||||
self.assertEqual("attention", response.data["status"])
|
||||
self.assertEqual("doctor", response.data["headline"])
|
||||
mock_get_ops_doctor_decision.assert_called_once_with(
|
||||
base_url="http://example.test",
|
||||
report_dir="/tmp/doctor",
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user