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 aa30415223b817c1e9baae8cfdefbd97c7cf6405..4c7599de7d49eb1b6a4cdd8beeb2ee9517b41c9e 100644 |
--- a/tools/telemetry/telemetry/unittest/page_set_smoke_test.py |
+++ b/tools/telemetry/telemetry/unittest/page_set_smoke_test.py |
@@ -6,6 +6,7 @@ import logging |
import os |
import unittest |
+from telemetry.core import browser_credentials |
from telemetry.core import discover |
from telemetry.page import page_set as page_set_module |
from telemetry.page import page_set_archive_info |
@@ -13,35 +14,55 @@ from telemetry.page import page_set_archive_info |
class PageSetSmokeTest(unittest.TestCase): |
+ def CheckArchive(self, page_set): |
+ # 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) |
+ return |
+ |
+ logging.info('Testing %s', page_set.file_path) |
+ |
+ archive_data_file_path = os.path.join(page_set.base_dir, |
+ page_set.archive_data_file) |
+ self.assertTrue(os.path.exists(archive_data_file_path), |
+ msg='Archive data file not found for %s' % |
+ page_set.file_path) |
+ |
+ wpr_archive_info = page_set_archive_info.PageSetArchiveInfo.FromFile( |
+ archive_data_file_path, ignore_archive=True) |
+ for page in page_set.pages: |
+ if not page.url.startswith('http'): |
+ continue |
+ self.assertTrue(wpr_archive_info.WprFilePathForPage(page), |
+ msg='No archive found for %s in %s' % ( |
+ page.url, page_set.archive_data_file)) |
+ |
+ def CheckCredentials(self, page_set): |
+ credentials = browser_credentials.BrowserCredentials() |
+ if page_set.credentials_path: |
+ credentials.credentials_path = ( |
+ os.path.join(page_set.base_dir, page_set.credentials_path)) |
+ for page in page_set.pages: |
+ fail_message = ('page %s of %s has invalid credentials %s' % |
+ (page.url, page_set.file_path, page.credentials)) |
+ if page.credentials: |
+ try: |
+ self.assertTrue(credentials.CanLogin(page.credentials), fail_message) |
+ except browser_credentials.CredentialsError: |
+ self.fail(fail_message) |
+ |
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. |
+ """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: |
page_set = page_set_module.PageSet.FromFile(page_set_path) |
- |
- # TODO: Eventually these should be fatal. |
- if not page_set.archive_data_file: |
- logging.warning('Skipping %s: no archive data file', page_set_path) |
- continue |
- |
- logging.info('Testing %s', page_set_path) |
- |
- archive_data_file_path = os.path.join(page_set.base_dir, |
- page_set.archive_data_file) |
- self.assertTrue(os.path.exists(archive_data_file_path), |
- msg='Archive data file not found for %s' % page_set_path) |
- |
- wpr_archive_info = page_set_archive_info.PageSetArchiveInfo.FromFile( |
- archive_data_file_path, ignore_archive=True) |
- for page in page_set.pages: |
- if not page.url.startswith('http'): |
- continue |
- self.assertTrue(wpr_archive_info.WprFilePathForPage(page), |
- msg='No archive found for %s in %s' % ( |
- page.url, page_set.archive_data_file)) |
+ logging.info('Testing %s', page_set.file_path) |
+ self.CheckArchive(page_set) |
+ self.CheckCredentials(page_set) |