def validateResponse(self, jsonString, responseClass): """ Ensures the jsonDict corresponds to a valid instance of responseClass Throws an error if the data is invalid """ if self._responseValidation: jsonDict = json.loads(jsonString) if not responseClass.validate(jsonDict): raise exceptions.ResponseValidationFailureException( jsonDict, responseClass)
def testValidationFailureExceptionMessages(self): # RequestValidationFailureException wrongString = "thisIsWrong" objClass = protocol.SearchReadsRequest obj = objClass() obj.start = wrongString jsonDict = obj.toJsonDict() instance = exceptions.RequestValidationFailureException( jsonDict, objClass) self.assertIn("invalid fields:", instance.message) self.assertIn("u'start': u'thisIsWrong'", instance.message) self.assertEqual(instance.message.count(wrongString), 2) # ResponseValidationFailureException objClass = protocol.SearchReadsResponse obj = objClass() obj.alignments.extend([protocol.ReadAlignment()]) obj.alignments[0].alignment.mapping_quality = wrongString jsonDict = obj.toJsonDict() instance = exceptions.ResponseValidationFailureException( jsonDict, objClass) self.assertIn("Invalid fields", instance.message) self.assertEqual(instance.message.count(wrongString), 2)