def test_export_workspace_cli(tmpdir): path = tmpdir.strpath with mock.patch('databricks_cli.workspace.cli.get_status') as get_status_mock: with mock.patch('databricks_cli.workspace.cli.export_workspace') as export_workspace_mock: get_status_mock.return_value = WorkspaceFileInfo('/notebook-name', NOTEBOOK, WorkspaceLanguage.SCALA) runner = CliRunner() runner.invoke(cli.export_workspace_cli, ['--format', 'SOURCE', '/notebook-name', path]) assert export_workspace_mock.call_args[0][1] == os.path.join(path, 'notebook-name.scala')
def test_export_workspace_cli(workspace_api_mock, tmpdir): path = tmpdir.strpath workspace_api_mock.get_status.return_value = \ WorkspaceFileInfo('/notebook-name', NOTEBOOK, WorkspaceLanguage.SCALA) runner = CliRunner() runner.invoke(cli.export_workspace_cli, ['--format', 'SOURCE', '/notebook-name', path]) assert workspace_api_mock.export_workspace.call_args[0][1] == os.path.join( path, 'notebook-name.scala')
def test_export_workspace_cli(tmpdir): path = tmpdir.strpath with mock.patch( 'databricks_cli.workspace.cli.get_status') as get_status_mock: with mock.patch('databricks_cli.workspace.cli.export_workspace' ) as export_workspace_mock: get_status_mock.return_value = WorkspaceFileInfo( '/notebook-name', NOTEBOOK, WorkspaceLanguage.SCALA) get_callback(cli.export_workspace_cli)('/notebook-name', path, WorkspaceFormat.SOURCE, False) assert export_workspace_mock.call_args[0][1] == os.path.join( path, 'notebook-name.scala')
def _get_notebooks_recrusive(service: WorkspaceService, path): resp = service.list(path) if "objects" not in resp: return [] objects = resp["objects"] output = [] for obj in objects: workspace_obj = WorkspaceFileInfo.from_json(obj) if workspace_obj.is_notebook is True: output.append(workspace_obj) if workspace_obj.is_dir is True: output += _get_notebooks_recrusive(service, workspace_obj.path) return output
def _list_objects_mock(path): if path == '/': return [ WorkspaceFileInfo('/a', api.DIRECTORY), WorkspaceFileInfo('/f', api.DIRECTORY) ] elif path == '/a': return [ WorkspaceFileInfo('/a/b', api.NOTEBOOK, WorkspaceLanguage.SCALA), WorkspaceFileInfo('/a/c', api.NOTEBOOK, WorkspaceLanguage.PYTHON), WorkspaceFileInfo('/a/d', api.NOTEBOOK, WorkspaceLanguage.R), WorkspaceFileInfo('/a/e', api.NOTEBOOK, WorkspaceLanguage.SQL), ] elif path == '/f': return [WorkspaceFileInfo('/f/g', api.DIRECTORY)] elif path == '/f/g': return [] else: assert False, 'We shouldn\'t reach this case...'
def _list_objects_mock(path, headers=None): if path == '/': return [ WorkspaceFileInfo('/a', api.DIRECTORY, TEST_WORKSPACE_OBJECT_ID), WorkspaceFileInfo('/f', api.DIRECTORY, TEST_WORKSPACE_OBJECT_ID) ] elif path == '/a': return [ WorkspaceFileInfo('/a/b', api.NOTEBOOK, TEST_WORKSPACE_OBJECT_ID, WorkspaceLanguage.SCALA), WorkspaceFileInfo('/a/c', api.NOTEBOOK, TEST_WORKSPACE_OBJECT_ID, WorkspaceLanguage.PYTHON), WorkspaceFileInfo('/a/d', api.NOTEBOOK, TEST_WORKSPACE_OBJECT_ID, WorkspaceLanguage.R), WorkspaceFileInfo('/a/e', api.NOTEBOOK, TEST_WORKSPACE_OBJECT_ID, WorkspaceLanguage.SQL), ] elif path == '/f': return [WorkspaceFileInfo('/f/g', api.DIRECTORY, TEST_WORKSPACE_OBJECT_ID)] elif path == '/f/g': return [] else: assert False, 'We shouldn\'t reach this case...'