Skip to content

Commit 0ef672d

Browse files
committed
feat(client): add GAS.update_dataset and deprecate GAS.rename_dataset
1 parent 05db643 commit 0ef672d

File tree

3 files changed

+47
-1
lines changed

3 files changed

+47
-1
lines changed

tensorbay/client/gas.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,25 @@ def list_dataset_names(self) -> PagingList[str]:
345345
lambda offset, limit: self._generate_dataset_names(None, offset, limit), 128
346346
)
347347

348+
def update_dataset(
349+
self,
350+
name: str,
351+
*,
352+
new_alias: str = ..., # type: ignore[assignment]
353+
) -> None:
354+
"""Update a TensorBay Dataset.
355+
356+
Arguments:
357+
name: Name of the dataset, unique for a user.
358+
new_alias: New alias of the dataset.
359+
360+
"""
361+
dataset_id = self._get_dataset(name)["id"]
362+
patch_data = {"name": name}
363+
if new_alias is not ...: # type: ignore[comparison-overlap]
364+
patch_data["alias"] = new_alias
365+
self._client.open_api_do("PATCH", "", dataset_id, json=patch_data)
366+
348367
def rename_dataset(self, name: str, new_name: str) -> None:
349368
"""Rename a TensorBay Dataset with given name.
350369

tensorbay/client/tests/test_gas.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,22 @@ def test_list_dataset_names(self, mocker):
321321
assert list(datasets) == [data["name"] for data in response_data["datasets"]]
322322
open_api_do.assert_called_once_with("GET", "", params=params)
323323

324+
def test_update_dataset(self, mocker):
325+
response_data = {
326+
"id": "123456",
327+
"type": 1,
328+
"commitId": "4",
329+
"defaultBranch": DEFAULT_BRANCH,
330+
}
331+
open_api_do = mocker.patch(f"{gas.__name__}.Client.open_api_do")
332+
mocker.patch(
333+
f"{gas.__name__}.GAS._get_dataset",
334+
return_value=response_data,
335+
)
336+
patch_data = {"name": "test", "alias": "new_alias"}
337+
self.gas_client.update_dataset("test", new_alias="new_alias")
338+
open_api_do.assert_called_once_with("PATCH", "", response_data["id"], json=patch_data)
339+
324340
def test_rename_dataset(self, mocker):
325341
response_data = {
326342
"id": "123456",
@@ -334,7 +350,7 @@ def test_rename_dataset(self, mocker):
334350
return_value=response_data,
335351
)
336352
patch_data = {"name": "new_test"}
337-
self.gas_client.rename_dataset("test", "new_test")
353+
self.gas_client.rename_dataset("test", new_name="new_test")
338354
open_api_do.assert_called_once_with("PATCH", "", response_data["id"], json=patch_data)
339355

340356
def test_upload_dataset(self, mocker):

tests/test_dataset.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,17 @@ def test_get_fusion_dataset_to_latest_commit(self, accesskey, url):
148148

149149
gas_client.delete_dataset(dataset_name)
150150

151+
def test_update_dataset(self, accesskey, url):
152+
gas_client = GAS(access_key=accesskey, url=url)
153+
dataset_name = get_dataset_name()
154+
gas_client.create_dataset(dataset_name)
155+
156+
new_dataset_alias = f"{get_dataset_name()}alias"
157+
gas_client.update_dataset(name=dataset_name, new_alias=new_dataset_alias)
158+
dataset_client = gas_client.get_dataset(dataset_name)
159+
assert dataset_client.alias == new_dataset_alias
160+
gas_client.delete_dataset(dataset_name)
161+
151162
def test_rename_dataset(self, accesskey, url):
152163
gas_client = GAS(access_key=accesskey, url=url)
153164
dataset_name = get_dataset_name()

0 commit comments

Comments
 (0)