Commit 6fc31fbc authored by nednguyen@google.com's avatar nednguyen@google.com

Add types check to page_set_smoke_test

BUG=369703

Review URL: https://codereview.chromium.org/301353011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274474 0039d316-1c4b-4281-b951-d872f2087c98
parent d8bdadad
...@@ -15,6 +15,7 @@ from telemetry.page import page_set_archive_info ...@@ -15,6 +15,7 @@ from telemetry.page import page_set_archive_info
class PageSetSmokeTest(unittest.TestCase): class PageSetSmokeTest(unittest.TestCase):
def CheckArchive(self, page_set): def CheckArchive(self, page_set):
"""Verify that all URLs of pages in page_set have an associated archive. """
# TODO: Eventually these should be fatal. # TODO: Eventually these should be fatal.
if not page_set.archive_data_file: if not page_set.archive_data_file:
logging.warning('Skipping %s: no archive data file', page_set.file_path) logging.warning('Skipping %s: no archive data file', page_set.file_path)
...@@ -38,6 +39,7 @@ class PageSetSmokeTest(unittest.TestCase): ...@@ -38,6 +39,7 @@ class PageSetSmokeTest(unittest.TestCase):
page.url, page_set.archive_data_file)) page.url, page_set.archive_data_file))
def CheckCredentials(self, page_set): def CheckCredentials(self, page_set):
"""Verify that all pages in page_set use proper credentials"""
credentials = browser_credentials.BrowserCredentials() credentials = browser_credentials.BrowserCredentials()
if page_set.credentials_path: if page_set.credentials_path:
credentials.credentials_path = ( credentials.credentials_path = (
...@@ -51,14 +53,58 @@ class PageSetSmokeTest(unittest.TestCase): ...@@ -51,14 +53,58 @@ class PageSetSmokeTest(unittest.TestCase):
except browser_credentials.CredentialsError: except browser_credentials.CredentialsError:
self.fail(fail_message) 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): def RunSmokeTest(self, page_sets_dir):
"""Run smoke test on all page sets in 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 Subclass of PageSetSmokeTest is supposed to call this in some test
method to run smoke 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) page_sets = discover.GetAllPageSetFilenames(page_sets_dir)
for page_set_path in page_sets: for page_set_path in page_sets:
...@@ -66,3 +112,4 @@ class PageSetSmokeTest(unittest.TestCase): ...@@ -66,3 +112,4 @@ class PageSetSmokeTest(unittest.TestCase):
logging.info('Testing %s', page_set.file_path) logging.info('Testing %s', page_set.file_path)
self.CheckArchive(page_set) self.CheckArchive(page_set)
self.CheckCredentials(page_set) self.CheckCredentials(page_set)
self.CheckTypes(page_set)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment