Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ dependencies = [
"types-mock",
"types-requests",
"types-setuptools",
"tableauserverclient==0.35",
"tableauserverclient==0.37",
"urllib3",
]
[project.optional-dependencies]
Expand Down
8 changes: 3 additions & 5 deletions tabcmd/commands/extracts/refresh_extracts_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,15 @@ def run_command(args):
if args.addcalculations or args.removecalculations:
logger.warning("Add/Remove Calculations tasks are not supported.")

# docs: the REST method always runs a full refresh even if the refresh type is set to incremental.
if args.incremental: # docs: run the incremental refresh
logger.warn("Incremental refresh is not yet available through the new tabcmd")
incremental_refresh = True if args.incremental else False

try:
item = Extracts.get_wb_or_ds_for_extracts(args, logger, server)
if args.datasource:
logger.info(_("refreshextracts.status_refreshed").format(_("content_type.datasource"), args.datasource))
job: TSC.JobItem = server.datasources.refresh(item.id)
job: TSC.JobItem = server.datasources.refresh(item.id, incremental_refresh)
else:
job: TSC.JobItem = server.workbooks.refresh(item.id)
job: TSC.JobItem = server.workbooks.refresh(item.id, incremental_refresh)
logger.info(_("refreshextracts.status_refreshed").format(_("content_type.workbook"), args.workbook))

except Exception as e:
Expand Down
29 changes: 29 additions & 0 deletions tests/commands/test_run_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,35 @@ def test_refresh_extract(self, mock_session, mock_server):

refresh_extracts_command.RefreshExtracts.run_command(mock_args)
mock_session.assert_called()
mock_server.datasources.refresh.assert_called_with(fake_item.id, False)

def test_run_command_incremental_refresh_datasource(self, mock_session, mock_server):
RunCommandsTest._set_up_session(mock_session, mock_server)
mock_args.incremental = True
mock_args.datasource = fake_item.name
mock_server.datasources = getter
mock_server.projects = getter
mock_args.workbook = None
mock_args.addcalculations = False
mock_args.removecalculations = False
mock_args.synchronous = False

refresh_extracts_command.RefreshExtracts.run_command(mock_args)
mock_server.datasources.refresh.assert_called_with(fake_item.id, True)

def test_run_command_incremental_refresh_workbook(self, mock_session, mock_server):
RunCommandsTest._set_up_session(mock_session, mock_server)
mock_args.incremental = True
mock_args.workbook = fake_item.name
mock_server.workbooks = getter
mock_server.projects = getter
mock_args.datasource = None
mock_args.addcalculations = False
mock_args.removecalculations = False
mock_args.synchronous = False

refresh_extracts_command.RefreshExtracts.run_command(mock_args)
mock_server.workbooks.refresh.assert_called_with(fake_item.id, True)

# groups
def test_create_group(self, mock_session, mock_server):
Expand Down