Exemple #1
0
    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.set_basic_fields('file.txt', 100, 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.set_basic_fields('file.json', 100, '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)