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

Unified Diff: tools/telemetry/telemetry/system_stub.py

Issue 12278015: [Telemetry] Reorganize everything. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add shebangs. Created 7 years, 10 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 | « tools/telemetry/telemetry/simple_mock_unittest.py ('k') | tools/telemetry/telemetry/tab.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/system_stub.py
diff --git a/tools/telemetry/telemetry/system_stub.py b/tools/telemetry/telemetry/system_stub.py
deleted file mode 100644
index 42078444e744b0e788d3fa522af26b6cd2a405ef..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/system_stub.py
+++ /dev/null
@@ -1,157 +0,0 @@
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-"""Provides stubs for os, sys and subprocess for testing
-
-This test allows one to test code that itself uses os, sys, and subprocess.
-"""
-
-import os
-import re
-import shlex
-import sys as real_sys
-
-class Override(object):
- def __init__(self, base_module, module_list):
- stubs = {'adb_commands': AdbCommandsModuleStub,
- 'os': OsModuleStub,
- 'subprocess': SubprocessModuleStub,
- 'sys': SysModuleStub,
- }
- self.adb_commands = None
- self.os = None
- self.subprocess = None
- self.sys = None
-
- self._base_module = base_module
- self._overrides = {}
-
- for module_name in module_list:
- self._overrides[module_name] = getattr(base_module, module_name)
- setattr(self, module_name, stubs[module_name]())
- setattr(base_module, module_name, getattr(self, module_name))
-
- if self.os and self.sys:
- self.os.path.sys = self.sys
-
- def __del__(self):
- assert not len(self._overrides)
-
- def Restore(self):
- for module_name, original_module in self._overrides.iteritems():
- setattr(self._base_module, module_name, original_module)
- self._overrides = {}
-
-class AdbCommandsModuleStub(object):
-# adb not even found
-# android_browser_finder not returning
- class AdbCommandsStub(object):
- def __init__(self, module, device):
- self._module = module
- self._device = device
- self.is_root_enabled = True
-
- def RunShellCommand(self, args):
- if isinstance(args, basestring):
- args = shlex.split(args)
- handler = self._module.shell_command_handlers[args[0]]
- return handler(args)
-
- def IsRootEnabled(self):
- return self.is_root_enabled
-
- def __init__(self):
- self.attached_devices = []
- self.shell_command_handlers = {}
-
- def AdbCommandsStubConstructor(device=None):
- return AdbCommandsModuleStub.AdbCommandsStub(self, device)
- self.AdbCommands = AdbCommandsStubConstructor
-
- @staticmethod
- def IsAndroidSupported():
- return True
-
- def GetAttachedDevices(self):
- return self.attached_devices
-
- @staticmethod
- def HasForwarder(_=None):
- return True
-
-class OsModuleStub(object):
- class OsPathModuleStub(object):
- def __init__(self, sys_module):
- self.sys = sys_module
- self.files = []
-
- def exists(self, path):
- return path in self.files
-
- def join(self, *paths):
- def IsAbsolutePath(path):
- if self.sys.platform.startswith('win'):
- return re.match('[a-zA-Z]:\\\\', path)
- else:
- return path.startswith('/')
-
- # Per Python specification, if any component is an absolute path,
- # discard previous components.
- for index, path in reversed(list(enumerate(paths))):
- if IsAbsolutePath(path):
- paths = paths[index:]
- break
-
- if self.sys.platform.startswith('win'):
- tmp = os.path.join(*paths)
- return tmp.replace('/', '\\')
- else:
- tmp = os.path.join(*paths)
- return tmp.replace('\\', '/')
-
- def expanduser(self, filename):
- return os.path.expanduser(filename)
-
- def dirname(self, filename): # pylint: disable=R0201
- return os.path.dirname(filename)
-
- def __init__(self, sys_module=real_sys):
- self.path = OsModuleStub.OsPathModuleStub(sys_module)
- self.display = ':0'
- self.local_app_data = None
- self.program_files = None
- self.program_files_x86 = None
- self.devnull = os.devnull
-
- def getenv(self, name):
- if name == 'DISPLAY':
- return self.display
- elif name == 'LOCALAPPDATA':
- return self.local_app_data
- elif name == 'PROGRAMFILES':
- return self.program_files
- elif name == 'PROGRAMFILES(X86)':
- return self.program_files_x86
- raise Exception('Unsupported getenv')
-
-class SubprocessModuleStub(object):
- class PopenStub(object):
- def __init__(self):
- self.communicate_result = ('', '')
-
- def __call__(self, args, **kwargs):
- return self
-
- def communicate(self):
- return self.communicate_result
-
- def __init__(self):
- self.Popen = SubprocessModuleStub.PopenStub()
- self.PIPE = None
-
- def call(self, *args, **kwargs):
- raise NotImplementedError()
-
-class SysModuleStub(object):
- def __init__(self):
- self.platform = ''
« no previous file with comments | « tools/telemetry/telemetry/simple_mock_unittest.py ('k') | tools/telemetry/telemetry/tab.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698