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

Unified Diff: tools/telemetry/telemetry/unittest/page_set_smoke_test.py

Issue 301353011: Add types check to page_set_smoke_test (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698