Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2365)

Unified Diff: build/android/pylib/output/local_output_manager.py

Issue 2933993002: Add local results details pages.
Patch Set: Add --local-output arg which enables local results detail pages. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/android/pylib/output/local_output_manager.py
diff --git a/build/android/pylib/output/local_output_manager.py b/build/android/pylib/output/local_output_manager.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4bece689cf971fdbf08bac758f04e7dcf91b77c
--- /dev/null
+++ b/build/android/pylib/output/local_output_manager.py
@@ -0,0 +1,45 @@
+# Copyright 2017 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import time
+import os
+import shutil
+import urllib
+
+from pylib.base import output_manager
+
+
+class LocalOutputManager(output_manager.OutputManager):
+
+ def __init__(self, output_dir):
+ """Saves and manages test output files locally in output directory.
jbudorick 2017/07/19 22:45:09 Should this be a comment on __init__, the class, o
mikecase (-- gone --) 2017/07/26 21:21:37 Done
+
+ Location files will be saved is {output_dir}/TEST_RESULTS_{timestamp}.
jbudorick 2017/07/19 22:45:09 nit: saved in?
mikecase (-- gone --) 2017/07/26 21:21:37 Done
+ """
+ super(LocalOutputManager, self).__init__()
+ timestamp = time.strftime(
+ '%Y_%m_%dT%H_%M_%S', time.localtime())
+ self._output_root = os.path.join(
+ output_dir, 'TEST_RESULTS_%s' % timestamp)
+
+ #override
+ def _CreateArchiveJob(self, in_filepath, out_filename, out_subdir, datatype):
+ return LocalArchiveJob(
+ in_filepath, out_filename, out_subdir, datatype, self._output_root)
+
+
+class LocalArchiveJob(output_manager.Job):
+
+ def __init__(self, in_filepath, out_filename, out_subdir, datatype, out_root):
+ super(LocalArchiveJob, self).__init__(
+ in_filepath, out_filename, out_subdir, datatype)
+ self._output_path = os.path.join(out_root, out_subdir, out_filename)
+
+ def Link(self):
+ return 'file://%s' % urllib.quote(self._output_path)
+
+ def Archive(self):
+ if not os.path.exists(os.path.dirname(self._output_path)):
+ os.makedirs(os.path.dirname(self._output_path))
+ shutil.copy(self._in_filepath, self._output_path)

Powered by Google App Engine
This is Rietveld 408576698