221
223
driver_info=INFO_DICT)
222
224
self.info = ipmi._parse_driver_info(self.node)
224
def test__make_password_file(self, mock_sleep):
225
with ipmi._make_password_file(self.info.get('password')) as pw_file:
226
del_chk_pw_file = pw_file
227
self.assertTrue(os.path.isfile(pw_file))
228
self.assertEqual(0o600, os.stat(pw_file)[stat.ST_MODE] & 0o777)
229
with open(pw_file, "r") as f:
231
self.assertEqual(self.info.get('password'), password)
232
self.assertFalse(os.path.isfile(del_chk_pw_file))
226
def _test__make_password_file(self, mock_sleep, input_password,
227
exception_to_raise=None):
230
with ipmi._make_password_file(input_password) as pw_file:
231
if exception_to_raise is not None:
232
raise exception_to_raise
233
self.assertTrue(os.path.isfile(pw_file))
234
self.assertEqual(0o600, os.stat(pw_file)[stat.ST_MODE] & 0o777)
235
with open(pw_file, "r") as f:
237
self.assertEqual(str(input_password), password)
239
if pw_file is not None:
240
self.assertFalse(os.path.isfile(pw_file))
242
def test__make_password_file_str_password(self, mock_sleep):
243
self._test__make_password_file(mock_sleep, self.info.get('password'))
245
def test__make_password_file_with_numeric_password(self, mock_sleep):
246
self._test__make_password_file(mock_sleep, 12345)
248
def test__make_password_file_caller_exception(self, mock_sleep):
249
# Test caller raising exception
250
result = self.assertRaises(
252
self._test__make_password_file,
253
mock_sleep, 12345, ValueError('we should fail'))
254
self.assertEqual(result.message, 'we should fail')
256
@mock.patch.object(tempfile, 'NamedTemporaryFile',
257
new=mock.MagicMock(side_effect=OSError('Test Error')))
258
def test__make_password_file_tempfile_known_exception(self, mock_sleep):
259
# Test OSError exception in _make_password_file for
260
# tempfile.NamedTemporaryFile
262
exception.PasswordFileFailedToCreate,
263
self._test__make_password_file, mock_sleep, 12345)
266
tempfile, 'NamedTemporaryFile',
267
new=mock.MagicMock(side_effect=OverflowError('Test Error')))
268
def test__make_password_file_tempfile_unknown_exception(self, mock_sleep):
269
# Test exception in _make_password_file for tempfile.NamedTemporaryFile
270
result = self.assertRaises(
272
self._test__make_password_file, mock_sleep, 12345)
273
self.assertEqual(result.message, 'Test Error')
275
def test__make_password_file_write_exception(self, mock_sleep):
276
# Test exception in _make_password_file for write()
277
mock_namedtemp = mock.mock_open(mock.MagicMock(name='JLV'))
278
with mock.patch('tempfile.NamedTemporaryFile', mock_namedtemp):
279
mock_filehandle = mock_namedtemp.return_value
280
mock_write = mock_filehandle.write
281
mock_write.side_effect = OSError('Test 2 Error')
283
exception.PasswordFileFailedToCreate,
284
self._test__make_password_file, mock_sleep, 12345)
234
286
def test__parse_driver_info(self, mock_sleep):
235
287
# make sure we get back the expected things