def test_execute_commit_timeout(self, mocked_device, mocked_isatty, mocked_input, caplog): """It should retry TIMEOUT_ATTEMPTS times and report the failure.""" message = 'commit message' mocked_device.return_value.cu.diff.return_value = 'diff' mocked_device.return_value.cu.commit.side_effect = RpcTimeoutError(mocked_device, message, 30) mocked_isatty.return_value = True mocked_input.return_value = 'yes' ret = self.homer.commit('device*', message=message) assert ret == 1 assert 'Commit attempt 3/3 failed' in caplog.text
def test_commit_timeout(self, mocked_junos_device): """It should catch the timeout exception separately.""" mocked_junos_device.return_value.cu = mock.MagicMock( spec_set=junos.Config) mocked_junos_device.return_value.cu.diff.return_value = 'diff' mocked_junos_device.return_value.cu.commit.side_effect = RpcTimeoutError( mocked_junos_device, 'commit-configuration', 30) device = junos.ConnectedDevice(self.fqdn) callback = mock.Mock() with pytest.raises(HomerTimeoutError): device.commit('config', COMMIT_MESSAGE, callback) callback.assert_called_once_with('device1.example.com', 'diff') mocked_junos_device.return_value.cu.commit_check.assert_not_called()
def test_commit_check_rollback_error(self, mocked_junos_device, caplog): """It should log any rollback generic error.""" mocked_junos_device.return_value.cu = mock.MagicMock( spec_set=junos.Config) mocked_junos_device.return_value.cu.diff.return_value = 'diff' mocked_junos_device.return_value.cu.rollback.side_effect = RpcTimeoutError( mocked_junos_device, 'load-configuration', 30) device = junos.ConnectedDevice(self.fqdn) success, diff = device.commit_check('config') assert success assert diff == 'diff' assert 'Failed to rollback on {fqdn}: RpcTimeoutError'.format( fqdn=self.fqdn) in caplog.text mocked_junos_device.return_value.cu.commit_check.assert_called_once_with( ) mocked_junos_device.return_value.cu.rollback.assert_called_once_with()
def test_sw_reboot_exception_RpcTimeoutError(self, mock_execute): rsp = (self.dev, 'request-reboot', 60) mock_execute.side_effect = RpcTimeoutError(*rsp) self.assertRaises(Exception, self.sw.reboot)
def test_commit_check_RpcTimeoutError(self): ex = RpcTimeoutError(self.dev, None, 10) self.dev.rpc.commit_configuration = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.commit_check)
def test_config_load_try_load_rpctimeouterror(self, mock_open): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.load_config = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.load, path='config.conf')
def test__enter__batch_exception_RpcTimeoutError(self): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.open_configuration = MagicMock(side_effect=ex) self.assertRaises(RpcTimeoutError, Config.__enter__, Config(self.dev, mode='batch'))
def test_config_diff_rpc_timeout(self): ex = RpcTimeoutError(self.dev, None, 10) self.conf.rpc.get_configuration = MagicMock( side_effect=ex) self.assertRaises(RpcTimeoutError, self.conf.diff)
def test_RpcTimeoutError_repr(self): dev = Device('test') obj = RpcTimeoutError(dev=dev, cmd='test', timeout=50) err = 'RpcTimeoutError(host: test, cmd: test, timeout: 50)' self.assertEqual(obj.__repr__(), err)
def test_RpcTimeoutError_repr(self): dev = Device("test") obj = RpcTimeoutError(dev=dev, cmd="test", timeout=50) err = "RpcTimeoutError(host: test, cmd: test, timeout: 50)" self.assertEqual(obj.__repr__(), err)