summaryrefslogtreecommitdiffstats
path: root/dcae-policy/tests
diff options
context:
space:
mode:
Diffstat (limited to 'dcae-policy/tests')
-rw-r--r--dcae-policy/tests/mock_setup.py1
-rw-r--r--dcae-policy/tests/test_discovery.py14
-rw-r--r--dcae-policy/tests/test_tasks.py66
3 files changed, 67 insertions, 14 deletions
diff --git a/dcae-policy/tests/mock_setup.py b/dcae-policy/tests/mock_setup.py
index c74b236..cbc4a35 100644
--- a/dcae-policy/tests/mock_setup.py
+++ b/dcae-policy/tests/mock_setup.py
@@ -153,4 +153,3 @@ class MonkeyedNode(object):
relationships=relationships
)
MonkeyedLogHandler.add_handler_to(self.ctx.logger)
-
diff --git a/dcae-policy/tests/test_discovery.py b/dcae-policy/tests/test_discovery.py
index 893b7ce..129ad99 100644
--- a/dcae-policy/tests/test_discovery.py
+++ b/dcae-policy/tests/test_discovery.py
@@ -22,6 +22,8 @@ import base64
import json
import pytest
+import requests
+from cloudify.exceptions import NonRecoverableError
from cloudify.state import current_ctx
from dcaepolicyplugin import discovery, tasks
@@ -30,12 +32,12 @@ from tests.mock_cloudify_ctx import MockCloudifyContextFull
from tests.mock_setup import (MONKEYED_POLICY_ID, POLICY_ID, MonkeyedNode,
MonkeyedResponse)
-POLICY_HANDLER_FROM_KV = "http:policy_handler_from_kv:25577"
+POLICY_HANDLER_FROM_KV = "http://policy_handler_from_kv:25577"
def monkeyed_discovery_get_failure(full_path):
"""monkeypatch for the GET to consul"""
- return MonkeyedResponse(full_path)
+ raise requests.ConnectionError("monkey-boom")
def test_discovery_failure(monkeypatch):
@@ -50,8 +52,12 @@ def test_discovery_failure(monkeypatch):
)
try:
current_ctx.set(node_policy.ctx)
- tasks.PolicyHandler._lazy_init()
- assert tasks.PolicyHandler.DEFAULT_URL == tasks.PolicyHandler._url
+ with pytest.raises(NonRecoverableError) as excinfo:
+ tasks.PolicyHandler._lazy_init()
+
+ CtxLogger.log_ctx_info("test_discovery_failure: {0}".format(str(excinfo.value)))
+ assert str(excinfo.value).startswith("ConnectionError")
+
finally:
tasks.PolicyHandler._url = None
diff --git a/dcae-policy/tests/test_tasks.py b/dcae-policy/tests/test_tasks.py
index 9f9121d..f2ca205 100644
--- a/dcae-policy/tests/test_tasks.py
+++ b/dcae-policy/tests/test_tasks.py
@@ -70,9 +70,29 @@ def test_policy_get(monkeypatch):
assert MonkeyedPolicyBody.is_the_same_dict(result, expected)
assert MonkeyedPolicyBody.is_the_same_dict(expected, result)
- node_ms = MonkeyedNode('test_ms_id', 'test_ms_name', "ms.nodes.type", None,
- [{TARGET_NODE_ID: node_policy.node_id,
- TARGET_NODE_NAME: node_policy.node_name}])
+ finally:
+ MockCloudifyContextFull.clear()
+ current_ctx.clear()
+
+
+def test_policy_get_fail(monkeypatch):
+ """test policy_get operation on non dcae.nodes.policy node"""
+ tasks.PolicyHandler._url = tasks.PolicyHandler.DEFAULT_URL
+ monkeypatch.setattr('requests.get', monkeyed_policy_handler_get)
+
+ node_policy = MonkeyedNode(
+ 'test_dcae_policy_node_id',
+ 'test_dcae_policy_node_name',
+ tasks.DCAE_POLICY_TYPE,
+ {POLICY_ID: MONKEYED_POLICY_ID}
+ )
+
+ node_ms = MonkeyedNode(
+ 'test_ms_id', 'test_ms_name', "ms.nodes.type", None,
+ [{TARGET_NODE_ID: node_policy.node_id, TARGET_NODE_NAME: node_policy.node_name}]
+ )
+
+ try:
current_ctx.set(node_ms.ctx)
CtxLogger.log_ctx_info("ctx of node_ms not policy type")
with pytest.raises(NonRecoverableError) as excinfo:
@@ -87,9 +107,11 @@ def test_policy_get(monkeypatch):
def monkeyed_policy_handler_find(full_path, json, headers):
"""monkeypatch for the GET to policy-engine"""
- return MonkeyedResponse(full_path, headers,
+ return MonkeyedResponse(
+ full_path, headers,
{LATEST_POLICIES: {
- MONKEYED_POLICY_ID: MonkeyedPolicyBody.create_policy(MONKEYED_POLICY_ID)}})
+ MONKEYED_POLICY_ID: MonkeyedPolicyBody.create_policy(MONKEYED_POLICY_ID)}}
+ )
def test_policies_find(monkeypatch):
@@ -128,10 +150,36 @@ def test_policies_find(monkeypatch):
assert MonkeyedPolicyBody.is_the_same_dict(result, expected)
assert MonkeyedPolicyBody.is_the_same_dict(expected, result)
- node_ms_multi = MonkeyedNode('test_ms_multi_id', 'test_ms_multi_name', "ms.nodes.type",
- None,
- [{TARGET_NODE_ID: node_policies.node_id,
- TARGET_NODE_NAME: node_policies.node_name}])
+ finally:
+ MockCloudifyContextFull.clear()
+ current_ctx.clear()
+
+
+def test_policies_find_fail(monkeypatch):
+ """test policy_get operation on non dcae.nodes.policies node"""
+ tasks.PolicyHandler._url = tasks.PolicyHandler.DEFAULT_URL
+ monkeypatch.setattr('requests.post', monkeyed_policy_handler_find)
+
+ node_policies = MonkeyedNode(
+ 'test_dcae_policies_node_id',
+ 'test_dcae_policies_node_name',
+ tasks.DCAE_POLICIES_TYPE,
+ {
+ tasks.POLICY_FILTER: {
+ POLICY_NAME: MONKEYED_POLICY_ID,
+ tasks.CONFIG_ATTRIBUTES: json.dumps({
+ CONFIG_NAME: "alex_config_name"
+ })
+ }
+ }
+ )
+ node_ms_multi = MonkeyedNode(
+ 'test_ms_multi_id', 'test_ms_multi_name', "ms.nodes.type",
+ None,
+ [{TARGET_NODE_ID: node_policies.node_id, TARGET_NODE_NAME: node_policies.node_name}]
+ )
+
+ try:
current_ctx.set(node_ms_multi.ctx)
CtxLogger.log_ctx_info("ctx of node_ms_multi not policy type")
with pytest.raises(NonRecoverableError) as excinfo: