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