| Index: tools/telemetry/telemetry/unittest/page_set_smoke_test.py
|
| diff --git a/tools/telemetry/telemetry/unittest/page_set_smoke_test.py b/tools/telemetry/telemetry/unittest/page_set_smoke_test.py
|
| index 4c7599de7d49eb1b6a4cdd8beeb2ee9517b41c9e..b5e22aed033d60324a8fdbf826379e87cb193fc7 100644
|
| --- a/tools/telemetry/telemetry/unittest/page_set_smoke_test.py
|
| +++ b/tools/telemetry/telemetry/unittest/page_set_smoke_test.py
|
| @@ -15,6 +15,7 @@ from telemetry.page import page_set_archive_info
|
| class PageSetSmokeTest(unittest.TestCase):
|
|
|
| def CheckArchive(self, page_set):
|
| + """Verify that all URLs of pages in page_set have an associated archive. """
|
| # TODO: Eventually these should be fatal.
|
| if not page_set.archive_data_file:
|
| logging.warning('Skipping %s: no archive data file', page_set.file_path)
|
| @@ -38,6 +39,7 @@ class PageSetSmokeTest(unittest.TestCase):
|
| page.url, page_set.archive_data_file))
|
|
|
| def CheckCredentials(self, page_set):
|
| + """Verify that all pages in page_set use proper credentials"""
|
| credentials = browser_credentials.BrowserCredentials()
|
| if page_set.credentials_path:
|
| credentials.credentials_path = (
|
| @@ -51,14 +53,58 @@ class PageSetSmokeTest(unittest.TestCase):
|
| except browser_credentials.CredentialsError:
|
| self.fail(fail_message)
|
|
|
| + def CheckTypes(self, page_set):
|
| + """Verify that page_set and its page's base attributes have the right types.
|
| + """
|
| + self.CheckTypesOfPageSetBasicAttributes(page_set)
|
| + for page in page_set.pages:
|
| + self.CheckTypesOfPageBasicAttributes(page)
|
| +
|
| + def CheckTypesOfPageSetBasicAttributes(self, page_set):
|
| + if page_set.file_path is not None:
|
| + self.assertTrue(
|
| + isinstance(page_set.file_path, str),
|
| + msg='page_set %\'s file_path must have type string')
|
| +
|
| + self.assertTrue(
|
| + isinstance(page_set.description, str),
|
| + msg='page_set\'s description must have type string')
|
| +
|
| + self.assertTrue(
|
| + isinstance(page_set.archive_data_file, str),
|
| + msg='page_set\'s archive_data_file path must have type string')
|
| +
|
| + if page_set.user_agent_type is not None:
|
| + self.assertTrue(
|
| + isinstance(page_set.user_agent_type, str),
|
| + msg='page_set\'s user_agent_type must have type string')
|
| +
|
| + self.assertTrue(
|
| + isinstance(page_set.make_javascript_deterministic, bool),
|
| + msg='page_set\'s make_javascript_deterministic must have type bool')
|
| +
|
| + self.assertTrue(
|
| + isinstance(page_set.startup_url, str),
|
| + msg='page_set\'s startup_url must have type string')
|
| +
|
| + def CheckTypesOfPageBasicAttributes(self, page):
|
| + self.assertTrue(
|
| + isinstance(page.url, str),
|
| + msg='page %s \'s url must have type string' % page.display_name)
|
| + self.assertTrue(
|
| + isinstance(page.page_set, page_set_module.PageSet),
|
| + msg='page %s \'s page_set must be an instance of '
|
| + 'telemetry.page.page_set.PageSet' % page.display_name)
|
| + self.assertTrue(
|
| + isinstance(page.name, str),
|
| + msg='page %s \'s name field must have type string' % page.display_name)
|
| +
|
| def RunSmokeTest(self, page_sets_dir):
|
| """Run smoke test on all page sets in page_sets_dir.
|
|
|
| Subclass of PageSetSmokeTest is supposed to call this in some test
|
| method to run smoke test.
|
| """
|
| - # Instantiate all page sets and verify that all URLs have an associated
|
| - # archive.
|
| page_sets = discover.GetAllPageSetFilenames(page_sets_dir)
|
|
|
| for page_set_path in page_sets:
|
| @@ -66,3 +112,4 @@ class PageSetSmokeTest(unittest.TestCase):
|
| logging.info('Testing %s', page_set.file_path)
|
| self.CheckArchive(page_set)
|
| self.CheckCredentials(page_set)
|
| + self.CheckTypes(page_set)
|
|
|