-
Notifications
You must be signed in to change notification settings - Fork 479
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #501 from mattmahoneyrh/KIALI-1532
KIALI-1532 - Added new test cases and restructured test classes
- Loading branch information
Showing
9 changed files
with
241 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,4 +4,4 @@ | |
virtualenv | ||
pytest==3.6 | ||
pyyaml | ||
kiali-client==0.4.7 | ||
kiali-client==0.4.8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import json | ||
import tests.conftest as conftest | ||
|
||
APPLICATION_TO_VALIDATE = 'productpage' | ||
|
||
PARAMS = {'graphType': 'versionedApp', 'duration': '60s'} | ||
|
||
|
||
def test_application_list_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
app_list = kiali_client.app_list(namespace=bookinfo_namespace) | ||
assert app_list != None | ||
for app in app_list.get('applications'): | ||
assert app.get('istioSidecar') == True | ||
|
||
assert app_list.get('namespace').get('name') == bookinfo_namespace | ||
|
||
def test_application_details_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
app_details = kiali_client.app_details(namespace=bookinfo_namespace, app=APPLICATION_TO_VALIDATE) | ||
|
||
assert app_details != None | ||
assert app_details.get('namespace').get('name') == bookinfo_namespace | ||
assert 'workloads' in app_details and (len(app_details.get('workloads')) > 0) | ||
assert app_details.get('workloads')[0].get('istioSidecar') == True | ||
|
||
def test_application_health_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
app_health = kiali_client.app_health(namespace=bookinfo_namespace, app=APPLICATION_TO_VALIDATE) | ||
assert app_health != None | ||
assert app_health.get('envoy') != None | ||
assert app_health.get('deploymentStatuses') | ||
assert app_health.get('requests') | ||
|
||
def test_application_metrics_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
app_metrics = kiali_client.app_metrics(namespace=bookinfo_namespace, app=APPLICATION_TO_VALIDATE) | ||
assert app_metrics != None | ||
assert app_metrics.get('source') != None | ||
assert app_metrics.get('source').get('metrics') != None | ||
assert app_metrics.get('dest').get('metrics') != None | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
import pytest | ||
import tests.conftest as conftest | ||
|
||
# Note: Number of services +1 Views Group Node | ||
# Note: Node and Edge counts are based on traffic origainating from the Ingress | ||
BOOKINFO_EXPECTED_NODES=7 | ||
BOOKINFO_EXPECTED_EDGES=6 | ||
BOOKINFO_EXPECTED_SERVICES = 4 | ||
|
||
PARAMS = {'graphType': 'versionedApp', 'duration': '60s'} | ||
|
||
def test_service_graph_rest_endpoint(kiali_json): | ||
|
||
assert kiali_json != None, "Json: {}".format(kiali_json) | ||
|
||
# Validate that there are Nodes | ||
assert len(kiali_json.get('elements').get('nodes')) >= 1 | ||
|
||
# Validate that there are Edges | ||
assert len(kiali_json.get('elements').get('edges')) >= 1 | ||
|
||
def test_service_graph_bookinfo_namespace_(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
# Validate Node count | ||
nodes = kiali_client.graph_namespace(namespace=bookinfo_namespace, params=PARAMS)["elements"]['nodes'] | ||
#print ("Node count: {}".format(len(nodes))) | ||
assert len(nodes) >= BOOKINFO_EXPECTED_NODES | ||
|
||
# validate edge count | ||
edges = kiali_client.graph_namespace(namespace=bookinfo_namespace, params=PARAMS)["elements"]['edges'] | ||
#print ("Edge count: {}".format(len(edges))) | ||
assert len(edges) >= BOOKINFO_EXPECTED_EDGES |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
import pytest | ||
import tests.conftest as conftest | ||
|
||
OBJECT_TYPE = 'virtualservices' | ||
|
||
def test_istio_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
istio = kiali_client.istio(namespace=bookinfo_namespace) | ||
|
||
assert istio != None | ||
assert "destinationRules" in istio | ||
assert istio.get('destinationRules') != None | ||
assert bookinfo_namespace in istio.get('namespace').get('name') | ||
|
||
def test_istio_validations_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
istio_validations = kiali_client.istio_validations(namespace=bookinfo_namespace) | ||
|
||
assert istio_validations != None | ||
assert bookinfo_namespace in istio_validations | ||
|
||
def _test_istio_object_type(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
istio_object_type = kiali_client.istio_object_type(bookinfo_namespace, OBJECT_TYPE, bookinfo_namespace) | ||
assert istio_object_type != None | ||
assert "destinationRule" in istio_object_type | ||
assert bookinfo_namespace in istio_object_type.get('namespace').get('name') | ||
|
||
def _test_istio_object_istio_validations(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
istio_validations = kiali_client.istio_object_istio_validations(bookinfo_namespace, OBJECT_TYPE, bookinfo_namespace) | ||
assert istio_validations != None | ||
#assert istio_validations.get('virtualservice') != None | ||
assert istio_validations.get('virtualservice').get(bookinfo_namespace) != None | ||
assert bookinfo_namespace in istio_validations.get('virtualservice').get(bookinfo_namespace).get('name') | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import pytest | ||
import tests.conftest as conftest | ||
|
||
BOOKINFO_EXPECTED_SERVICES = 4 | ||
BOOKINFO_EXPECTED_SERVICES_MONGODB = 5 | ||
SERVICE_TO_VALIDATE = 'reviews' | ||
|
||
def test_service_list_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
assert kiali_client.service_list(namespace=bookinfo_namespace).get('namespace').get('name') == bookinfo_namespace | ||
number_services = len (kiali_client.service_list(namespace=bookinfo_namespace).get('services')) | ||
assert (number_services == BOOKINFO_EXPECTED_SERVICES) or (number_services == BOOKINFO_EXPECTED_SERVICES_MONGODB) | ||
|
||
def test_service_detail_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
service_details = kiali_client.service_details(namespace=bookinfo_namespace, service=SERVICE_TO_VALIDATE) | ||
assert service_details != None | ||
assert service_details.get('istioSidecar') == True | ||
assert 'workloads' in service_details | ||
assert 'service' in service_details | ||
|
||
def test_service_metrics_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
service_metrics = kiali_client.service_metrics(namespace=bookinfo_namespace, service=SERVICE_TO_VALIDATE).get('dest') | ||
assert 'metrics' in service_metrics | ||
|
||
def test_service_health_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
service_health = kiali_client.service_health(namespace=bookinfo_namespace, service=SERVICE_TO_VALIDATE) | ||
assert service_health != None | ||
envoy = service_health.get('envoy') | ||
assert envoy != None | ||
assert 'inbound' in envoy | ||
assert 'outbound' in envoy | ||
|
||
def test_service_validations_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
service_validations = kiali_client.service_validations(namespace=bookinfo_namespace, service=SERVICE_TO_VALIDATE) | ||
assert service_validations != None | ||
assert len(service_validations.get('pod')) > 0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import pytest | ||
import tests.conftest as conftest | ||
from utils.url_connection import url_connection | ||
|
||
VALIDATE_GRAFANA_URL_CONNECTION = False | ||
VALIDATE_JAEGER_URL_CONNECTION = False | ||
|
||
def test_grafana_url_endpoint(kiali_client): | ||
url = kiali_client.grafana().get('url') | ||
assert url != None and 'grafana-istio-system' in url | ||
if VALIDATE_GRAFANA_URL_CONNECTION: | ||
content = url_connection.open_url_connection(url) | ||
assert content != None | ||
else: | ||
print("Skipping Grafana URL Connection Validation") | ||
|
||
def test_jaeger_url_endpoint(kiali_client): | ||
url = kiali_client.jaeger().get('url') | ||
assert url != None and 'jaeger-query-istio-system' in url | ||
|
||
if VALIDATE_JAEGER_URL_CONNECTION: | ||
content = url_connection.open_url_connection(url) | ||
assert content != None | ||
else: | ||
print ("Skipping Jaeger URL Connection Validation") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
import pytest | ||
import tests.conftest as conftest | ||
|
||
WORKLOAD_TO_VALIDATE = 'details-v1' | ||
WORKLOAD_TYPE = 'Deployment' | ||
|
||
def test_workload_list_endpoint(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
workload_list = kiali_client.workload_list(namespace=bookinfo_namespace) | ||
assert workload_list != None | ||
for workload in workload_list.get('workloads'): | ||
assert workload.get('istioSidecar') == True | ||
|
||
def test_workload_details(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
workload = kiali_client.workload_details(namespace=bookinfo_namespace, workload=WORKLOAD_TO_VALIDATE) | ||
assert workload != None | ||
assert WORKLOAD_TO_VALIDATE in workload.get('name') | ||
assert WORKLOAD_TYPE in workload.get('type') | ||
|
||
def test_workload_metrics(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
workload = kiali_client.workload_metrics(namespace=bookinfo_namespace, workload=WORKLOAD_TO_VALIDATE) | ||
assert workload != None | ||
metrics = workload.get('source').get('metrics') | ||
assert 'request_count_in' in metrics | ||
assert 'request_count_out' in metrics | ||
|
||
def test_workload_health(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
workload = kiali_client.workload_health(namespace=bookinfo_namespace, workload=WORKLOAD_TO_VALIDATE) | ||
assert workload != None | ||
assert WORKLOAD_TO_VALIDATE in workload.get('deploymentStatus').get('name') | ||
|
||
def test_workload_istio_validations(kiali_client): | ||
bookinfo_namespace = conftest.get_bookinfo_endpoint() | ||
|
||
workload = kiali_client.workload_istio_validations(namespace=bookinfo_namespace, workload=WORKLOAD_TO_VALIDATE) | ||
assert workload != None | ||
wp = workload.get('pod') | ||
assert wp != None | ||
assert WORKLOAD_TO_VALIDATE in wp.get(list(wp.keys())[0]).get('name') | ||
assert wp.get(list(wp.keys())[0]).get('valid') == True |