146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)"""A library for cross-platform browser tests."""
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)import inspect
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import logging
9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochimport os
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)import sys
117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch# Ensure Python >= 2.7.
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)if sys.version_info < (2, 7):
14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  print >> sys.stderr, 'Need Python 2.7 or greater.'
15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  sys.exit(-1)
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochfrom telemetry.util import global_hooks
18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochglobal_hooks.InstallHooks()
1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
20a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.core.browser import Browser
21a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.core.browser_options import BrowserFinderOptions
22a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.core.tab import Tab
23a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
24a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.page.page_measurement import PageMeasurement
25a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)from telemetry.page.page_runner import Run as RunPage
26a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)
27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)__all__ = []
297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)# Find all local vars that are classes or functions and make sure they're in the
317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)# __all__ array so they're included in docs.
327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)for x in dir():
337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  if x.startswith('_'):
347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    continue
35424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  if x in (inspect, os, sys):
367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    continue
377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  m = sys.modules[__name__]
387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  if (inspect.isclass(getattr(m, x)) or
397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)      inspect.isfunction(getattr(m, x))):
407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    __all__.append(x)
41