aboutsummaryrefslogtreecommitdiffstats
path: root/app/app/tests
diff options
context:
space:
mode:
Diffstat (limited to 'app/app/tests')
-rw-r--r--app/app/tests/test_api.py103
-rw-r--r--app/app/tests/test_client.py38
-rw-r--r--app/app/tests/test_controller.py120
3 files changed, 141 insertions, 120 deletions
diff --git a/app/app/tests/test_api.py b/app/app/tests/test_api.py
new file mode 100644
index 0000000..118a2a0
--- /dev/null
+++ b/app/app/tests/test_api.py
@@ -0,0 +1,103 @@
+# ============LICENSE_START=======================================================
+# Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+import json
+import pytest
+import os
+import tempfile
+from config_binding_service import app
+
+
+TEST_NAME = "test_service_component_name.unknown.unknown.unknown.dcae.onap.org"
+
+
+# http://flask.pocoo.org/docs/1.0/testing/
+@pytest.fixture
+def cbsclient():
+ db_fd, app.app.config['DATABASE'] = tempfile.mkstemp()
+ app.app.config['TESTING'] = True
+ testclient = app.app.test_client()
+
+ yield testclient
+
+ os.close(db_fd)
+ os.unlink(app.app.config['DATABASE'])
+
+
+def test_get(monkeypatch, cbsclient, monkeyed_requests_put):
+ monkeypatch.setattr('requests.put', monkeyed_requests_put)
+
+ res = cbsclient.get('/service_component/scn_exists',
+ headers={"x-onap-requestid": 123456789})
+ assert(json.loads(res.data) == {"foo3": "bar3"})
+ assert(res.status_code == 200)
+ assert(res.headers["x-onap-requestid"] == "123456789")
+
+ res = cbsclient.get('/service_component/scn_NOTexists',
+ headers={"x-onap-requestid": 123456789})
+ assert(res.status_code == 404)
+ assert(res.headers["x-onap-requestid"] == "123456789")
+
+ res = cbsclient.get('/service_component/asdfasdf',
+ headers={"x-onap-requestid": 123456789})
+ assert(res.status_code == 500)
+ assert(res.headers["x-onap-requestid"] == "123456789")
+
+
+def test_generic(monkeypatch, cbsclient, monkeyed_requests_get, monkeyed_requests_put):
+ monkeypatch.setattr('requests.put', monkeyed_requests_put)
+ monkeypatch.setattr('requests.get', monkeyed_requests_get)
+
+ res = cbsclient.get('/dti/{0}'.format(TEST_NAME))
+ assert json.loads(res.data) == {"my": "dti"}
+ assert res.json == {"my": "dti"}
+ assert res.status_code == 200
+ assert "x-onap-requestid" in res.headers
+
+ res = cbsclient.get('/nokeyforyou/{0}'.format(TEST_NAME))
+ assert res.status_code == 404
+ assert "x-onap-requestid" in res.headers
+
+ res = cbsclient.get('/policies/{0}'.format(TEST_NAME))
+ assert res.status_code == 400
+ assert "x-onap-requestid" in res.headers
+
+
+def test_resolve_all(monkeypatch, cbsclient, monkeyed_requests_put, monkeyed_get_connection_info_from_consul, expected_config):
+ monkeypatch.setattr('requests.put', monkeyed_requests_put)
+ monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul', monkeyed_get_connection_info_from_consul)
+ withstuff = {'config': {'my': 'amazing config'},
+ 'dti': {'my': 'dti'},
+ 'policies': {'items': [{'policyName': 'DCAE_alex.Config_MS_alex_microservice.132.xml', 'policyConfigMessage': 'Config Retrieved! ', 'responseAttributes': {}, 'policyConfigStatus': 'CONFIG_RETRIEVED', 'matchingConditions': {'ONAPName': 'DCAE', 'Name': 'DCAE', 'ConfigName': 'alex_config_name'}, 'config': {'policyScope': 'alex_policy_scope', 'configName': 'alex_config_name', 'description': 'test DCAE policy-handler', 'service': 'alex_service', 'policyName': 'alex_policy_name', 'riskLevel': '3', 'key1': 'value1', 'policy_hello': 'world!', 'content': {'foo': 'microservice3', 'foo_updated': '2018-01-30T13:25:33.222Z'}, 'riskType': '1712_ETE', 'guard': 'False', 'version': '0.0.1', 'location': 'Central', 'policy_updated_ts': '2018-02-19T15:09:55.217Z', 'updated_policy_id': 'DCAE_alex.Config_MS_alex_microservice', 'policy_updated_to_ver': '132', 'priority': '4', 'policy_updated_from_ver': '131', 'templateVersion': '2', 'uuid': '5e87d7c5-0daf-4b6b-ab92-5365cf5db1ef'}, 'property': None, 'type': 'JSON', 'policyVersion': '132'}, {'policyName': 'DCAE_alex.Config_db_client_policy_id_value.133.xml', 'policyConfigMessage': 'Config Retrieved! ', 'responseAttributes': {}, 'policyConfigStatus': 'CONFIG_RETRIEVED', 'matchingConditions': {'ONAPName': 'DCAE', 'Name': 'DCAE', 'ConfigName': 'alex_config_name'}, 'config': {'db_client_ts': '2017-11-21T12:12:13.696Z', 'db_client': 'ipsum', 'policy_hello': 'world!', 'policy_updated_from_ver': '132', 'updated_policy_id': 'DCAE_alex.Config_db_client_policy_id_value', 'policy_updated_ts': '2018-02-19T15:09:55.812Z', 'policy_updated_to_ver': '133'}, 'property': None, 'type': 'JSON', 'policyVersion': '133'}], 'event': {'action': 'gathered', 'timestamp': '2018-02-19 15:36:44.877380', 'update_id': 'bb73c20a-5ff8-450f-8223-da6720ade267', 'policies_count': 2}}}
+
+ assert cbsclient.get('service_component_all/{0}'.format(TEST_NAME)).json == withstuff
+
+ assert cbsclient.get('service_component_all/test_resolve_scn').json == {"config": expected_config}
+
+ res = cbsclient.get('/service_component_all/{0}'.format(TEST_NAME))
+ assert json.loads(res.data) == withstuff
+ assert res.json == withstuff
+ assert res.status_code == 200
+ assert "x-onap-requestid" in res.headers
+
+ res = cbsclient.get('/service_component_all/test_resolve_scn')
+ assert res.status_code == 200
+ assert res.json == {"config": expected_config}
+
+ res = cbsclient.get('/service_component_all/scn_NOTexists')
+ assert res.status_code == 404
+ assert "x-onap-requestid" in res.headers
diff --git a/app/app/tests/test_client.py b/app/app/tests/test_client.py
index cd3287c..96c3467 100644
--- a/app/app/tests/test_client.py
+++ b/app/app/tests/test_client.py
@@ -1,4 +1,22 @@
+# ============LICENSE_START=======================================================
+# Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+
from config_binding_service import client
+import pytest
# pytest doesnt support objects in conftest
@@ -10,6 +28,15 @@ class FakeReq(object):
self.remote_addr = "6.6.6.6"
+# pytest doesnt support objects in conftest
+class FakeConnexion(object):
+ def __init__(self, headers, path, host, remote_addr):
+ self.headers = headers
+ self.path = path
+ self.host = host
+ self.remote_addr = remote_addr
+
+
def test_consul_get_all_as_transaction(monkeypatch, monkeyed_requests_put):
"""tests _consul_get_all_as_transaction"""
monkeypatch.setattr('requests.put', monkeyed_requests_put)
@@ -166,3 +193,14 @@ def test_both(monkeypatch, monkeyed_get_connection_info_from_consul, expected_co
"doubledeep": {"sodeep": {"hello": "<<WHO?>>"}}}
test_bind_1 = client.resolve_override(config, test_rels, test_dmaap)
assert(test_bind_1 == expected_config)
+
+
+def test_failures(monkeypatch, monkeyed_requests_put, monkeyed_requests_get):
+ monkeypatch.setattr('requests.put', monkeyed_requests_put)
+ monkeypatch.setattr('requests.get', monkeyed_requests_get)
+ monkeypatch.setattr('connexion.request', FakeConnexion({"x-onap-requestid": 123456789}, "/service_component", "mytestingmachine", "myremoteclient"))
+ assert(client.resolve("scn_exists", FakeReq(), "unit test xer") == {"foo3": "bar3"})
+ with pytest.raises(client.CantGetConfig):
+ client.resolve("scn_NOTexists", FakeReq(), "unit test xer")
+ with pytest.raises(client.CantGetConfig):
+ client.get_key("nokeyforyou", "test_service_component_name.unknown.unknown.unknown.dcae.onap.org", FakeReq(), "unit test xer")
diff --git a/app/app/tests/test_controller.py b/app/app/tests/test_controller.py
deleted file mode 100644
index 0650a38..0000000
--- a/app/app/tests/test_controller.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# ============LICENSE_START=======================================================
-# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-
-import json
-import pytest
-from config_binding_service import client, controller
-
-
-# pytest doesnt support objects in conftest
-class FakeConnexion(object):
- def __init__(self, headers, path, host, remote_addr):
- self.headers = headers
- self.path = path
- self.host = host
- self.remote_addr = remote_addr
-
-
-# pytest doesnt support objects in conftest
-class FakeReq(object):
- """used to fake the logging params"""
- def __init__(self):
- self.path = "/unittest in {0}".format(__name__)
- self.host = "localhost"
- self.remote_addr = "6.6.6.6"
-
-
-def test_bind_config_for_scn(monkeypatch, monkeyed_requests_put):
- monkeypatch.setattr('requests.put', monkeyed_requests_put)
- monkeypatch.setattr('connexion.request', FakeConnexion({"x-onap-requestid": 123456789}, "/service_component", "mytestingmachine", "myremoteclient"))
-
- assert(client.resolve("scn_exists", FakeReq(), "unit test xer") == {"foo3": "bar3"})
- with pytest.raises(client.CantGetConfig):
- client.resolve("scn_NOTexists", FakeReq(), "unit test xer")
-
- R = controller.bind_config_for_scn("scn_exists")
- assert(json.loads(R.data) == {"foo3": "bar3"})
- assert(R.status_code == 200)
- assert(R.headers["x-onap-requestid"] == "123456789")
-
- R = controller.bind_config_for_scn("scn_NOTexists")
- assert(R.status_code == 404)
- assert(R.headers["x-onap-requestid"] == "123456789")
-
- R = controller.bind_config_for_scn("asdfasdf")
- assert(R.status_code == 500)
- assert(R.headers["x-onap-requestid"] == "123456789")
-
-
-def test_generic(monkeypatch, monkeyed_requests_get, monkeyed_requests_put):
- monkeypatch.setattr('requests.put', monkeyed_requests_put)
- monkeypatch.setattr('requests.get', monkeyed_requests_get)
- assert client.get_key("dti", "test_service_component_name.unknown.unknown.unknown.dcae.onap.org", FakeReq(), "unit test xer") == json.loads('{"my": "dti"}')
- with pytest.raises(client.CantGetConfig):
- client.get_key("nokeyforyou", "test_service_component_name.unknown.unknown.unknown.dcae.onap.org", FakeReq(), "unit test xer")
-
- monkeypatch.setattr('connexion.request', FakeConnexion({}, "/get_key", "mytestingmachine", "myremoteclient"))
-
- R = controller.get_key(
- "dti", "test_service_component_name.unknown.unknown.unknown.dcae.onap.org")
- assert(json.loads(R.data) == {"my": "dti"})
- assert(R.status_code == 200)
- assert "x-onap-requestid" in R.headers
-
- R = controller.get_key(
- "nokeyforyou", "test_service_component_name.unknown.unknown.unknown.dcae.onap.org")
- assert(R.status_code == 404)
- assert "x-onap-requestid" in R.headers
-
- R = controller.get_key(
- "policies", "test_service_component_name.unknown.unknown.unknown.dcae.onap.org")
- assert(R.status_code == 400)
- assert "x-onap-requestid" in R.headers
-
-
-def test_resolve_all(monkeypatch, monkeyed_requests_put, monkeyed_get_connection_info_from_consul, expected_config):
- monkeypatch.setattr('requests.put', monkeyed_requests_put)
- allk = client.resolve_all("test_service_component_name.unknown.unknown.unknown.dcae.onap.org", FakeReq(), "unit test xer")
- withstuff = {'config': {'my': 'amazing config'},
- 'dti': {'my': 'dti'},
- 'policies': {'items': [{'policyName': 'DCAE_alex.Config_MS_alex_microservice.132.xml', 'policyConfigMessage': 'Config Retrieved! ', 'responseAttributes': {}, 'policyConfigStatus': 'CONFIG_RETRIEVED', 'matchingConditions': {'ONAPName': 'DCAE', 'Name': 'DCAE', 'ConfigName': 'alex_config_name'}, 'config': {'policyScope': 'alex_policy_scope', 'configName': 'alex_config_name', 'description': 'test DCAE policy-handler', 'service': 'alex_service', 'policyName': 'alex_policy_name', 'riskLevel': '3', 'key1': 'value1', 'policy_hello': 'world!', 'content': {'foo': 'microservice3', 'foo_updated': '2018-01-30T13:25:33.222Z'}, 'riskType': '1712_ETE', 'guard': 'False', 'version': '0.0.1', 'location': 'Central', 'policy_updated_ts': '2018-02-19T15:09:55.217Z', 'updated_policy_id': 'DCAE_alex.Config_MS_alex_microservice', 'policy_updated_to_ver': '132', 'priority': '4', 'policy_updated_from_ver': '131', 'templateVersion': '2', 'uuid': '5e87d7c5-0daf-4b6b-ab92-5365cf5db1ef'}, 'property': None, 'type': 'JSON', 'policyVersion': '132'}, {'policyName': 'DCAE_alex.Config_db_client_policy_id_value.133.xml', 'policyConfigMessage': 'Config Retrieved! ', 'responseAttributes': {}, 'policyConfigStatus': 'CONFIG_RETRIEVED', 'matchingConditions': {'ONAPName': 'DCAE', 'Name': 'DCAE', 'ConfigName': 'alex_config_name'}, 'config': {'db_client_ts': '2017-11-21T12:12:13.696Z', 'db_client': 'ipsum', 'policy_hello': 'world!', 'policy_updated_from_ver': '132', 'updated_policy_id': 'DCAE_alex.Config_db_client_policy_id_value', 'policy_updated_ts': '2018-02-19T15:09:55.812Z', 'policy_updated_to_ver': '133'}, 'property': None, 'type': 'JSON', 'policyVersion': '133'}], 'event': {'action': 'gathered', 'timestamp': '2018-02-19 15:36:44.877380', 'update_id': 'bb73c20a-5ff8-450f-8223-da6720ade267', 'policies_count': 2}}}
- assert allk == withstuff
-
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
- allk = client.resolve_all("test_resolve_scn", FakeReq(), "unit test xer")
- assert allk == {"config": expected_config}
-
- monkeypatch.setattr('connexion.request', FakeConnexion({}, "/service_component_all", "mytestingmachine", "myremoteclient"))
-
- R = controller.bind_all(
- "test_service_component_name.unknown.unknown.unknown.dcae.onap.org")
- assert(json.loads(R.data) == withstuff)
- assert(R.status_code == 200)
- assert "x-onap-requestid" in R.headers
-
- R = controller.bind_all("test_resolve_scn")
- assert(json.loads(R.data) == {"config": expected_config})
- assert(R.status_code == 200)
-
- R = controller.bind_all("scn_NOTexists")
- assert(R.status_code == 404)
- assert "x-onap-requestid" in R.headers
-
- R = controller.bind_all("asdfasdf")
- assert(R.status_code == 500)