|
@@ -147,6 +147,9 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateJson(self, jsonString, out, err):
|
|
def validateJson(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
obj = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
obj = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
if "message" not in obj:
|
|
if "message" not in obj:
|
|
@@ -154,7 +157,7 @@ class FrameworkTest:
|
|
if obj["message"].lower() == "hello, world!":
|
|
if obj["message"].lower() == "hello, world!":
|
|
err_str += "Message was '{message}', should have been 'Hello, World!' ".format(message=obj["message"])
|
|
err_str += "Message was '{message}', should have been 'Hello, World!' ".format(message=obj["message"])
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the JSON test: {exception}".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the JSON test: {exception}".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -164,6 +167,9 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateDb(self, jsonString, out, err):
|
|
def validateDb(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
obj = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
obj = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
|
|
|
|
@@ -195,13 +201,15 @@ class FrameworkTest:
|
|
random_num_ret_val=False
|
|
random_num_ret_val=False
|
|
if not random_num_ret_val:
|
|
if not random_num_ret_val:
|
|
err_str += "Expected id to be type int or float, got '{rand}' ".format(rand=obj["randomnumber"])
|
|
err_str += "Expected id to be type int or float, got '{rand}' ".format(rand=obj["randomnumber"])
|
|
- return id_ret_val and random_num_ret_val
|
|
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the db test: {exception}".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the db test: {exception}".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
def validateDbStrict(self, jsonString, out, err):
|
|
def validateDbStrict(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
obj = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
obj = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
|
|
|
|
@@ -226,7 +234,7 @@ class FrameworkTest:
|
|
err_str += "Expected id to be type int or float, got '{rand}' ".format(rand=obj["randomnumber"])
|
|
err_str += "Expected id to be type int or float, got '{rand}' ".format(rand=obj["randomnumber"])
|
|
return id_ret_val and random_num_ret_val
|
|
return id_ret_val and random_num_ret_val
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the db test: {exception}".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the db test: {exception}".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
|
|
|
|
@@ -238,6 +246,9 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateQuery(self, jsonString, out, err):
|
|
def validateQuery(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
arr = [{k.lower(): v for k,v in d.items()} for d in json.loads(jsonString)]
|
|
arr = [{k.lower(): v for k,v in d.items()} for d in json.loads(jsonString)]
|
|
if len(arr) != 2:
|
|
if len(arr) != 2:
|
|
@@ -263,7 +274,7 @@ class FrameworkTest:
|
|
if not random_num_ret_val:
|
|
if not random_num_ret_val:
|
|
err_str += "Expected randomNumber to be type int or float, got '{rand}' ".format(rand=obj["randomnumber"])
|
|
err_str += "Expected randomNumber to be type int or float, got '{rand}' ".format(rand=obj["randomnumber"])
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the query test: {exception}".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the query test: {exception}".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -274,6 +285,9 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateQueryOneOrLess(self, jsonString, out, err):
|
|
def validateQueryOneOrLess(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
json_load = json.loads(jsonString)
|
|
json_load = json.loads(jsonString)
|
|
if isinstance(json_load, list):
|
|
if isinstance(json_load, list):
|
|
@@ -304,7 +318,7 @@ class FrameworkTest:
|
|
ret_val = False
|
|
ret_val = False
|
|
return ret_val
|
|
return ret_val
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the query test: {exception} ".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the query test: {exception} ".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -315,8 +329,11 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateQueryFiveHundredOrMore(self, jsonString, out, err):
|
|
def validateQueryFiveHundredOrMore(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
- arr = {k.lower(): v for k,v in json.loads(jsonString).items()}
|
|
|
|
|
|
+ arr = [{k.lower(): v for k,v in d.items()} for d in json.loads(jsonString)]
|
|
|
|
|
|
if len(arr) != 500:
|
|
if len(arr) != 500:
|
|
err_str += "Expected array of length 500. Got length {length}. ".format(length=len(arr))
|
|
err_str += "Expected array of length 500. Got length {length}. ".format(length=len(arr))
|
|
@@ -343,7 +360,7 @@ class FrameworkTest:
|
|
if not random_num_ret_val:
|
|
if not random_num_ret_val:
|
|
err_str += "Expected randomNumber to be type int or float, got '{rand}'. ".format(rand=obj["randomnumber"])
|
|
err_str += "Expected randomNumber to be type int or float, got '{rand}'. ".format(rand=obj["randomnumber"])
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the query test: {exception} ".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the query test: {exception} ".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -352,13 +369,16 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateFortune(self, htmlString, out, err):
|
|
def validateFortune(self, htmlString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if htmlString is None or len(htmlString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
parser = FortuneHTMLParser()
|
|
parser = FortuneHTMLParser()
|
|
parser.feed(htmlString)
|
|
parser.feed(htmlString)
|
|
|
|
|
|
return parser.isValidFortune(out)
|
|
return parser.isValidFortune(out)
|
|
except:
|
|
except:
|
|
- print "Got exception when trying to validate the fortune test: {exception} ".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ print "Got exception when trying to validate the fortune test: {exception} ".format(exception=traceback.print_exc())
|
|
return False
|
|
return False
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -369,9 +389,12 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validateUpdate(self, jsonString, out, err):
|
|
def validateUpdate(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
arr = [{k.lower(): v for k,v in d.items()} for d in json.loads(jsonString)]
|
|
arr = [{k.lower(): v for k,v in d.items()} for d in json.loads(jsonString)]
|
|
- ret_val = True
|
|
|
|
|
|
+ print arr
|
|
if len(arr) != 2:
|
|
if len(arr) != 2:
|
|
err_str += "Expected array of length 2. Got length {length}.\n".format(length=len(arr))
|
|
err_str += "Expected array of length 2. Got length {length}.\n".format(length=len(arr))
|
|
for obj in arr:
|
|
for obj in arr:
|
|
@@ -395,7 +418,7 @@ class FrameworkTest:
|
|
if not random_num_ret_val:
|
|
if not random_num_ret_val:
|
|
err_str += "Expected randomNumber to be type int or float, got '{rand}'.\n".format(rand=obj["randomnumber"])
|
|
err_str += "Expected randomNumber to be type int or float, got '{rand}'.\n".format(rand=obj["randomnumber"])
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the update test: {exception}\n".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the update test: {exception}\n".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -403,11 +426,14 @@ class FrameworkTest:
|
|
############################################################
|
|
############################################################
|
|
def validatePlaintext(self, jsonString, out, err):
|
|
def validatePlaintext(self, jsonString, out, err):
|
|
err_str = ""
|
|
err_str = ""
|
|
|
|
+ if jsonString is None or len(jsonString) == 0:
|
|
|
|
+ err_str += "Empty Response"
|
|
|
|
+ return (False, err_str)
|
|
try:
|
|
try:
|
|
if not jsonString.lower().strip() == "hello, world!":
|
|
if not jsonString.lower().strip() == "hello, world!":
|
|
err_str += "Expected 'Hello, World!', got '{message}'.\n".format(message=jsonString.strip())
|
|
err_str += "Expected 'Hello, World!', got '{message}'.\n".format(message=jsonString.strip())
|
|
except:
|
|
except:
|
|
- err_str += "Got exception when trying to validate the plaintext test: {exception}\n".format(exception=sys.exc_info()[0:2])
|
|
|
|
|
|
+ err_str += "Got exception when trying to validate the plaintext test: {exception}\n".format(exception=traceback.print_exc())
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
return (True, ) if len(err_str) == 0 else (False, err_str)
|
|
|
|
|
|
############################################################
|
|
############################################################
|
|
@@ -462,14 +488,15 @@ class FrameworkTest:
|
|
url = self.benchmarker.generate_url(self.json_url, self.port)
|
|
url = self.benchmarker.generate_url(self.json_url, self.port)
|
|
output = self.__curl_url(url, self.JSON, out, err)
|
|
output = self.__curl_url(url, self.JSON, out, err)
|
|
out.write("VALIDATING JSON ... ")
|
|
out.write("VALIDATING JSON ... ")
|
|
- if self.validateJson(output, out, err):
|
|
|
|
|
|
+ ret_tuple = self.validateJson(output, out, err)
|
|
|
|
+ if ret_tuple[0]:
|
|
self.json_url_passed = True
|
|
self.json_url_passed = True
|
|
out.write("PASS\n\n")
|
|
out.write("PASS\n\n")
|
|
else:
|
|
else:
|
|
self.json_url_passed = False
|
|
self.json_url_passed = False
|
|
- out.write("\nFAIL\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write("\nFAIL" + ret_tuple[1] + "\n\n")
|
|
result = False
|
|
result = False
|
|
- out.flush
|
|
|
|
|
|
+ out.flush()
|
|
|
|
|
|
# DB
|
|
# DB
|
|
if self.runTests[self.DB]:
|
|
if self.runTests[self.DB]:
|
|
@@ -482,11 +509,13 @@ class FrameworkTest:
|
|
|
|
|
|
url = self.benchmarker.generate_url(self.db_url, self.port)
|
|
url = self.benchmarker.generate_url(self.db_url, self.port)
|
|
output = self.__curl_url(url, self.DB, out, err)
|
|
output = self.__curl_url(url, self.DB, out, err)
|
|
- if self.validateDb(output, out, err):
|
|
|
|
|
|
+ validate_ret_tuple = self.validateDb(output, out, err)
|
|
|
|
+ validate_strict_ret_tuple = self.validateDbStrict(output, out, err)
|
|
|
|
+ if validate_ret_tuple[0]:
|
|
self.db_url_passed = True
|
|
self.db_url_passed = True
|
|
else:
|
|
else:
|
|
self.db_url_passed = False
|
|
self.db_url_passed = False
|
|
- if self.validateDbStrict(output, out, err):
|
|
|
|
|
|
+ if validate_strict_ret_tuple:
|
|
self.db_url_warn = False
|
|
self.db_url_warn = False
|
|
else:
|
|
else:
|
|
self.db_url_warn = True
|
|
self.db_url_warn = True
|
|
@@ -495,12 +524,12 @@ class FrameworkTest:
|
|
if self.db_url_passed:
|
|
if self.db_url_passed:
|
|
out.write("PASS")
|
|
out.write("PASS")
|
|
if self.db_url_warn:
|
|
if self.db_url_warn:
|
|
- out.write(" (with warnings)")
|
|
|
|
|
|
+ out.write(" (with warnings) " + validate_strict_ret_tuple[1])
|
|
out.write("\n\n")
|
|
out.write("\n\n")
|
|
else:
|
|
else:
|
|
- out.write("\nFAIL\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write("\nFAIL" + validate_ret_tuple[1])
|
|
result = False
|
|
result = False
|
|
- out.flush
|
|
|
|
|
|
+ out.flush()
|
|
|
|
|
|
# Query
|
|
# Query
|
|
if self.runTests[self.QUERY]:
|
|
if self.runTests[self.QUERY]:
|
|
@@ -519,7 +548,7 @@ class FrameworkTest:
|
|
out.write(self.query_url + "2 - PASS\n\n")
|
|
out.write(self.query_url + "2 - PASS\n\n")
|
|
else:
|
|
else:
|
|
self.query_url_passed = False
|
|
self.query_url_passed = False
|
|
- out.write(self.query_url + "2 - FAIL\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write(self.query_url + "2 - FAIL " + ret_tuple[1] + "\n\n")
|
|
out.write("-----------------------------------------------------\n\n")
|
|
out.write("-----------------------------------------------------\n\n")
|
|
out.flush()
|
|
out.flush()
|
|
|
|
|
|
@@ -529,7 +558,7 @@ class FrameworkTest:
|
|
ret_tuple = self.validateQueryOneOrLess(output2, out, err)
|
|
ret_tuple = self.validateQueryOneOrLess(output2, out, err)
|
|
if not ret_tuple[0]:
|
|
if not ret_tuple[0]:
|
|
self.query_url_warn = True
|
|
self.query_url_warn = True
|
|
- out.write(self.query_url + "0 - WARNING\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write(self.query_url + "0 - WARNING " + ret_tuple[1] + "\n\n")
|
|
else:
|
|
else:
|
|
out.write(self.query_url + "0 - PASS\n\n")
|
|
out.write(self.query_url + "0 - PASS\n\n")
|
|
out.write("-----------------------------------------------------\n\n")
|
|
out.write("-----------------------------------------------------\n\n")
|
|
@@ -540,7 +569,7 @@ class FrameworkTest:
|
|
ret_tuple = self.validateQueryOneOrLess(output3, out, err)
|
|
ret_tuple = self.validateQueryOneOrLess(output3, out, err)
|
|
if not ret_tuple[0]:
|
|
if not ret_tuple[0]:
|
|
self.query_url_warn = True
|
|
self.query_url_warn = True
|
|
- out.write(self.query_url + "foo - WARNING\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write(self.query_url + "foo - WARNING " + ret_tuple[1] + "\n\n")
|
|
else:
|
|
else:
|
|
out.write(self.query_url + "foo - PASS\n\n")
|
|
out.write(self.query_url + "foo - PASS\n\n")
|
|
out.write("-----------------------------------------------------\n\n")
|
|
out.write("-----------------------------------------------------\n\n")
|
|
@@ -551,7 +580,7 @@ class FrameworkTest:
|
|
ret_tuple = self.validateQueryFiveHundredOrMore(output4, out, err)
|
|
ret_tuple = self.validateQueryFiveHundredOrMore(output4, out, err)
|
|
if not ret_tuple[0]:
|
|
if not ret_tuple[0]:
|
|
self.query_url_warn = True
|
|
self.query_url_warn = True
|
|
- out.write(self.query_url + "501 - WARNING\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write(self.query_url + "501 - WARNING " + ret_tuple[1] + "\n\n")
|
|
else:
|
|
else:
|
|
out.write(self.query_url + "501 - PASS\n\n")
|
|
out.write(self.query_url + "501 - PASS\n\n")
|
|
out.write("-----------------------------------------------------\n\n\n")
|
|
out.write("-----------------------------------------------------\n\n\n")
|
|
@@ -564,9 +593,9 @@ class FrameworkTest:
|
|
out.write(" (with warnings)")
|
|
out.write(" (with warnings)")
|
|
out.write("\n\n")
|
|
out.write("\n\n")
|
|
else:
|
|
else:
|
|
- out.write("\nFAIL\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write("\nFAIL " + ret_tuple[1] + "\n\n")
|
|
result = False
|
|
result = False
|
|
- out.flush
|
|
|
|
|
|
+ out.flush()
|
|
|
|
|
|
# Fortune
|
|
# Fortune
|
|
if self.runTests[self.FORTUNE]:
|
|
if self.runTests[self.FORTUNE]:
|
|
@@ -587,7 +616,7 @@ class FrameworkTest:
|
|
self.fortune_url_passed = False
|
|
self.fortune_url_passed = False
|
|
out.write("\nFAIL\n\n")
|
|
out.write("\nFAIL\n\n")
|
|
result = False
|
|
result = False
|
|
- out.flush
|
|
|
|
|
|
+ out.flush()
|
|
|
|
|
|
# Update
|
|
# Update
|
|
if self.runTests[self.UPDATE]:
|
|
if self.runTests[self.UPDATE]:
|
|
@@ -601,14 +630,15 @@ class FrameworkTest:
|
|
url = self.benchmarker.generate_url(self.update_url + "2", self.port)
|
|
url = self.benchmarker.generate_url(self.update_url + "2", self.port)
|
|
output = self.__curl_url(url, self.UPDATE, out, err)
|
|
output = self.__curl_url(url, self.UPDATE, out, err)
|
|
out.write("VALIDATING UPDATE ... ")
|
|
out.write("VALIDATING UPDATE ... ")
|
|
- if self.validateUpdate(output, out, err):
|
|
|
|
|
|
+ ret_tuple = self.validateUpdate(output, out, err)
|
|
|
|
+ if ret_tuple[0]:
|
|
self.update_url_passed = True
|
|
self.update_url_passed = True
|
|
out.write("PASS\n\n")
|
|
out.write("PASS\n\n")
|
|
else:
|
|
else:
|
|
self.update_url_passed = False
|
|
self.update_url_passed = False
|
|
- out.write("\nFAIL\n\n" + ret_tuple[1])
|
|
|
|
|
|
+ out.write("\nFAIL " + ret_tuple[1] + "\n\n")
|
|
result = False
|
|
result = False
|
|
- out.flush
|
|
|
|
|
|
+ out.flush()
|
|
|
|
|
|
# plaintext
|
|
# plaintext
|
|
if self.runTests[self.PLAINTEXT]:
|
|
if self.runTests[self.PLAINTEXT]:
|
|
@@ -623,15 +653,14 @@ class FrameworkTest:
|
|
output = self.__curl_url(url, self.PLAINTEXT, out, err)
|
|
output = self.__curl_url(url, self.PLAINTEXT, out, err)
|
|
out.write("VALIDATING PLAINTEXT ... ")
|
|
out.write("VALIDATING PLAINTEXT ... ")
|
|
ret_tuple = self.validatePlaintext(output, out, err)
|
|
ret_tuple = self.validatePlaintext(output, out, err)
|
|
- print ret_tuple
|
|
|
|
if ret_tuple[0]:
|
|
if ret_tuple[0]:
|
|
self.plaintext_url_passed = True
|
|
self.plaintext_url_passed = True
|
|
out.write("PASS\n\n")
|
|
out.write("PASS\n\n")
|
|
else:
|
|
else:
|
|
self.plaintext_url_passed = False
|
|
self.plaintext_url_passed = False
|
|
- out.write(ret_tuple[1] + "\nFAIL\n\n")
|
|
|
|
|
|
+ out.write("\nFAIL\n\n" + ret_tuple[1] + "\n\n")
|
|
result = False
|
|
result = False
|
|
- out.flush
|
|
|
|
|
|
+ out.flush()
|
|
|
|
|
|
return result
|
|
return result
|
|
############################################################
|
|
############################################################
|