- return (len(row) == len(fields) and
- compat.all((status == QRFS_NORMAL and _VERIFY_FN[fdef.kind](value)) or
- # Value for an abnormal status must be None
- (status != QRFS_NORMAL and value is None)
- for ((status, value), (fdef, _, _)) in zip(row, fields)))
-
-
-def _PrepareFieldList(fields):
+ assert len(row) == len(fields)
+ errs = []
+ for ((status, value), (fdef, _, _)) in zip(row, fields):
+ if status == RS_NORMAL:
+ if not _VERIFY_FN[fdef.kind](value):
+ errs.append("normal field %s fails validation (value is %s)" %
+ (fdef.name, value))
+ elif value is not None:
+ errs.append("abnormal field %s has a non-None value" % fdef.name)
+ assert not errs, ("Failed validation: %s in row %s" %
+ (utils.CommaJoin(errors), row))
+
+
+def _PrepareFieldList(fields, aliases):