summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/test_c.crt22
-rw-r--r--tests/fixtures/test_k.key28
-rw-r--r--tests/test_api.py135
-rw-r--r--tests/test_client.py262
-rw-r--r--tests/test_utils.py41
5 files changed, 372 insertions, 116 deletions
diff --git a/tests/fixtures/test_c.crt b/tests/fixtures/test_c.crt
new file mode 100644
index 0000000..ebe25fa
--- /dev/null
+++ b/tests/fixtures/test_c.crt
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDnTCCAoWgAwIBAgIUZ6JZNlD9m6/JiXwHOvDGyflH4UgwDQYJKoZIhvcNAQEL
+BQAwXjELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk5KMQwwCgYDVQQHDANmb28xDTAL
+BgNVBAoMBE9OQVAxDTALBgNVBAsMBE9OQVAxFjAUBgNVBAMMDWNvbmZpZ2JpbmRp
+bmcwHhcNMTkwNjA1MDIwNDM2WhcNMjAwNjA0MDIwNDM2WjBeMQswCQYDVQQGEwJV
+UzELMAkGA1UECAwCTkoxDDAKBgNVBAcMA2ZvbzENMAsGA1UECgwET05BUDENMAsG
+A1UECwwET05BUDEWMBQGA1UEAwwNY29uZmlnYmluZGluZzCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAPSPu2V8PvEudWa6u9Zdfmh98/s3HFTHSufeRLW+
+FfXX/8IljV2HOyvKU+FEqJ2NghXFqcvJEVxflitbyvg+vlVwgVsK5CHwSng8CE5E
+UVQrdqNsypOwLMAT3VqL4isM3vvtLvwza0aVHIrqjHh6AcRWYBvqdSMSgdQ99syT
+D+iPvs7uBijPdl13IoXLPE8jz7PbJTqRqDbkzHTSBMZQRI2QovfKAsDIncaJk04r
+FGnX9pEdJtnZtfdEALPjapb4vuI4WXa2KaAMMSK8UQn2UKpg6W7vAJio5I23NoeG
+0TKAS9a7icSlNy/Ahf0O+af7NVWbUXUkSdbQM12C5+XwARUCAwEAAaNTMFEwHQYD
+VR0OBBYEFMNaZ6UckYHriuwyLbtvkCB/cuiXMB8GA1UdIwQYMBaAFMNaZ6UckYHr
+iuwyLbtvkCB/cuiXMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
+ALg3RDTyEhjK5rPnK/b2ryOleOg+bQwuKGpTBGb1KQ5q/25mFbNV10YZb8ikZ8TU
+VJ38CbffzmWuNuIuD5R6a1KHPhDWbBGX3Wap1kKEMlLcWioYtynEj4Pe/dmpYRlk
+GkgKlhWZZXlyXaxlR2hpClt20Ts3Jfksq0tpjCacDhlqrjNXyh6Kt5RmNwhhdiEw
+sYWP7e858scubOG1jYIQmPa4W1cLp0aUF+Ge2b/3d8HMe1dECFJwMRQFhE6FjBQ/
+qzgxv+A84aNQn8chpSjKC6o7GSDaZAusJP9Z+oAXYXmTDlIGkbPt6g8DoK6WqGUY
+eOvS5OKGh9x20GSLw8YFXxI=
+-----END CERTIFICATE-----
diff --git a/tests/fixtures/test_k.key b/tests/fixtures/test_k.key
new file mode 100644
index 0000000..df3da7b
--- /dev/null
+++ b/tests/fixtures/test_k.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD0j7tlfD7xLnVm
+urvWXX5offP7NxxUx0rn3kS1vhX11//CJY1dhzsrylPhRKidjYIVxanLyRFcX5Yr
+W8r4Pr5VcIFbCuQh8Ep4PAhORFFUK3ajbMqTsCzAE91ai+IrDN777S78M2tGlRyK
+6ox4egHEVmAb6nUjEoHUPfbMkw/oj77O7gYoz3ZddyKFyzxPI8+z2yU6kag25Mx0
+0gTGUESNkKL3ygLAyJ3GiZNOKxRp1/aRHSbZ2bX3RACz42qW+L7iOFl2timgDDEi
+vFEJ9lCqYOlu7wCYqOSNtzaHhtEygEvWu4nEpTcvwIX9Dvmn+zVVm1F1JEnW0DNd
+gufl8AEVAgMBAAECggEBANEQ4llieohBeBmG/rbFnB+FtQIH3c9Xw2AucbyQMEPH
+EBwPcCcJSPspbsV/pUlyxEcKgBn23EGEcWLFiODo+lsd32dOCzI8Md1RLKSD4Ka8
+tSIGCbNxgv/8u1kBhinZSfJBk84DwuxG4mybD9SaMFKAqI6UwuhllNk003uVKJ9c
+PxjSzjqxxpSrDpblBUao0Jptmd6YRvltQ8YIdA+QyhoHkN8XzZiOcQMdgG0VepAX
+ztDzudRPglHxs9IKr9otuVx9PcEV4i9lWNo0dDyoOKo1fMCEAn0Twry3lEvoT+dh
+enH6fM3g68zaRxIU7YtynK0JGmx/zWskuvvHDKT+z40CgYEA/sQW2nH9FudAcTg7
+6gUVOSGLLl1PZGSkMl6lXg9tcYP52xLAokJiz25wBDa/Ptzs25HeyS+iITnnDDR1
+V4wijwrIPS+uF4byM0PizkR8Dwy+x1ccojAm9qDKVBj3FRo1XG/iz1BWhP+qY1Qd
+jXUU85rXeJtuw1DFCR5g6iIyR5sCgYEA9b79Ne7/cIRr6TyxAsGHHkksfaRftRyL
+gckGGU9c1nOdMTBLwy6Hd1OkcEAAnXaShzzh12EqLRXq8gEJ0o4fKFVEWlZgj2vg
+zf1sCjr8hzJJ3vyr6ax1MNeNh8qQNfiVf85ZHrkrWnFh9vmVaRuzLyNo2/t2TcWk
+7c8/H67X3Q8CgYEA/VTfpLhUgsHRQsQ4T6xePkEstR30JFAvNicHKVEN8yLZAQ7U
+noSE3N9kY8xMv6XPoUab0lKbVY7OQUSoqjWe575A/xa6doqprHCEx7cx5YU27+Gf
+h2d6VyPsDVQF3eYBybk4QA4S+o2AUOUDvfX+r335ZOSqb22RgE/E7wyyEqECgYA2
+g3mUH0JW6WkuwiHaJKgelcjizjXU7VIdJkTOFIbZo6f5I2eLEqVGWS2fIPOB+q2i
+hmTq7Ej422XU7VoKdTCAN/oDuCmPZzTlPRRcaJ1gOE2ew5o3KeSNQyPIPa0j69Lu
+GQ43/Iebdo9uxAra2CQ1jrtSIUQrGG7vugucsaJ9DQKBgQCnHlozZSypZwjLopbk
+BWM+EKrNIWDKi5CCMhyO9EJ3eyh5jIjYDZ4m9jykoEs0Apikv0uYL1Lo5S25svbY
+d/xxpHcM6fj4ilqFp0jzLn5Eagqto1SLWsjB0nF7bNL2jYCFvcWZQBSnpvVMH1Ng
+zHW7trNSk4275srIOmx6OBxF8A==
+-----END PRIVATE KEY-----
diff --git a/tests/test_api.py b/tests/test_api.py
index 118a2a0..4356629 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -28,76 +28,139 @@ 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
+ 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'])
+ os.unlink(app.app.config["DATABASE"])
def test_get(monkeypatch, cbsclient, monkeyed_requests_put):
- monkeypatch.setattr('requests.put', 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_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/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")
+ 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)
+ monkeypatch.setattr("requests.put", monkeyed_requests_put)
+ monkeypatch.setattr("requests.get", monkeyed_requests_get)
- res = cbsclient.get('/dti/{0}'.format(TEST_NAME))
+ 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))
+ 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))
+ 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))
+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')
+ 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')
+ res = cbsclient.get("/service_component_all/scn_NOTexists")
assert res.status_code == 404
assert "x-onap-requestid" in res.headers
diff --git a/tests/test_client.py b/tests/test_client.py
index 96c3467..1e07566 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -15,13 +15,14 @@
# ============LICENSE_END=========================================================
#
-from config_binding_service import client
+from config_binding_service import client, exceptions
import pytest
# 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"
@@ -39,168 +40,269 @@ class FakeConnexion(object):
def test_consul_get_all_as_transaction(monkeypatch, monkeyed_requests_put):
"""tests _consul_get_all_as_transaction"""
- monkeypatch.setattr('requests.put', monkeyed_requests_put)
+ monkeypatch.setattr("requests.put", monkeyed_requests_put)
allk = client._consul_get_all_as_transaction(
- "test_service_component_name.unknown.unknown.unknown.dcae.onap.org", FakeReq(), "unit test xer")
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org", FakeReq(), "unit test xer"
+ )
assert allk == {
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org': {'my': 'amazing config'},
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org:dti': {'my': 'dti'},
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org:dmaap': {'foo': 'bar'},
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org:policies/event': {'action': 'gathered', 'timestamp': '2018-02-19 15:36:44.877380', 'update_id': 'bb73c20a-5ff8-450f-8223-da6720ade267', 'policies_count': 2},
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org:policies/items/DCAE_alex.Config_MS_alex_microservice': {'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'},
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org:policies/items/DCAE_alex.Config_db_client_policy_id_value': {'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'},
- 'test_service_component_name.unknown.unknown.unknown.dcae.onap.org:rels': ['my.amazing.relationship']
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org": {"my": "amazing config"},
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org:dti": {"my": "dti"},
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org:dmaap": {"foo": "bar"},
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org:policies/event": {
+ "action": "gathered",
+ "timestamp": "2018-02-19 15:36:44.877380",
+ "update_id": "bb73c20a-5ff8-450f-8223-da6720ade267",
+ "policies_count": 2,
+ },
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org:policies/items/DCAE_alex.Config_MS_alex_microservice": {
+ "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",
+ },
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org:policies/items/DCAE_alex.Config_db_client_policy_id_value": {
+ "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",
+ },
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org:rels": ["my.amazing.relationship"],
}
allk = client._consul_get_all_as_transaction("cbs_test_messed_up", FakeReq(), "unit test xer")
- assert allk == {'cbs_test_messed_up': {'foo': 'bar'},
- 'cbs_test_messed_up:badkey': 'INVALID JSON'}
+ assert allk == {"cbs_test_messed_up": {"foo": "bar"}, "cbs_test_messed_up:badkey": "INVALID JSON"}
def test_get_config_rels_dmaap(monkeypatch, monkeyed_requests_put):
- monkeypatch.setattr('requests.put', monkeyed_requests_put)
- assert ({"foo3": "bar3"}, ["foo"], {"foo4": "bar4"}) == client._get_config_rels_dmaap("scn_exists", FakeReq(), "unit test xer")
+ monkeypatch.setattr("requests.put", monkeyed_requests_put)
+ assert ({"foo3": "bar3"}, ["foo"], {"foo4": "bar4"}) == client._get_config_rels_dmaap(
+ "scn_exists", FakeReq(), "unit test xer"
+ )
assert ({"foo5": "bar5"}, [], {}) == client._get_config_rels_dmaap("scn_exists_nord", FakeReq(), "unit test xer")
def test_bad_config_http():
- test_config = {'yeahhhhh': "{{}}"}
+ test_config = {"yeahhhhh": "{{}}"}
test_rels = ["testing_bravo.somedomain.com"]
- assert {'yeahhhhh': []} == client.resolve_override(test_config, test_rels)
+ assert {"yeahhhhh": []} == client.resolve_override(test_config, test_rels)
def test_bad_config_dmaap():
- test_config = {'darkness': "<<>>"}
+ test_config = {"darkness": "<<>>"}
test_dmaap = {"WHO?": "darkness"}
- assert {'darkness': {}} == client.resolve_override(test_config, test_dmaap)
+ assert {"darkness": {}} == client.resolve_override(test_config, test_dmaap)
def test_config_with_list(monkeypatch, monkeyed_get_connection_info_from_consul):
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
- test_config_1 = {"dcae_target_type": [
- "vhss-ems", "pcrf-oam"], "downstream-laika": "{{ laika }}", "some-param": "Lorem ipsum dolor sit amet"}
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
+ test_config_1 = {
+ "dcae_target_type": ["vhss-ems", "pcrf-oam"],
+ "downstream-laika": "{{ laika }}",
+ "some-param": "Lorem ipsum dolor sit amet",
+ }
test_rels_1 = ["3df5292249ae4a949f173063617cea8d_docker-snmp-polling-firstnet-m"]
test_bind_1 = client.resolve_override(test_config_1, test_rels_1, {})
- assert(test_bind_1 == {'dcae_target_type': [
- 'vhss-ems', 'pcrf-oam'], 'downstream-laika': [], 'some-param': 'Lorem ipsum dolor sit amet'})
+ assert test_bind_1 == {
+ "dcae_target_type": ["vhss-ems", "pcrf-oam"],
+ "downstream-laika": [],
+ "some-param": "Lorem ipsum dolor sit amet",
+ }
test_config_2 = {"foo": ["{{cdap}}", "notouching", "<<yo>>"]}
test_rels_2 = ["cdap"]
test_dmaap_2 = {"yo": "im here"}
test_bind_2 = client.resolve_override(test_config_2, test_rels_2, test_dmaap_2)
- assert(test_bind_2 == {"foo": [['666.666.666.666:666'], "notouching", "im here"]})
+ assert test_bind_2 == {"foo": [["666.666.666.666:666"], "notouching", "im here"]}
def test_cdap(monkeypatch, monkeyed_get_connection_info_from_consul):
# user override to test CDAP functionality
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
- test_rels = ["testing_alpha.somedomain.com", "testing_bravo.somedomain.com",
- "testing_charlie.somedomain.com", "testing_charlie.somedomain.com", "cdap"]
- test_config = {"streams_publishes": "{{alpha}}",
- # should be dumped
- "services_calls": [{"somekey": "{{charlie}}"}],
- "cdap_to_manage": {'some_nested_thing': "{{cdap}}"}} # no dumps
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
+ test_rels = [
+ "testing_alpha.somedomain.com",
+ "testing_bravo.somedomain.com",
+ "testing_charlie.somedomain.com",
+ "testing_charlie.somedomain.com",
+ "cdap",
+ ]
+ test_config = {
+ "streams_publishes": "{{alpha}}",
+ # should be dumped
+ "services_calls": [{"somekey": "{{charlie}}"}],
+ "cdap_to_manage": {"some_nested_thing": "{{cdap}}"},
+ } # no dumps
test_bind_1 = client.resolve_override(test_config, test_rels)
- assert test_bind_1 == {'services_calls': [{"somekey": ["5.5.5.5:555", "5.5.5.5:555"]}], 'streams_publishes': [
- "6.6.6.6:666"], 'cdap_to_manage': {'some_nested_thing': ['666.666.666.666:666']}}
- assert test_bind_1['services_calls'] == [{"somekey": ["5.5.5.5:555", "5.5.5.5:555"]}]
- assert test_bind_1['streams_publishes'] == ["6.6.6.6:666"]
+ assert test_bind_1 == {
+ "services_calls": [{"somekey": ["5.5.5.5:555", "5.5.5.5:555"]}],
+ "streams_publishes": ["6.6.6.6:666"],
+ "cdap_to_manage": {"some_nested_thing": ["666.666.666.666:666"]},
+ }
+ assert test_bind_1["services_calls"] == [{"somekey": ["5.5.5.5:555", "5.5.5.5:555"]}]
+ assert test_bind_1["streams_publishes"] == ["6.6.6.6:666"]
def test_multiple_service_types(monkeypatch, monkeyed_get_connection_info_from_consul):
# test {{x,y,z}}
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
# test 1: they all resovle
- test_rels = ["testing_alpha.somedomain.com", "testing_bravo.somedomain.com",
- "testing_charlie.somedomain.com", "testing_charlie.somedomain.com"]
+ test_rels = [
+ "testing_alpha.somedomain.com",
+ "testing_bravo.somedomain.com",
+ "testing_charlie.somedomain.com",
+ "testing_charlie.somedomain.com",
+ ]
config = {"ALL YOUR SERVICE BELONG TO US": "{{alpha,bravo,charlie}}"}
test_bind_1 = client.resolve_override(config, test_rels)
- assert(test_bind_1 == {"ALL YOUR SERVICE BELONG TO US": [
- '6.6.6.6:666', '7.7.7.7:777', '5.5.5.5:555', '5.5.5.5:555']})
+ assert test_bind_1 == {"ALL YOUR SERVICE BELONG TO US": ["6.6.6.6:666", "7.7.7.7:777", "5.5.5.5:555", "5.5.5.5:555"]}
# test 2: two resolve, one is missing from rels key
config2 = {"two there one not exist": "{{alpha,bravo,notexist}}"}
test_bind_2 = client.resolve_override(config2, test_rels)
- assert(test_bind_2 == {"two there one not exist": [
- '6.6.6.6:666', '7.7.7.7:777']})
+ assert test_bind_2 == {"two there one not exist": ["6.6.6.6:666", "7.7.7.7:777"]}
# test 3: two resolve, one is in rels key but not registered
config3 = {"two there one unregistered": "{{alpha,bravo,unregistered}}"}
- test_rels3 = ["testing_alpha.somedomain.com",
- "testing_bravo.somedomain.com", "unregistered.somedomain.com"]
+ test_rels3 = ["testing_alpha.somedomain.com", "testing_bravo.somedomain.com", "unregistered.somedomain.com"]
test_bind_3 = client.resolve_override(config3, test_rels3)
- assert(test_bind_3 == {"two there one unregistered": [
- '6.6.6.6:666', '7.7.7.7:777']})
+ assert test_bind_3 == {"two there one unregistered": ["6.6.6.6:666", "7.7.7.7:777"]}
def test_dmaap(monkeypatch):
# test resolving dmaap key
config = {"TODAY IS YOUR LUCKY DAY": "<<XXX>>"}
# does not match
- test_bind = client.resolve_override(
- config, dmaap={"XX": "ABSOLVEME"}) # XX != XXX
- assert(test_bind == {"TODAY IS YOUR LUCKY DAY": {}})
+ test_bind = client.resolve_override(config, dmaap={"XX": "ABSOLVEME"}) # XX != XXX
+ assert test_bind == {"TODAY IS YOUR LUCKY DAY": {}}
# matches
test_bind_2 = client.resolve_override(config, dmaap={"XXX": "ABSOLVEME"})
- assert(test_bind_2 == {"TODAY IS YOUR LUCKY DAY": "ABSOLVEME"})
+ assert test_bind_2 == {"TODAY IS YOUR LUCKY DAY": "ABSOLVEME"}
def test_config(monkeypatch, monkeyed_get_connection_info_from_consul):
# test config override
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
- test_config = {"autoderegisterafter": "10m", "cdap_to_manage": {
- 'some_nested_thing': "{{cdap}}"}, "bindingttw": 5, "hcinterval": "5s"}
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
+ test_config = {
+ "autoderegisterafter": "10m",
+ "cdap_to_manage": {"some_nested_thing": "{{cdap}}"},
+ "bindingttw": 5,
+ "hcinterval": "5s",
+ }
test_rels = ["cdap"]
test_bind_1 = client.resolve_override(test_config, test_rels)
- assert test_bind_1 == {'autoderegisterafter': '10m', 'cdap_to_manage': {
- 'some_nested_thing': ['666.666.666.666:666']}, 'bindingttw': 5, 'hcinterval': '5s'}
+ assert test_bind_1 == {
+ "autoderegisterafter": "10m",
+ "cdap_to_manage": {"some_nested_thing": ["666.666.666.666:666"]},
+ "bindingttw": 5,
+ "hcinterval": "5s",
+ }
def test_non_existent(monkeypatch, monkeyed_get_connection_info_from_consul):
# test a valid config-rels but the key is not in Consul
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
test_config = {"you shall not be fufilled": "{{nonexistent_hope}}"}
# hopefully not registered in Consul..
test_rels = ["nonexistent_hope.rework-central.ecomp.somedomain.com"]
test_bind_1 = client.resolve_override(test_config, test_rels, {})
- assert(test_bind_1 == {"you shall not be fufilled": []})
+ assert test_bind_1 == {"you shall not be fufilled": []}
def test_broker_redirect(monkeypatch, monkeyed_get_connection_info_from_consul):
# test the broker redirect
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
test_config = {"gimmie_dat_cdap": "{{cdap_serv}}"}
test_rels = ["cdap_serv.dcae.ecomp.somedomain.com"]
- assert {"gimmie_dat_cdap": ['http://1.1.1.1:444/application/cdap_serv.dcae.ecomp.somedomain.com']
- } == client.resolve_override(test_config, test_rels)
+ assert {
+ "gimmie_dat_cdap": ["http://1.1.1.1:444/application/cdap_serv.dcae.ecomp.somedomain.com"]
+ } == client.resolve_override(test_config, test_rels)
def test_both(monkeypatch, monkeyed_get_connection_info_from_consul, expected_config):
# test rels and http
- monkeypatch.setattr('config_binding_service.client._get_connection_info_from_consul',
- monkeyed_get_connection_info_from_consul)
- test_rels = ["testing_alpha.somedomain.com", "testing_bravo.somedomain.com",
- "testing_charlie.somedomain.com", "testing_charlie.somedomain.com"]
+ monkeypatch.setattr(
+ "config_binding_service.client._get_connection_info_from_consul", monkeyed_get_connection_info_from_consul
+ )
+ test_rels = [
+ "testing_alpha.somedomain.com",
+ "testing_bravo.somedomain.com",
+ "testing_charlie.somedomain.com",
+ "testing_charlie.somedomain.com",
+ ]
test_dmaap = {"WHO?": "darkness"}
- config = {"deep": {"ALL YOUR SERVICE BELONG TO US": "{{alpha,bravo,charlie}}"},
- "doubledeep": {"sodeep": {"hello": "<<WHO?>>"}}}
+ config = {
+ "deep": {"ALL YOUR SERVICE BELONG TO US": "{{alpha,bravo,charlie}}"},
+ "doubledeep": {"sodeep": {"hello": "<<WHO?>>"}},
+ }
test_bind_1 = client.resolve_override(config, test_rels, test_dmaap)
- assert(test_bind_1 == expected_config)
+ 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):
+ 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(exceptions.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")
+ with pytest.raises(exceptions.CantGetConfig):
+ client.get_key(
+ "nokeyforyou",
+ "test_service_component_name.unknown.unknown.unknown.dcae.onap.org",
+ FakeReq(),
+ "unit test xer",
+ )
diff --git a/tests/test_utils.py b/tests/test_utils.py
new file mode 100644
index 0000000..f131f6e
--- /dev/null
+++ b/tests/test_utils.py
@@ -0,0 +1,41 @@
+# ============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 pytest
+from config_binding_service import utils, exceptions
+import os
+
+
+def test_https_flags(monkeypatch):
+ """test getting https flags"""
+ key_loc, cert_loc = utils.get_https_envs()
+ assert key_loc is None and cert_loc is None
+
+ monkeypatch.setenv("USE_HTTPS", "1")
+ with pytest.raises(exceptions.BadHTTPSEnvs):
+ utils.get_https_envs()
+
+ cur_dir = os.path.dirname(os.path.realpath(__file__))
+ monkeypatch.setenv("HTTPS_KEY_PATH", "{0}/fixtures/test_k.key".format(cur_dir))
+ monkeypatch.setenv("HTTPS_CERT_PATH", "{0}/fixtures/NONEXISTENT".format(cur_dir))
+ with pytest.raises(exceptions.BadHTTPSEnvs):
+ utils.get_https_envs()
+
+ monkeypatch.setenv("HTTPS_CERT_PATH", "{0}/fixtures/test_c.crt".format(cur_dir))
+ key_loc, cert_loc = utils.get_https_envs()
+ assert key_loc is not None
+ assert cert_loc is not None