| 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
|
|
|