133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck# Copyright 2015 The Chromium Authors. All rights reserved. 233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck# Use of this source code is governed by a BSD-style license that can be 333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck# found in the LICENSE file. 433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckimport unittest 633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckfrom telemetry.core import exceptions 833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckfrom telemetry.internal.util import binary_manager 933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckimport mock 1033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 1133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 1233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reckclass BinaryManagerTest(unittest.TestCase): 1333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def setUp(self): 1433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck # We need to preserve the real initialized dependecny_manager. 1533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self.actual_binary_manager = binary_manager._binary_manager 1633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager._binary_manager = None 1733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 1833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def tearDown(self): 1933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager._binary_manager = self.actual_binary_manager 2033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 2133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def testReinitialization(self): 2233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.InitDependencyManager(None) 2333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self.assertRaises(exceptions.InitializationError, 2433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.InitDependencyManager, None) 2533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 2633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck @mock.patch('py_utils.binary_manager.BinaryManager') 2733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def testFetchPathInitialized(self, binary_manager_mock): 2833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck expected = [mock.call.binary_manager.BinaryManager( 2933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck ['base_config_object']), 3033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck mock.call.binary_manager.BinaryManager().FetchPath( 3133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 'dep', 'plat_arch')] 3233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.InitDependencyManager(None) 3333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.FetchPath('dep', 'plat', 'arch') 3433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager_mock.assert_call_args(expected) 3533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 3633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def testFetchPathUninitialized(self): 3733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self.assertRaises(exceptions.InitializationError, 3833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.FetchPath, 'dep', 'plat', 'arch') 3933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 4033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck @mock.patch('py_utils.binary_manager.BinaryManager') 4133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def testLocalPathInitialized(self, binary_manager_mock): 4233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck expected = [mock.call.binary_manager.BinaryManager( 4333259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck ['base_config_object']), 4433259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck mock.call.binary_manager.BinaryManager().LocalPath( 4533259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 'dep', 'plat_arch')] 4633259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.InitDependencyManager(None) 4733259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.LocalPath('dep', 'plat', 'arch') 4833259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager_mock.assert_call_args(expected) 4933259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck 5033259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck def testLocalPathUninitialized(self): 5133259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck self.assertRaises(exceptions.InitializationError, 5233259e44c8229f70ffe0cf3bb5ca9375c4feb2f9John Reck binary_manager.LocalPath, 'dep', 'plat', 'arch') 53