From 47db335d112489afe8e7cab4950a868ebae2c470 Mon Sep 17 00:00:00 2001
From: Nikolay Stanchev <ns17@it-innovation.soton.ac.uk>
Date: Tue, 10 Jul 2018 12:18:05 +0100
Subject: [PATCH] Updates graph api tests

---
 src/service/clmcservice/graphapi/tests.py     | 15 +++++++++++++++
 src/service/clmcservice/graphapi/utilities.py |  9 ++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/src/service/clmcservice/graphapi/tests.py b/src/service/clmcservice/graphapi/tests.py
index 04c687e..ddb3870 100644
--- a/src/service/clmcservice/graphapi/tests.py
+++ b/src/service/clmcservice/graphapi/tests.py
@@ -126,6 +126,21 @@ class TestGraphAPI(object):
             error_raised = True
         assert error_raised, "A bad request error must have been raised in case of invalid URL parameters."
 
+        service_functions = dict(nginx={"measurement_name": "nginx", "response_time_field": "mean(avg_processing_time)"},
+                                 minio={"measurement_name": "minio_http", "response_time_field": "mean(total_processing_time)/mean(total_requests_count)"},
+                                 apache={"measurement_name": "apache", "response_time_field": "mean(avg_processing_time)"})
+        body = dumps(dict(database=test_db_name, retention_policy="autogen", service_function_chain_instance="sfc_1", service_functions=service_functions))
+        request = testing.DummyRequest()
+        request.params["from"] = "not a timestamp"
+        request.params["to"] = "not a timestamp"
+        request.body = body.encode(request.charset)
+        error_raised = False
+        try:
+            GraphAPI(request).build_temporal_graph()
+        except HTTPBadRequest:
+            error_raised = True
+        assert error_raised, "A bad request error must have been raised in case of invalid URL parameters."
+
         service_functions = dict(nginx={"measurement_name": "nginx", "response_time_field": "mean(avg_processing_time)"},
                                  minio={"measurement_name": "minio_http", "response_time_field": "mean(total_processing_time)/mean(total_requests_count)"})
         build_json_body = dict(database=test_db_name, retention_policy="autogen", service_function_chain_instance="test_sfc1_1", service_functions=service_functions)
diff --git a/src/service/clmcservice/graphapi/utilities.py b/src/service/clmcservice/graphapi/utilities.py
index c4ef5ed..93bcd09 100644
--- a/src/service/clmcservice/graphapi/utilities.py
+++ b/src/service/clmcservice/graphapi/utilities.py
@@ -96,9 +96,12 @@ def validate_graph_url_params(params):
         assert param in params, "Incorrect url parameters - required url query parameter '{0}' is not found in the request parameters.".format(param)
         url_params[param] = params[param]
 
-    # convert timestamps to integers
-    url_params['from'] = int(url_params['from'])
-    url_params['to'] = int(url_params['to'])
+    try:
+        # convert timestamps to integers
+        url_params['from'] = int(url_params['from'])
+        url_params['to'] = int(url_params['to'])
+    except ValueError:
+        assert False, "Invalid URL timestamp parameters"
 
     return url_params
 
-- 
GitLab