From 831baffde96cd7f644375a2e24f3c39fdd2b7616 Mon Sep 17 00:00:00 2001 From: Mariusz Wagner Date: Fri, 14 Sep 2018 14:24:02 +0200 Subject: Added keyword to common.robot - add new keyword to read files in common.robot - fix one keyword in common.robot - used new keyword in PRH suite - use new keyword in dcaegen2 suite Issue-ID: INT-661 Change-Id: I36cd2d5b82a20938a7b0775c9792dc2364a21922 Signed-off-by: Mariusz Wagner --- test/csit/tests/dcaegen2/testcases/dcae_ves.robot | 66 +++++------- .../tests/dcaegen2/testcases/resources/DMaaP.py | 112 +++++++++++---------- .../dcaegen2/testcases/resources/DcaeLibrary.py | 86 +++++++++------- .../dcaegen2/testcases/resources/DcaeVariables.py | 9 +- .../testcases/resources/dcae_keywords.robot | 76 ++++++++------ .../testcases/resources/dcae_properties.robot | 3 +- 6 files changed, 187 insertions(+), 165 deletions(-) (limited to 'test/csit/tests/dcaegen2/testcases') diff --git a/test/csit/tests/dcaegen2/testcases/dcae_ves.robot b/test/csit/tests/dcaegen2/testcases/dcae_ves.robot index 393359f54..daed35fa8 100644 --- a/test/csit/tests/dcaegen2/testcases/dcae_ves.robot +++ b/test/csit/tests/dcaegen2/testcases/dcae_ves.robot @@ -5,8 +5,9 @@ Library OperatingSystem Library Collections Library DcaeLibrary Resource resources/dcae_keywords.robot +Resource ../../common.robot Test Setup Cleanup VES Events -Suite Setup VES Collector Suite Setup DMaaP +Suite Setup Run keywords VES Collector Suite Setup DMaaP Create sessions Create header Suite Teardown VES Collector Suite Shutdown DMaaP *** Variables *** @@ -15,13 +16,12 @@ ${VESC_URL} http://%{VESC_IP}:8080 ${VES_ANY_EVENT_PATH} /eventListener/v5 ${VES_BATCH_EVENT_PATH} /eventListener/v5/eventBatch ${VES_THROTTLE_STATE_EVENT_PATH} /eventListener/v5/clientThrottlingState -${HEADER_STRING} content-type=application/json ${EVENT_DATA_FILE} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event.json ${EVENT_MEASURE_FILE} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_vfirewall_measurement.json ${EVENT_DATA_FILE_BAD} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_volte_single_fault_event_bad.json ${EVENT_BATCH_DATA_FILE} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_eventlist_batch.json ${EVENT_THROTTLING_STATE_DATA_FILE} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_volte_fault_provide_throttle_state.json -${EVENT_PNF_REGISTRATION} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json +${EVENT_PNF_REGISTRATION} %{WORKSPACE}/test/csit/tests/dcaegen2/testcases/assets/json_events/ves_pnf_registration_event.json #DCAE Health Check ${CONFIG_BINDING_URL} http://localhost:8443 @@ -30,22 +30,20 @@ ${CB_SERVICE_COMPONENT_PATH} /service_component/ ${VES_Service_Name1} dcae-controller-ves-collector ${VES_Service_Name2} ves-collector-not-exist -*** Test Cases *** +*** Test Cases *** VES Collector Health Check [Tags] DCAE-VESC-R1 [Documentation] Ves Collector Health Check ${uuid}= Generate UUID - ${session}= Create Session dcae ${VESC_URL} ${headers}= Create Dictionary Accept=*/* X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Get Request dcae /healthcheck headers=${headers} + ${resp}= Get Request ${suite_dcae_vesc_url_session} /healthcheck headers=${headers} Should Be Equal As Strings ${resp.status_code} 200 Publish Single VES VoLTE Fault Event [Tags] DCAE-VESC-R1 [Documentation] Post single event and expect 200 Response - ${evtdata}= Get Event Data From File ${EVENT_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} - ${resp}= Publish Event To VES Collector No Auth ${VESC_URL} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} + ${evtdata}= Get Data From File ${EVENT_DATA_FILE} + ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 200 ${isEmpty}= Is Json Empty ${resp} @@ -56,9 +54,8 @@ Publish Single VES VoLTE Fault Event Publish Single VES VNF Measurement Event [Tags] DCAE-VESC-R1 [Documentation] Post single event and expect 200 Response - ${evtdata}= Get Event Data From File ${EVENT_MEASURE_FILE} - ${headers}= Create Header From String ${HEADER_STRING} - ${resp}= Publish Event To VES Collector No Auth ${VESC_URL} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} + ${evtdata}= Get Data From File ${EVENT_MEASURE_FILE} + ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 200 ${isEmpty}= Is Json Empty ${resp} @@ -69,9 +66,8 @@ Publish Single VES VNF Measurement Event Publish VES VoLTE Fault Batch Events [Tags] DCAE-VESC-R1 [Documentation] Post batched events and expect 200 Response - ${evtdata}= Get Event Data From File ${EVENT_BATCH_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} - ${resp}= Publish Event To VES Collector No Auth ${VESC_URL} ${VES_BATCH_EVENT_PATH} ${headers} ${evtdata} + ${evtdata}= Get Data From File ${EVENT_BATCH_DATA_FILE} + ${resp}= Publish Event To VES Collector No Auth ${VES_BATCH_EVENT_PATH} ${evtdata} Should Be Equal As Strings ${resp.status_code} 200 #${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546016 ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546025 @@ -80,10 +76,9 @@ Publish VES VoLTE Fault Batch Events Publish Single VES VoLTE Fault Event With Bad Data [Tags] DCAE-VESC-R1 [Documentation] Run with JSON Envent with missing comma to expect 400 response - ${evtdata}= Get Event Data From File ${EVENT_DATA_FILE_BAD} - ${headers}= Create Header From String ${HEADER_STRING} + ${evtdata}= Get Data From File ${EVENT_DATA_FILE_BAD} Log Send HTTP Request with invalid Json Event Data - ${resp}= Publish Event To VES Collector No Auth ${VESC_URL} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} + ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 400 ${isEmpty}= Is Json Empty ${resp} @@ -92,20 +87,18 @@ Publish Single VES VoLTE Fault Event With Bad Data Publish VES Event With Invalid Method [Tags] DCAE-VESC-R1 [Documentation] Use invalid Put instead of Post method to expect 405 response - ${evtdata}= Get Event Data From File ${EVENT_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} + ${evtdata}= Get Data From File ${EVENT_DATA_FILE} Log Send HTTP Request with invalid method Put instead of Post - ${resp}= Publish Event To VES Collector With Put Method No Auth ${VESC_URL} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} + ${resp}= Publish Event To VES Collector With Put Method No Auth ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 404 Publish VES Event With Invalid URL Path [Tags] DCAE-VESC-R1 [Documentation] Use invalid url path to expect 404 response - ${evtdata}= Get Event Data From File ${EVENT_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} + ${evtdata}= Get Data From File ${EVENT_DATA_FILE} Log Send HTTP Request with invalid /listener/v5/ instead of /eventListener/v5 path - ${resp}= Publish Event To VES Collector No Auth ${VESC_URL} /listener/v5/ ${headers} ${evtdata} + ${resp}= Publish Event To VES Collector No Auth /listener/v5/ ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 404 @@ -123,10 +116,9 @@ Publish VES Event With Invalid URL Path Publish Single VES Fault Event Over HTTPS [Tags] DCAE-VESC-R1 [Documentation] Post single event and expect 200 Response - ${evtdata}= Get Event Data From File ${EVENT_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} + ${evtdata}= Get Data From File ${EVENT_DATA_FILE} Log Login User=${VESC_HTTPS_USER}, Pd=${VESC_HTTPS_PD} - ${resp}= Publish Event To VES Collector ${VESC_URL_HTTPS} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} sample1 sample1 + ${resp}= Publish Event To VES Collector ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 200 ${isEmpty}= Is Json Empty ${resp} @@ -137,9 +129,8 @@ Publish Single VES Fault Event Over HTTPS Publish Single VES Measurement Event Over HTTPS [Tags] DCAE-VESC-R1 [Documentation] Post single event and expect 200 Response - ${evtdata}= Get Event Data From File ${EVENT_MEASURE_FILE} - ${headers}= Create Header From String ${HEADER_STRING} - ${resp}= Publish Event To VES Collector ${VESC_URL_HTTPS} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} ${VESC_HTTPS_USER} ${VESC_HTTPS_PD} + ${evtdata}= Get Data From File ${EVENT_MEASURE_FILE} + ${resp}= Publish Event To VES Collector ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 200 ${isEmpty}= Is Json Empty ${resp} @@ -150,9 +141,8 @@ Publish Single VES Measurement Event Over HTTPS Publish VES Fault Batch Events Over HTTPS [Tags] DCAE-VESC-R1 [Documentation] Post batched events and expect 202 Response - ${evtdata}= Get Event Data From File ${EVENT_BATCH_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} - ${resp}= Publish Event To VES Collector ${VESC_URL_HTTPS} ${VES_BATCH_EVENT_PATH} ${headers} ${evtdata} ${VESC_HTTPS_USER} ${VESC_HTTPS_PD} + ${evtdata}= Get Data From File ${EVENT_BATCH_DATA_FILE} + ${resp}= Publish Event To VES Collector ${VES_BATCH_EVENT_PATH} ${evtdata} Should Be Equal As Strings ${resp.status_code} 200 #${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546016 ${ret}= DMaaP Message Receive ab305d54-85b4-a31b-7db2-fb6b9e546025 @@ -161,19 +151,17 @@ Publish VES Fault Batch Events Over HTTPS Publish VES Event With Invalid URL Path HTTPS [Tags] DCAE-VESC-R1 [Documentation] Use invalid url path to expect 404 response - ${evtdata}= Get Event Data From File ${EVENT_DATA_FILE} - ${headers}= Create Header From String ${HEADER_STRING} + ${evtdata}= Get Data From File ${EVENT_DATA_FILE} Log Send HTTP Request with invalid /eventlistener/v5/ instead of /eventListener/v5 path - ${resp}= Publish Event To VES Collector ${VESC_URL_HTTPS} /eventlistener/v5 ${headers} ${evtdata} ${VESC_HTTPS_USER} ${VESC_HTTPS_PD} + ${resp}= Publish Event To VES Collector /eventlistener/v5 ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 404 Publish PNF Registration Event [Tags] DCAE-VESC-R1 [Documentation] Post PNF registration event and expect 200 Response - ${evtdata}= Get Event Data From File ${EVENT_PNF_REGISTRATION} - ${headers}= Create Header From String ${HEADER_STRING} - ${resp}= Publish Event To VES Collector No Auth ${VESC_URL} ${VES_ANY_EVENT_PATH} ${headers} ${evtdata} + ${evtdata}= Get Data From File ${EVENT_PNF_REGISTRATION} + ${resp}= Publish Event To VES Collector No Auth ${VES_ANY_EVENT_PATH} ${evtdata} Log Receive HTTP Status code ${resp.status_code} Should Be Equal As Strings ${resp.status_code} 200 ${isEmpty}= Is Json Empty ${resp} diff --git a/test/csit/tests/dcaegen2/testcases/resources/DMaaP.py b/test/csit/tests/dcaegen2/testcases/resources/DMaaP.py index db59557db..092b60817 100644 --- a/test/csit/tests/dcaegen2/testcases/resources/DMaaP.py +++ b/test/csit/tests/dcaegen2/testcases/resources/DMaaP.py @@ -8,9 +8,13 @@ import posixpath import BaseHTTPServer import urllib import urlparse -import cgi, sys, shutil, mimetypes +import cgi +import sys +import shutil +import mimetypes from jsonschema import validate -import jsonschema, json +import jsonschema +import json import DcaeVariables import SimpleHTTPServer from robot.api import logger @@ -25,7 +29,7 @@ EvtSchema = None DMaaPHttpd = None -def cleanUpEvent(): +def clean_up_event(): sz = DcaeVariables.VESEventQ.qsize() for i in range(sz): try: @@ -33,8 +37,9 @@ def cleanUpEvent(): except: pass -def enqueEvent(evt): - if DcaeVariables.VESEventQ != None: + +def enque_event(evt): + if DcaeVariables.VESEventQ is not None: try: DcaeVariables.VESEventQ.put(evt) if DcaeVariables.IsRobotRun: @@ -46,12 +51,13 @@ def enqueEvent(evt): print (str(e)) return False return False - -def dequeEvent(waitSec=25): + + +def deque_event(wait_sec=25): if DcaeVariables.IsRobotRun: logger.console("Enter DequeEvent") try: - evt = DcaeVariables.VESEventQ.get(True, waitSec) + evt = DcaeVariables.VESEventQ.get(True, wait_sec) if DcaeVariables.IsRobotRun: logger.console("DMaaP Event dequeued - size=" + str(len(evt))) else: @@ -64,7 +70,8 @@ def dequeEvent(waitSec=25): else: print("DMaaP Event dequeue timeout") return None - + + class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_PUT(self): @@ -73,7 +80,7 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_POST(self): - respCode = 0 + resp_code = 0 # Parse the form data posted ''' form = cgi.FieldStorage( @@ -95,21 +102,21 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): ''' if 'POST' not in self.requestline: - respCode = 405 + resp_code = 405 ''' - if respCode == 0: + if resp_code == 0: if '/eventlistener/v5' not in self.requestline and '/eventlistener/v5/eventBatch' not in self.requestline and \ '/eventlistener/v5/clientThrottlingState' not in self.requestline: - respCode = 404 + resp_code = 404 - if respCode == 0: + if resp_code == 0: if 'Y29uc29sZTpaakprWWpsbE1qbGpNVEkyTTJJeg==' not in str(self.headers): - respCode = 401 + resp_code = 401 ''' - if respCode == 0: + if resp_code == 0: content_len = int(self.headers.getheader('content-length', 0)) post_body = self.rfile.read(content_len) @@ -123,21 +130,21 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): if indx != 0: post_body = post_body[indx:] - if enqueEvent(post_body) == False: + if not enque_event(post_body): print "enque event fails" global EvtSchema try: - if EvtSchema == None: - with open(DcaeVariables.CommonEventSchemaV5) as file: - EvtSchema = json.load(file) + if EvtSchema is None: + with open(DcaeVariables.CommonEventSchemaV5) as opened_file: + EvtSchema = json.load(opened_file) decoded_body = json.loads(post_body) jsonschema.validate(decoded_body, EvtSchema) except: - respCode = 400 + resp_code = 400 # Begin the response - if DcaeVariables.IsRobotRun == False: + if not DcaeVariables.IsRobotRun: print ("Response Message:") ''' @@ -154,18 +161,18 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): ''' - if respCode == 0: + if resp_code == 0: if 'clientThrottlingState' in self.requestline: self.send_response(204) else: self.send_response(200) self.send_header('Content-Type', 'application/json') self.end_headers() - #self.wfile.write("{'responses' : {'200' : {'description' : 'Success'}}}") + # self.wfile.write("{'responses' : {'200' : {'description' : 'Success'}}}") self.wfile.write("{'count': 1, 'serverTimeMs': 3}") self.wfile.close() else: - self.send_response(respCode) + self.send_response(resp_code) ''' self.end_headers() @@ -190,8 +197,7 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): self.wfile.write('\t%s=%s\n' % (field, form[field].value)) ''' return - - + def do_GET(self): """Serve a GET request.""" f = self.send_head() @@ -219,7 +225,6 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): """ path = self.translate_path(self.path) - f = None if os.path.isdir(path): parts = urlparse.urlsplit(self.path) if not parts.path.endswith('/'): @@ -268,18 +273,18 @@ class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): """ try: - list = os.listdir(path) + list_dir = os.listdir(path) except os.error: self.send_error(404, "No permission to list directory") return None - list.sort(key=lambda a: a.lower()) + list_dir.sort(key=lambda a: a.lower()) f = StringIO() displaypath = cgi.escape(urllib.unquote(self.path)) f.write('') f.write("\nDirectory listing for %s\n" % displaypath) f.write("\n

Directory listing for %s

\n" % displaypath) f.write("
\n