| """Tests for rf_switch_utils.""" |
| |
| import common |
| import unittest |
| |
| import mock |
| |
| from autotest_lib.server.cros.network import rf_switch_utils |
| |
| |
| class RfSwitchUtilsTest(unittest.TestCase): |
| """Tests for RF Switch Utils.""" |
| |
| |
| def setUp(self): |
| """Initial set up for the tests.""" |
| self.patcher1 = mock.patch('autotest_lib.server.frontend.AFE') |
| self.patcher2 = mock.patch('autotest_lib.server.frontend.Host') |
| self.mock_afe = self.patcher1.start() |
| self.mock_host = self.patcher2.start() |
| |
| |
| def tearDown(self): |
| """End mock patcher.""" |
| self.patcher1.stop() |
| self.patcher2.stop() |
| |
| |
| def testAllocateRfSwitch(self): |
| """Test to allocate a RF Switch.""" |
| afe_instance = self.mock_afe() |
| mock_host_instance = self.mock_host() |
| mock_host_instance.hostname = 'chromeos9-rfswitch1' |
| # AFE returns list of RF Switch Hosts. |
| afe_instance.get_hosts.return_value = [mock_host_instance] |
| # Locking the first available RF Switch Host. |
| afe_instance.lock_host.return_value = True |
| rf_switch = rf_switch_utils.allocate_rf_switch() |
| self.assertEquals(rf_switch, mock_host_instance) |
| self.assertEquals(rf_switch.hostname, 'chromeos9-rfswitch1') |
| |
| |
| def testRfSwitchCannotBeLocked(self): |
| """Test logs when RF Switch cannot be locked.""" |
| afe_instance = self.mock_afe() |
| mock_host_instance = self.mock_host() |
| afe_instance.get_hosts.return_value = [mock_host_instance] |
| mock_host_instance.hostname = 'chromeos9-rfswitch1' |
| afe_instance.lock_host.return_value = False |
| with mock.patch('logging.Logger.error') as mock_logger: |
| rf_switch_utils.allocate_rf_switch() |
| mock_logger.assert_called_with( |
| 'RF Switch chromeos9-rfswitch1 could not be locked') |
| |
| |
| def testRfSwitchesNotAvailable(self): |
| """Test logs when no RF Switches are available to lock.""" |
| afe_instance = self.mock_afe() |
| afe_instance.get_hosts.return_value = [] |
| with mock.patch('logging.Logger.debug') as mock_logger: |
| rf_switch_utils.allocate_rf_switch() |
| mock_logger.assert_called_with( |
| 'No RF Switches are available for tests.') |
| |
| |
| def testDeallocateRfSwitch(self): |
| """Test to deallocate RF Switch.""" |
| afe_instance = self.mock_afe() |
| mock_host_instance = self.mock_host() |
| mock_host_instance.locked = False |
| afe_instance.get_hosts.return_value = [mock_host_instance] |
| self.assertEquals( |
| rf_switch_utils.deallocate_rf_switch(mock_host_instance), True) |
| |
| |
| def testRfSwitchCannotBeDeallocated(self): |
| """Test when RF Switch cannot be deallocated.""" |
| afe_instance = self.mock_afe() |
| mock_host_instance = self.mock_host() |
| mock_host_instance.locked = True |
| afe_instance.get_hosts.return_value = [mock_host_instance] |
| self.assertEquals( |
| rf_switch_utils.deallocate_rf_switch(mock_host_instance), False) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |