X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=tests%2Ftest_controller.py;h=9a73ea8a59a78ce18d2feb7531a28721ba0fae1e;hb=refs%2Fchanges%2F01%2F9401%2F7;hp=833fc6ef64e60ff74c2aefcf12cc86994b26d165;hpb=ccb4a69e473cab6db7e8d52a04f9b4922528e24f;p=ric-plt%2Fa1.git diff --git a/tests/test_controller.py b/tests/test_controller.py index 833fc6e..9a73ea8 100644 --- a/tests/test_controller.py +++ b/tests/test_controller.py @@ -19,9 +19,10 @@ tests for controller # ================================================================================== import time import json -from rmr.rmr_mocks import rmr_mocks +from ricxappframe.rmr.rmr_mocks import rmr_mocks +from ricxappframe.xapp_sdl import SDLWrapper +from ricsdl.exceptions import RejectedByBackend, NotConnected, BackendError from a1 import a1rmr, data -from .a1test_helpers import MockSDLWrapper RCV_ID = "test_receiver" ADM_CRTL_TID = 6660666 @@ -88,7 +89,7 @@ def _fake_dequeue_deleted(): def _test_put_patch(monkeypatch): rmr_mocks.patch_rmr(monkeypatch) # assert that rmr bad states don't cause problems - monkeypatch.setattr("rmr.rmr.rmr_send_msg", rmr_mocks.send_mock_generator(10)) + monkeypatch.setattr("ricxappframe.rmr.rmr.rmr_send_msg", rmr_mocks.send_mock_generator(10)) def _no_ac(client): @@ -231,7 +232,8 @@ def _verify_instance_and_status(client, expected_instance, expected_status, expe def setup_module(): """module level setup""" - data.SDL = MockSDLWrapper() # patch SDL + # swap sdl for the fake backend + data.SDL = SDLWrapper(use_fake_sdl=True) def noop(): pass @@ -349,20 +351,43 @@ def test_bad_instances(client, monkeypatch, adm_type_good): assert res.status_code == 204 # test 503 handlers - res = client.put("/a1-p/policytypes/111", json=adm_type_good) - assert res.status_code == 503 - res = client.put("/a1-p/policytypes/112", json=adm_type_good) - assert res.status_code == 503 - res = client.put("/a1-p/policytypes/113", json=adm_type_good) - assert res.status_code == 503 + + def monkey_set(ns, key, value): + # set a key override function that throws sdl errors on certain keys + if key == "a1.policy_type.111": + raise RejectedByBackend() + if key == "a1.policy_type.112": + raise NotConnected() + if key == "a1.policy_type.113": + raise BackendError() + + monkeypatch.setattr("a1.data.SDL.set", monkey_set) + + def create_alt_id(json, id): + """ + Overwrites the json's policy type ID, attempts create and tests for 503 + """ + json['policy_type_id'] = id + url = "/a1-p/policytypes/{0}".format(id) + res = client.put(url, json=json) + assert res.status_code == 503 + + create_alt_id(adm_type_good, 111) + create_alt_id(adm_type_good, 112) + create_alt_id(adm_type_good, 113) def test_illegal_types(client, adm_type_good): """ Test illegal types """ + # below valid range res = client.put("/a1-p/policytypes/0", json=adm_type_good) assert res.status_code == 400 + # ID mismatch + res = client.put("/a1-p/policytypes/1", json=adm_type_good) + assert res.status_code == 400 + # above valid range res = client.put("/a1-p/policytypes/2147483648", json=adm_type_good) assert res.status_code == 400 @@ -375,6 +400,14 @@ def test_healthcheck(client): assert res.status_code == 200 +def test_metrics(client): + """ + test Prometheus metrics + """ + res = client.get("/a1-p/metrics") + assert res.status_code == 200 + + def teardown_module(): """module teardown""" a1rmr.stop_rmr_thread()