backends_unittest.py revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 @property 36 def name(self): 37 return self.backend_name 38 39 40class BackendRegisterTest(unittest.TestCase): 41 def runTest(self): 42 mock_backend_1 = MockBackend('mock-backend-1') 43 mock_backend_2 = MockBackend('mock-backend-2') 44 self.assertEqual(mock_backend_1.settings['key_1'], 'key descritpion 1') 45 backends.Register(mock_backend_1) 46 backends.Register(mock_backend_2) 47 devices = list(backends.ListDevices()) 48 self.assertEqual(len(devices), 4) 49 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-1')) 50 self.assertIsNotNone(backends.GetDevice('mock-backend-1', 'device-2')) 51 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1')) 52 self.assertIsNotNone(backends.GetDevice('mock-backend-2', 'device-1')) 53 self.assertTrue('key_1' in mock_backend_1.settings) 54