Переглянути джерело

Merge pull request #1192 from TechEmpower/fixQueries

Fixed a bug with queries
Mike Smith 10 роки тому
батько
коміт
b271d0d749

+ 6 - 6
toolset/benchmark/test_types/db_type.py

@@ -53,7 +53,7 @@ class DBTestType(FrameworkTestType):
     else:
       return problems
 
-  def _verifyObject(self, db_object, url):
+  def _verifyObject(self, db_object, url, max_infraction='fail'):
     '''Ensure the passed item is a JSON object with 
     keys 'id' and 'randomNumber' mapping to ints. 
     Separate method allows the QueryTestType to 
@@ -65,15 +65,15 @@ class DBTestType(FrameworkTestType):
       got = str(db_object)[:20]
       if len(str(db_object)) > 20:
         got = str(db_object)[:17] + '...'
-      return ('fail', "Expected a JSON object, got '%s' instead" % got, url)
+      return [(max_infraction, "Expected a JSON object, got '%s' instead" % got, url)]
 
     # Make keys case insensitive
     db_object = {k.lower(): v for k,v in db_object.iteritems()}
 
     if "id" not in db_object:
-      problems.append( ('fail', "Response has no 'id' key", url) ) 
+      problems.append( (max_infraction, "Response has no 'id' key", url) ) 
     if "randomnumber" not in db_object:
-      problems.append( ('fail', "Response has no 'randomNumber' key", url) )
+      problems.append( (max_infraction, "Response has no 'randomNumber' key", url) )
     
     # Ensure we can continue on to use these keys
     if "id" not in db_object or "randomnumber" not in db_object:
@@ -82,12 +82,12 @@ class DBTestType(FrameworkTestType):
     try:
       float(db_object["id"])
     except ValueError as ve:
-      problems.append( ('fail', "Response key 'id' does not map to a number - %s" % ve, url) ) 
+      problems.append( (max_infraction, "Response key 'id' does not map to a number - %s" % ve, url) ) 
 
     try:
       float(db_object["randomnumber"])
     except ValueError as ve:
-      problems.append( ('fail', "Response key 'randomNumber' does not map to a number - %s" % ve, url) ) 
+      problems.append( (max_infraction, "Response key 'randomNumber' does not map to a number - %s" % ve, url) ) 
 
     if type(db_object["id"]) != int:
       problems.append( ('warn', '''Response key 'id' contains extra quotations or decimal points.

+ 2 - 2
toolset/benchmark/test_types/query_type.py

@@ -74,7 +74,7 @@ class QueryTestType(DBTestType):
       problems.append(('warn','Top-level JSON is an object, not an array', url))
 
       # Verify the one object they gave us before returning
-      problems += self._verifyObject(response, url)
+      problems += self._verifyObject(response, url, max_infraction)
 
       return problems
 
@@ -90,7 +90,7 @@ class QueryTestType(DBTestType):
     # verify individual objects
     maxBadObjects = 5
     for item in response:
-      obj_ok = self._verifyObject(item, url)
+      obj_ok = self._verifyObject(item, url, max_infraction)
       if len(obj_ok) > 0:
         maxBadObjects -=  1
         problems += obj_ok