From 2a2c4eb8a64e8c740f20a9152a6281daf1a46785 Mon Sep 17 00:00:00 2001 From: Jordan Woods Date: Tue, 10 May 2022 22:02:46 -0500 Subject: [PATCH] Reassign content on user removal --- tableauserverclient/server/endpoint/users_endpoint.py | 6 ++++-- test/test_user.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tableauserverclient/server/endpoint/users_endpoint.py b/tableauserverclient/server/endpoint/users_endpoint.py index a1984d5d6..738364cd7 100644 --- a/tableauserverclient/server/endpoint/users_endpoint.py +++ b/tableauserverclient/server/endpoint/users_endpoint.py @@ -1,6 +1,6 @@ import copy import logging -from typing import List, Tuple +from typing import List, Optional, Tuple from .endpoint import QuerysetEndpoint, api from .exceptions import MissingRequiredFieldError @@ -64,11 +64,13 @@ def update(self, user_item: UserItem, password: str = None) -> UserItem: # Delete 1 user by id @api(version="2.0") - def remove(self, user_id: str) -> None: + def remove(self, user_id: str, map_assets_to: Optional[str] = None) -> None: if not user_id: error = "User ID undefined." raise ValueError(error) url = "{0}/{1}".format(self.baseurl, user_id) + if map_assets_to is not None: + url += f"?mapAssetsTo={map_assets_to}" self.delete_request(url) logger.info("Removed single user (ID: {0})".format(user_id)) diff --git a/test/test_user.py b/test/test_user.py index 6ba8ff7f2..b8fe32388 100644 --- a/test/test_user.py +++ b/test/test_user.py @@ -111,6 +111,16 @@ def test_remove(self) -> None: m.delete(self.baseurl + "/dd2239f6-ddf1-4107-981a-4cf94e415794", status_code=204) self.server.users.remove("dd2239f6-ddf1-4107-981a-4cf94e415794") + def test_remove_with_replacement(self) -> None: + with requests_mock.mock() as m: + m.delete( + self.baseurl + + "/dd2239f6-ddf1-4107-981a-4cf94e415794" + + "?mapAssetsTo=4cc4c17f-898a-4de4-abed-a1681c673ced", + status_code=204, + ) + self.server.users.remove("dd2239f6-ddf1-4107-981a-4cf94e415794", "4cc4c17f-898a-4de4-abed-a1681c673ced") + def test_remove_missing_id(self) -> None: self.assertRaises(ValueError, self.server.users.remove, "")