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

Unified Diff: tools/telemetry/telemetry/page/page_set.py

Issue 274773002: [telemetry] Prototype for specifying page sets using Python imports and Telemetry discovery. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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: tools/telemetry/telemetry/page/page_set.py
diff --git a/tools/telemetry/telemetry/page/page_set.py b/tools/telemetry/telemetry/page/page_set.py
index d58f0aeaf4421b45740e15d8543cfcc190de3e07..b434ff7523ee2695ba5dc16da1bc2a48e3aba67d 100644
--- a/tools/telemetry/telemetry/page/page_set.py
+++ b/tools/telemetry/telemetry/page/page_set.py
@@ -6,7 +6,6 @@ import csv
import inspect
import os
-from telemetry.core import util
from telemetry.page import page as page_module
from telemetry.page import page_set_archive_info
@@ -46,6 +45,17 @@ class PageSet(object):
else:
self.serving_dirs.add(os.path.realpath(os.path.join(self.base_dir, sd)))
+ @classmethod
+ def Name(cls):
+ return cls.__module__.split('.')[-1]
+
+ @classmethod
+ def Description(cls):
+ if cls.__doc__:
+ return cls.__doc__.splitlines()[0]
+ else:
+ return ''
+
def AddPage(self, page):
assert page.page_set is self
self.pages.append(page)
@@ -57,38 +67,6 @@ class PageSet(object):
self.AddPage(page_module.Page(
page_url, self, self.base_dir))
- @staticmethod
- def FromFile(file_path):
- _, ext_name = os.path.splitext(file_path)
- if ext_name == '.py':
- return PageSet.FromPythonFile(file_path)
- else:
- raise PageSetError("Pageset %s has unsupported file type" % file_path)
-
- @staticmethod
- def FromPythonFile(file_path):
- page_set_classes = []
- module = util.GetPythonPageSetModule(file_path)
- for m in dir(module):
- if m.endswith('PageSet') and m != 'PageSet':
- page_set_classes.append(getattr(module, m))
- if len(page_set_classes) != 1:
- raise PageSetError("Pageset file needs to contain exactly 1 pageset class"
- " with prefix 'PageSet'")
- page_set = page_set_classes[0]()
- for page in page_set.pages:
- page_class = page.__class__
-
- for method_name, method in inspect.getmembers(page_class,
- predicate=inspect.ismethod):
- if method_name.startswith("Run"):
- args, _, _, _ = inspect.getargspec(method)
- if not (args[0] == "self" and args[1] == "action_runner"):
- raise PageSetError("""Definition of Run<...> method of all
-pages in %s must be in the form of def Run<...>(self, action_runner):"""
- % file_path)
- return page_set
-
@property
def base_dir(self):
if os.path.isfile(self.file_path):
« no previous file with comments | « tools/telemetry/telemetry/page/extensions_profile_creator.py ('k') | tools/telemetry/telemetry/page/page_set_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698