Exemplo n.º 1
0
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')
Exemplo n.º 2
0
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')
Exemplo n.º 3
0
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')
Exemplo n.º 4
0
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
Exemplo n.º 5
0
 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...'
Exemplo n.º 6
0
 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...'