add test_create_image unittest for restore

Change-Id: I9d21421c76ad82ae90724b4e14863b5f50a1c593
This commit is contained in:
gecong1973 2020-10-13 02:16:45 -07:00
parent d5b1e1a621
commit 6d8b124cb8
1 changed files with 78 additions and 0 deletions

View File

@ -63,6 +63,84 @@ class TestRestore(commons.FreezerBaseTestCase):
restore.RestoreOs(backup_opt.client_manager, backup_opt.container,
'local')
@mock.patch('shutil.rmtree')
@mock.patch('tempfile.mkdtemp')
@mock.patch('oslo_serialization.jsonutils.load')
@mock.patch('os.listdir')
@mock.patch('builtins.open')
@mock.patch('freezer.utils.utils.ReSizeStream')
@mock.patch('freezer.utils.utils.S3ResponseStream')
def test_create_image(self, mock_s3stream, mock_resize, mock_open,
mock_list, mock_load, mock_mkdtemp, mock_rmtree):
image = Image()
storage = mock.MagicMock()
storage.type = 's3'
storage.get_object.return_value = {'Body': '{"test": "test_info"}',
'ContentLength': 3}
storage.get_object_prefix.return_value = 'test'
storage.list_all_objects.return_value = [{'Key': '/12345'},
{'Key': '/12346'}]
client_manager = mock.MagicMock()
client_manager.create_image.return_value = image
restore_os = restore.RestoreOs(client_manager, '/root/test/', storage)
result1, result2 = restore_os._create_image('/root', 12344)
self.assertEqual(result1, {"test": "test_info"})
self.assertEqual(result2, image)
storage.get_object_prefix.return_value = ''
result1, result2 = restore_os._create_image('/root', 12344)
self.assertEqual(result1, {"test": "test_info"})
self.assertEqual(result2, image)
mock_open.side_effect = Exception("error")
storage.type = 'local'
mock_list.return_value = ['12345']
restore_os = restore.RestoreOs(client_manager, '/root/test', storage)
try:
restore_os._create_image('/root', 12344)
except BaseException as e:
self.assertEqual(str(e), "Failed to open image file"
" /root/test//root/12345//root")
mock_open.side_effect = 'test'
mock_load.return_value = 'test'
result1, result2 = restore_os._create_image('/root', 12344)
self.assertEqual(result1, 'test')
self.assertEqual(result2, image)
storage.type = 'ssh'
storage.open.side_effect = Exception("error")
storage.listdir.return_value = ['12345']
restore_os = restore.RestoreOs(client_manager, '/root/test', storage)
try:
restore_os._create_image('/root', 12344)
except BaseException as e:
self.assertEqual(str(e), "Failed to open remote image file "
"/root/test//root/12345//root")
storage.open.side_effect = 'test'
storage.read_metadata_file.return_value = '{"test": "test_info"}'
restore_os = restore.RestoreOs(client_manager, '/root/test', storage)
result1, result2 = restore_os._create_image('/root', 12344)
self.assertEqual(result1, {"test": "test_info"})
self.assertEqual(result2, image)
storage.type = 'ftp'
storage.listdir.return_value = ['12345']
mock_mkdtemp.side_effect = Exception('error')
restore_os = restore.RestoreOs(client_manager, '/root/test', storage)
try:
restore_os._create_image('/root', 12344)
except Exception as e:
self.assertEqual(str(e), "Unable to create a tmp directory")
mock_mkdtemp.side_effect = "success"
mock_rmtree.return_value = "success"
mock_open.side_effect = 'test'
result1, result2 = restore_os._create_image('/root', 12344)
self.assertEqual(result1, 'test')
self.assertEqual(result2, image)
def test_get_backups_exception(self):
storage = mock.MagicMock()
storage.type = 'ss3'