backends_unittest.py revision 0529e5d033099cbfc42635f6f6183833b09dff6e
1# Copyright 2014 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import unittest 6 7from memory_inspector.core import backends 8 9 10class MockDevice(backends.Device): # pylint: disable=W0223 11 def __init__(self, backend, device_id): 12 super(MockDevice, self).__init__(backend) 13 self.device_id = device_id 14 15 @property 16 def name(self): 17 return "Mock Device %s" % self.device_id 18 19 @property 20 def id(self): 21 return self.device_id 22 23 24class MockBackend(backends.Backend): 25 _SETTINGS = {'key_1': 'key descritpion 1'} 26 27 def __init__(self, backend_name): 28 super(MockBackend, self).__init__(MockBackend._SETTINGS) 29 self.backend_name = backend_name 30 31 def EnumerateDevices(self): 32 yield MockDevice(self, 'device-1') 33 yield MockDevice(self, 'device-2') 34 35 def ExtractSymbols(self, native_heaps, sym_paths): 36 raise NotImplementedError() 37 38 @property 39 def name(self): 40 return self.backend_name 41 42 43class BackendRegisterTest(unittest.TestCase): 44 def runTest(self): 45 mock_backend_1 = MockBackend('mock-backend-1') 46 mock_backend_2 = MockBackend('mock-backend-2') 47 self.assertEqual(mock_backend_1.settings['key_1'], 'key descritpion 1') 48 backends.Register(mock_backend_1) 49 backends.Register(mock_backend_2) 50 devices = list(backends.ListDevices()) 51 self.assertEqual(len(devices), 4) 52 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-1')) 53 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-2')) 54 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1')) 55 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1')) 56 self.assertTrue('key_1' in mock_backend_1.settings) 57