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

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

Issue 612963002: Introduce UserStory & UserStorySet classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clean up staticmethods related to PageCreation Created 6 years, 3 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
« no previous file with comments | « tools/telemetry/telemetry/page/__init__.py ('k') | tools/telemetry/telemetry/user_story/__init__.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 337553244dbb7557c38b5e07bc2236a2d20477f5..a3b40acd5de1292fd3808398d9e23a9bccb850f6 100644
--- a/tools/telemetry/telemetry/page/page_set.py
+++ b/tools/telemetry/telemetry/page/page_set.py
@@ -8,6 +8,7 @@ import os
from telemetry.page import page as page_module
from telemetry.page import page_set_archive_info
+from telemetry.user_story import user_story_set
from telemetry.util import cloud_storage
PUBLIC_BUCKET = cloud_storage.PUBLIC_BUCKET
@@ -19,11 +20,12 @@ class PageSetError(Exception):
pass
-class PageSet(object):
+class PageSet(user_story_set.UserStorySet):
def __init__(self, file_path=None, archive_data_file='',
credentials_path=None, user_agent_type=None,
make_javascript_deterministic=True, startup_url='',
serving_dirs=None, bucket=None):
+ super(PageSet, self).__init__()
# The default value of file_path is location of the file that define this
# page set instance's class.
if file_path is None:
@@ -40,7 +42,7 @@ class PageSet(object):
self.make_javascript_deterministic = make_javascript_deterministic
self._wpr_archive_info = None
self.startup_url = startup_url
- self.pages = []
+ self.user_stories = []
self.serving_dirs = set()
serving_dirs = [] if serving_dirs is None else serving_dirs
# Makes sure that page_set's serving_dirs are absolute paths
@@ -54,26 +56,23 @@ class PageSet(object):
else:
raise ValueError("Pageset privacy bucket %s is invalid" % bucket)
- @classmethod
- def Name(cls):
- return cls.__module__.split('.')[-1]
+ @property
+ def pages(self):
+ return self.user_stories
- @classmethod
- def Description(cls):
- if cls.__doc__:
- return cls.__doc__.splitlines()[0]
- else:
- return ''
+ def AddUserStory(self, user_story):
+ assert isinstance(user_story, page_module.Page)
+ assert user_story.page_set is self
+ super(PageSet, self).AddUserStory(user_story)
def AddPage(self, page):
- assert page.page_set is self
- self.pages.append(page)
+ self.AddUserStory(page)
def AddPageWithDefaultRunNavigate(self, page_url):
""" Add a simple page with url equals to page_url that contains only default
RunNavigateSteps.
"""
- self.AddPage(page_module.Page(
+ self.AddUserStory(page_module.Page(
page_url, self, self.base_dir))
@staticmethod
@@ -109,7 +108,7 @@ class PageSet(object):
self._wpr_archive_info = value
def ContainsOnlyFileURLs(self):
- for page in self.pages:
+ for page in self.user_stories:
if not page.is_file:
return False
return True
@@ -117,10 +116,10 @@ class PageSet(object):
def ReorderPageSet(self, results_file):
"""Reorders this page set based on the results of a past run."""
page_set_dict = {}
- for page in self.pages:
+ for page in self.user_stories:
page_set_dict[page.url] = page
- pages = []
+ user_stories = []
with open(results_file, 'rb') as csv_file:
csv_reader = csv.reader(csv_file)
csv_header = csv_reader.next()
@@ -136,21 +135,9 @@ class PageSet(object):
else:
raise Exception('Unusable results_file.')
- return pages
+ return user_stories
def WprFilePathForPage(self, page):
if not self.wpr_archive_info:
return None
return self.wpr_archive_info.WprFilePathForPage(page)
-
- def __iter__(self):
- return self.pages.__iter__()
-
- def __len__(self):
- return len(self.pages)
-
- def __getitem__(self, key):
- return self.pages[key]
-
- def __setitem__(self, key, value):
- self.pages[key] = value
« no previous file with comments | « tools/telemetry/telemetry/page/__init__.py ('k') | tools/telemetry/telemetry/user_story/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698