def testRequireVersion_versionTooHigh(self): numpy = FakeModule('numpy', '2.3') with self.assertRaises(ImportError) as error: modules_util.RequireVersion(numpy, '1.0', '2.0') self.assertEqual( str(error.exception), 'numpy has version 2.3, but version' ' at or above 1.0 and below 2.0 is required')
def testRequireVersion_versionTooLow(self): numpy = FakeModule('numpy', '2.3') with self.assertRaises(ImportError) as error: modules_util.RequireVersion(numpy, '2.5') self.assertEqual( str(error.exception), 'numpy has version 2.3, but version 2.5 or higher is required')
def ImportRequiredModule(module): """Tries to import the desired module (DEPRECATED). External modules should be provided via vpython and imported using the regular python `import` statement. To ensure a particular module version has been loaded use modules_util.RequireVersion instead. Returns: The module on success, raises error on failure. Raises: ImportError: The import failed.""" versions = MODULES.get(module) if versions is None: raise NotImplementedError('Please teach telemetry about module %s.' % module) module = importlib.import_module(module) modules_util.RequireVersion(module, *versions) return module
from devil.android import device_utils from devil.android.sdk import adb_wrapper from devil.android.tools import device_status from devil.android.tools import script_common from devil.utils import logging_common from devil.utils import lsusb # TODO(jbudorick): Resolve this after experimenting w/ disabling the USB reset. from devil.utils import reset_usb # pylint: disable=unused-import logger = logging.getLogger(__name__) from py_utils import modules_util # Script depends on features from psutil version 2.0 or higher. modules_util.RequireVersion(psutil, '2.0') def KillAllAdb(): def get_all_adb(): for p in psutil.process_iter(): try: # Retrieve all required process infos at once. pinfo = p.as_dict(attrs=['pid', 'name', 'cmdline']) if pinfo['name'] == 'adb': pinfo['cmdline'] = ' '.join(pinfo['cmdline']) yield p, pinfo except (psutil.NoSuchProcess, psutil.AccessDenied): pass for sig in [signal.SIGTERM, signal.SIGQUIT, signal.SIGKILL]:
def testRequireVersion_valid(self): numpy = FakeModule('numpy', '2.3') try: modules_util.RequireVersion(numpy, '1.0') except ImportError: self.fail('ImportError raised unexpectedly')