diff --git a/lso/playbook.py b/lso/playbook.py index a2de84c9bddbf3893cc2ae10989d38ee999b6da3..972044fa969860bd433e47d86f9ec93a0bfd303d 100644 --- a/lso/playbook.py +++ b/lso/playbook.py @@ -147,7 +147,7 @@ def _run_playbook_proc( } request_result = requests.post(callback, json=payload, timeout=DEFAULT_REQUEST_TIMEOUT) - if request_result.status_code != status.HTTP_200_OK: + if request_result.status_code != status.HTTP_201_CREATED: msg = f"Callback failed: {request_result.text}" logger.error(msg) diff --git a/test/routes/test_ip_trunk.py b/test/routes/test_ip_trunk.py index aefb44d3ff12b698ee83f1ccb729b975cc10e218..0045b1e7a41026b6fc7c20a297c68035a4f6e69b 100644 --- a/test/routes/test_ip_trunk.py +++ b/test/routes/test_ip_trunk.py @@ -2,15 +2,12 @@ import time from collections.abc import Callable from unittest.mock import patch -import jsonschema import pytest import responses from faker import Faker from fastapi import status from starlette.testclient import TestClient -from lso.playbook import PlaybookLaunchResponse - TEST_CALLBACK_URL = "https://fqdn.abc.xyz/api/resume" @@ -171,7 +168,7 @@ def test_ip_trunk_provisioning( subscription_object: dict, mocked_ansible_runner_run: Callable, ) -> None: - responses.post(url=TEST_CALLBACK_URL, status=200) + responses.post(url=TEST_CALLBACK_URL, status=201) params = { "callback": TEST_CALLBACK_URL, @@ -185,16 +182,15 @@ def test_ip_trunk_provisioning( with patch("lso.playbook.ansible_runner.run", new=mocked_ansible_runner_run) as _: rv = client.post("/api/ip_trunk/", json=params) - assert rv.status_code == status.HTTP_200_OK + assert rv.status_code == status.HTTP_201_CREATED response = rv.json() # wait a second for the run thread to finish time.sleep(1) - jsonschema.validate(response, PlaybookLaunchResponse.model_json_schema()) + assert isinstance(response, dict) + assert isinstance(response["job_id"], str) responses.assert_call_count(TEST_CALLBACK_URL, 1) - assert response["status"] == "ok" - @responses.activate def test_ip_trunk_modification( @@ -202,7 +198,7 @@ def test_ip_trunk_modification( subscription_object: dict, mocked_ansible_runner_run: Callable, ) -> None: - responses.post(url=TEST_CALLBACK_URL, status=200) + responses.post(url=TEST_CALLBACK_URL, status=201) params = { "callback": TEST_CALLBACK_URL, @@ -216,16 +212,15 @@ def test_ip_trunk_modification( with patch("lso.playbook.ansible_runner.run", new=mocked_ansible_runner_run) as _: rv = client.put("/api/ip_trunk/", json=params) - assert rv.status_code == status.HTTP_200_OK + assert rv.status_code == status.HTTP_201_CREATED response = rv.json() # wait a second for the run thread to finish time.sleep(1) - jsonschema.validate(response, PlaybookLaunchResponse.model_json_schema()) + assert isinstance(response, dict) + assert isinstance(response["job_id"], str) responses.assert_call_count(TEST_CALLBACK_URL, 1) - assert response["status"] == "ok" - @responses.activate def test_ip_trunk_deletion(client: TestClient, subscription_object: dict, mocked_ansible_runner_run: Callable) -> None: @@ -242,16 +237,15 @@ def test_ip_trunk_deletion(client: TestClient, subscription_object: dict, mocked with patch("lso.playbook.ansible_runner.run", new=mocked_ansible_runner_run) as _: rv = client.request(url="/api/ip_trunk/", method=responses.DELETE, json=params) - assert rv.status_code == status.HTTP_200_OK + assert rv.status_code == status.HTTP_201_CREATED response = rv.json() # wait a second for the run thread to finish time.sleep(1) - jsonschema.validate(response, PlaybookLaunchResponse.model_json_schema()) + assert isinstance(response, dict) + assert isinstance(response["job_id"], str) responses.assert_call_count(TEST_CALLBACK_URL, 1) - assert response["status"] == "ok" - @responses.activate def test_ip_trunk_migration( @@ -275,12 +269,11 @@ def test_ip_trunk_migration( with patch("lso.playbook.ansible_runner.run", new=mocked_ansible_runner_run) as _: rv = client.post(url="/api/ip_trunk/migrate", json=params) - assert rv.status_code == status.HTTP_200_OK + assert rv.status_code == status.HTTP_201_CREATED response = rv.json() # Wait a second for the run to finish time.sleep(1) - jsonschema.validate(response, PlaybookLaunchResponse.model_json_schema()) + assert isinstance(response, dict) + assert isinstance(response["job_id"], str) responses.assert_call_count(TEST_CALLBACK_URL, 1) - - assert response["status"] == "ok" diff --git a/test/routes/test_router.py b/test/routes/test_router.py index 08f81881eaf7221b45d51fe34d30801e4c82fc03..29e956e43ff5c8fb4d98f4ea4a64847ec917450b 100644 --- a/test/routes/test_router.py +++ b/test/routes/test_router.py @@ -2,20 +2,17 @@ import time from collections.abc import Callable from unittest.mock import patch -import jsonschema import responses from faker import Faker from fastapi import status from starlette.testclient import TestClient -from lso.playbook import PlaybookLaunchResponse - TEST_CALLBACK_URL = "https://fqdn.abc.xyz/api/resume" @responses.activate def test_router_provisioning(client: TestClient, faker: Faker, mocked_ansible_runner_run: Callable) -> None: - responses.put(url=TEST_CALLBACK_URL, status=200) + responses.put(url=TEST_CALLBACK_URL, status=201) params = { "callback": TEST_CALLBACK_URL, @@ -48,12 +45,11 @@ def test_router_provisioning(client: TestClient, faker: Faker, mocked_ansible_ru with patch("lso.playbook.ansible_runner.run", new=mocked_ansible_runner_run) as _: rv = client.post("/api/router/", json=params) - assert rv.status_code == status.HTTP_200_OK + assert rv.status_code == status.HTTP_201_CREATED response = rv.json() # wait two seconds for the run thread to finish time.sleep(2) - jsonschema.validate(response, PlaybookLaunchResponse.model_json_schema()) + assert isinstance(response, dict) + assert isinstance(response["job_id"], str) responses.assert_call_count(TEST_CALLBACK_URL, 1) - - assert response["status"] == "ok"