def test_fails(self, mock_makedirs, mock_getsize): """Tests calling ScaleFileManager.upload_files() when Workspace.upload_files() fails""" def new_getsize(path): return 100 mock_getsize.side_effect = new_getsize upload_dir = os.path.join('upload', 'dir') work_dir = os.path.join('work', 'dir') workspace = storage_test_utils.create_workspace() file_1 = ScaleFile() file_1.media_type = None # Scale should auto-detect text/plain remote_path_1 = 'my/remote/path/file.txt' local_path_1 = 'my/local/path/file.txt' file_2 = ScaleFile() file_2.media_type = 'application/json' remote_path_2 = 'my/remote/path/2/file.json' local_path_2 = 'my/local/path/2/file.json' workspace.upload_files = MagicMock() workspace.upload_files.side_effect = Exception workspace.delete_files = MagicMock() delete_work_dir = os.path.join(work_dir, 'delete', get_valid_filename(workspace.name)) files = [(file_1, local_path_1, remote_path_1), (file_2, local_path_2, remote_path_2)] self.assertRaises(Exception, ScaleFile.objects.upload_files, upload_dir, work_dir, workspace, files)
def test_success(self, mock_getsize): """Tests calling ScaleFileManager.upload_files() successfully""" def new_getsize(path): return 100 mock_getsize.side_effect = new_getsize workspace = storage_test_utils.create_workspace() file_1 = ScaleFile() file_1.media_type = None # Scale should auto-detect text/plain remote_path_1 = 'my/remote/path/file.txt' local_path_1 = 'my/local/path/file.txt' file_1.file_path = remote_path_1 file_2 = ScaleFile() file_2.media_type = 'application/json' remote_path_2 = 'my/remote/path/2/file.json' local_path_2 = 'my/local/path/2/file.json' file_2.file_path = remote_path_2 workspace.upload_files = MagicMock() files = [FileUpload(file_1, local_path_1), FileUpload(file_2, local_path_2)] models = ScaleFile.objects.upload_files(workspace, files) workspace.upload_files.assert_called_once_with([FileUpload(file_1, local_path_1), FileUpload(file_2, local_path_2)]) self.assertEqual('file.txt', models[0].file_name) self.assertEqual(remote_path_1, models[0].file_path) self.assertEqual('text/plain', models[0].media_type) self.assertEqual(workspace.id, models[0].workspace_id) self.assertEqual('file.json', models[1].file_name) self.assertEqual(remote_path_2, models[1].file_path) self.assertEqual('application/json', models[1].media_type) self.assertEqual(workspace.id, models[1].workspace_id)
def test_success(self, mock_getsize): '''Tests calling ScaleFileManager.upload_files() successfully''' def new_getsize(path): return 100 mock_getsize.side_effect = new_getsize upload_dir = os.path.join('upload', 'dir') work_dir = os.path.join('work', 'dir') workspace = storage_test_utils.create_workspace() file_1 = ScaleFile() file_1.media_type = None # Scale should auto-detect text/plain remote_path_1 = u'my/remote/path/file.txt' local_path_1 = u'my/local/path/file.txt' file_2 = ScaleFile() file_2.media_type = u'application/json' remote_path_2 = u'my/remote/path/2/file.json' local_path_2 = u'my/local/path/2/file.json' workspace.upload_files = MagicMock() workspace.delete_files = MagicMock() workspace_work_dir = ScaleFile.objects._get_workspace_work_dir( work_dir, workspace) files = [(file_1, local_path_1, remote_path_1), (file_2, local_path_2, remote_path_2)] models = ScaleFile.objects.upload_files(upload_dir, work_dir, workspace, files) workspace.upload_files.assert_called_once_with( upload_dir, workspace_work_dir, [(local_path_1, remote_path_1), (local_path_2, remote_path_2)]) self.assertListEqual(workspace.delete_files.call_args_list, []) self.assertEqual(u'file.txt', models[0].file_name) self.assertEqual(remote_path_1, models[0].file_path) self.assertEqual(u'text/plain', models[0].media_type) self.assertEqual(workspace.id, models[0].workspace_id) self.assertEqual(u'file.json', models[1].file_name) self.assertEqual(remote_path_2, models[1].file_path) self.assertEqual(u'application/json', models[1].media_type) self.assertEqual(workspace.id, models[1].workspace_id)
def test_success(self, mock_getsize): """Tests calling ScaleFileManager.upload_files() successfully""" def new_getsize(path): return 100 mock_getsize.side_effect = new_getsize workspace = storage_test_utils.create_workspace() file_1 = ScaleFile() file_1.media_type = None # Scale should auto-detect text/plain remote_path_1 = 'my/remote/path/file.txt' local_path_1 = 'my/local/path/file.txt' file_1.file_path = remote_path_1 file_2 = ScaleFile() file_2.media_type = 'application/json' remote_path_2 = 'my/remote/path/2/file.json' local_path_2 = 'my/local/path/2/file.json' file_2.file_path = remote_path_2 workspace.upload_files = MagicMock() files = [ FileUpload(file_1, local_path_1), FileUpload(file_2, local_path_2) ] models = ScaleFile.objects.upload_files(workspace, files) workspace.upload_files.assert_called_once_with([ FileUpload(file_1, local_path_1), FileUpload(file_2, local_path_2) ]) self.assertEqual('file.txt', models[0].file_name) self.assertEqual(remote_path_1, models[0].file_path) self.assertEqual('text/plain', models[0].media_type) self.assertEqual(workspace.id, models[0].workspace_id) self.assertEqual('file.json', models[1].file_name) self.assertEqual(remote_path_2, models[1].file_path) self.assertEqual('application/json', models[1].media_type) self.assertEqual(workspace.id, models[1].workspace_id)
def test_success(self, mock_getsize): '''Tests calling ScaleFileManager.upload_files() successfully''' def new_getsize(path): return 100 mock_getsize.side_effect = new_getsize upload_dir = os.path.join('upload', 'dir') work_dir = os.path.join('work', 'dir') workspace = storage_test_utils.create_workspace() file_1 = ScaleFile() file_1.media_type = None # Scale should auto-detect text/plain remote_path_1 = u'my/remote/path/file.txt' local_path_1 = u'my/local/path/file.txt' file_2 = ScaleFile() file_2.media_type = u'application/json' remote_path_2 = u'my/remote/path/2/file.json' local_path_2 = u'my/local/path/2/file.json' workspace.upload_files = MagicMock() workspace.delete_files = MagicMock() workspace_work_dir = ScaleFile.objects._get_workspace_work_dir(work_dir, workspace) files = [(file_1, local_path_1, remote_path_1), (file_2, local_path_2, remote_path_2)] models = ScaleFile.objects.upload_files(upload_dir, work_dir, workspace, files) workspace.upload_files.assert_called_once_with(upload_dir, workspace_work_dir, [(local_path_1, remote_path_1), (local_path_2, remote_path_2)]) self.assertListEqual(workspace.delete_files.call_args_list, []) self.assertEqual(u'file.txt', models[0].file_name) self.assertEqual(remote_path_1, models[0].file_path) self.assertEqual(u'text/plain', models[0].media_type) self.assertEqual(workspace.id, models[0].workspace_id) self.assertEqual(u'file.json', models[1].file_name) self.assertEqual(remote_path_2, models[1].file_path) self.assertEqual(u'application/json', models[1].media_type) self.assertEqual(workspace.id, models[1].workspace_id)