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