Ver código fonte

Make rdb status calculation reusable

Bug:none
Change-Id: Ie7058e40d6e0174af382ef8f4ecfb62403683890
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5017798
Reviewed-by: Scott Lee <ddoman@chromium.org>
Commit-Queue: Liviu Rau <liviurau@google.com>
Liviu Rau 1 ano atrás
pai
commit
7f22330c69
1 arquivos alterados com 18 adições e 12 exclusões
  1. 18 12
      presubmit_support.py

+ 18 - 12
presubmit_support.py

@@ -1728,18 +1728,7 @@ class PresubmitExecuter(object):
             sys.stdout.write('%6.1fs to run %s from %s.\n' %
             sys.stdout.write('%6.1fs to run %s from %s.\n' %
                              (elapsed_time, function_name, presubmit_path))
                              (elapsed_time, function_name, presubmit_path))
         if sink:
         if sink:
-            failure_reason = None
-            status = rdb_wrapper.STATUS_PASS
-            if any(r.fatal for r in result):
-                status = rdb_wrapper.STATUS_FAIL
-                failure_reasons = []
-                for r in result:
-                    fields = r.json_format()
-                    message = fields['message']
-                    items = '\n'.join('  %s' % item for item in fields['items'])
-                    failure_reasons.append('\n'.join([message, items]))
-                if failure_reasons:
-                    failure_reason = '\n'.join(failure_reasons)
+            status, failure_reason = RDBStatusFrom(result)
             sink.report(function_name, status, elapsed_time, failure_reason)
             sink.report(function_name, status, elapsed_time, failure_reason)
 
 
         return result
         return result
@@ -1757,6 +1746,23 @@ class PresubmitExecuter(object):
                 'output_api.PresubmitResult')
                 'output_api.PresubmitResult')
 
 
 
 
+def RDBStatusFrom(result):
+    """Returns the status and failure reason for a PresubmitResult."""
+    failure_reason = None
+    status = rdb_wrapper.STATUS_PASS
+    if any(r.fatal for r in result):
+        status = rdb_wrapper.STATUS_FAIL
+        failure_reasons = []
+        for r in result:
+            fields = r.json_format()
+            message = fields['message']
+            items = '\n'.join('  %s' % item for item in fields['items'])
+            failure_reasons.append('\n'.join([message, items]))
+        if failure_reasons:
+            failure_reason = '\n'.join(failure_reasons)
+    return status, failure_reason
+
+
 def DoPresubmitChecks(change,
 def DoPresubmitChecks(change,
                       committing,
                       committing,
                       verbose,
                       verbose,