summaryrefslogtreecommitdiffstats
path: root/k8s/tests/test_discovery.py
diff options
context:
space:
mode:
Diffstat (limited to 'k8s/tests/test_discovery.py')
-rw-r--r--k8s/tests/test_discovery.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/k8s/tests/test_discovery.py b/k8s/tests/test_discovery.py
new file mode 100644
index 0000000..24e45ee
--- /dev/null
+++ b/k8s/tests/test_discovery.py
@@ -0,0 +1,71 @@
+# ============LICENSE_START=======================================================
+# org.onap.dcae
+# ================================================================================
+# 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 pytest
+from functools import partial
+import requests
+
+def test_wrap_consul_call(mockconfig):
+ from k8splugin import discovery as dis
+
+ def foo(a, b, c="default"):
+ return " ".join([a, b, c])
+
+ wrapped_foo = partial(dis._wrap_consul_call, foo)
+ assert wrapped_foo("hello", "world") == "hello world default"
+ assert wrapped_foo("hello", "world", c="new masters") == "hello world new masters"
+
+ def foo_connection_error(a, b, c):
+ raise requests.exceptions.ConnectionError("simulate failed connection")
+
+ wrapped_foo = partial(dis._wrap_consul_call, foo_connection_error)
+ with pytest.raises(dis.DiscoveryConnectionError):
+ wrapped_foo("a", "b", "c")
+
+def test_generate_service_component_name(mockconfig):
+ from k8splugin import discovery as dis
+
+ component_type = "some-component-type"
+ name = dis.generate_service_component_name(component_type)
+ assert name.split("-", 1)[1] == component_type
+
+def test_find_matching_services(mockconfig):
+ from k8splugin import discovery as dis
+
+ services = { "component_dockerhost_1": ["foo", "bar"],
+ "platform_dockerhost": [], "component_dockerhost_2": ["baz"] }
+ assert sorted(["component_dockerhost_1", "component_dockerhost_2"]) \
+ == sorted(dis._find_matching_services(services, "component_dockerhost", []))
+
+ assert ["component_dockerhost_1"] == dis._find_matching_services(services, \
+ "component_dockerhost", ["foo", "bar"])
+
+ assert ["component_dockerhost_1"] == dis._find_matching_services(services, \
+ "component_dockerhost", ["foo"])
+
+ assert [] == dis._find_matching_services(services, "unknown", ["foo"])
+
+def test_is_healthy_pure(mockconfig):
+ from k8splugin import discovery as dis
+
+ def fake_is_healthy(name):
+ return 0, [{ "Checks": [{"Status": "passing"}] }]
+
+ assert True == dis._is_healthy_pure(fake_is_healthy, "some-component") \ No newline at end of file