17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)# Copyright (c) 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.
47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)"""
57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)A library for cross-platform browser tests.
67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)"""
77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)import inspect
8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochimport os
97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)import sys
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)from telemetry.core.browser import Browser
127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)from telemetry.core.browser_options import BrowserOptions
137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)from telemetry.core.tab import Tab
147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)from telemetry.page.page_measurement import PageMeasurement
167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)from telemetry.page.page_runner import Run as RunPage
177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)__all__ = []
197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)# Find all local vars that are classes or functions and make sure they're in the
217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)# __all__ array so they're included in docs.
227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)for x in dir():
237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  if x.startswith('_'):
247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    continue
257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  if x in (inspect, sys):
267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    continue
277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  m = sys.modules[__name__]
287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  if (inspect.isclass(getattr(m, x)) or
297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)      inspect.isfunction(getattr(m, x))):
307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)    __all__.append(x)
31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochdef _RemoveAllStalePycFiles():
34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch  for dirname, _, filenames in os.walk(os.path.dirname(__file__)):
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    if '.svn' in dirname or '.git' in dirname:
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      continue
37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    for filename in filenames:
38eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      root, ext = os.path.splitext(filename)
39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      if ext != '.pyc':
40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        continue
41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      pyc_path = os.path.join(dirname, filename)
43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      py_path = os.path.join(dirname, root + '.py')
44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      if not os.path.exists(py_path):
45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch        os.remove(pyc_path)
46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch    if not os.listdir(dirname):
48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch      os.removedirs(dirname)
49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch
51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch_RemoveAllStalePycFiles()
52