8000 Implement server.users.populate_favorites (#656) · zeninpalm/server-client-python@4a14d39 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4a14d39

Browse files
authored
Implement server.users.populate_favorites (tableau#656)
1 parent 9240eb8 commit 4a14d39

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

tableauserverclient/server/endpoint/users_endpoint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,4 @@ def _get_wbs_for_user(self, user_item, req_options=None):
9090
return workbook_item, pagination_item
9191

9292
def populate_favorites(self, user_item):
93-
raise NotImplementedError('REST API currently does not support the ability to query favorites')
93+
self.parent_srv.favorites.get(user_item)

test/test_user.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
UPDATE_XML = os.path.join(TEST_ASSET_DIR, 'user_update.xml')
1313
ADD_XML = os.path.join(TEST_ASSET_DIR, 'user_add.xml')
1414
POPULATE_WORKBOOKS_XML = os.path.join(TEST_ASSET_DIR, 'user_populate_workbooks.xml')
15-
ADD_FAVORITE_XML = os.path.join(TEST_ASSET_DIR, 'user_add_favorite.xml')
15+
GET_FAVORITES_XML = os.path.join(TEST_ASSET_DIR, 'favorites_get.xml')
1616

1717

1818
class UserTests(unittest.TestCase):
@@ -146,3 +146,28 @@ def test_populate_workbooks(self):
146146
def test_populate_workbooks_missing_id(self):
147147
single_user = TSC.UserItem('test', 'Interactor')
148148
self.assertRaises(TSC.MissingRequiredFieldError, self.server.users.populate_workbooks, single_user)
149+
150+
def test_populate_favorites(self):
151+
self.server.version = '2.5'
152+
baseurl = self.server.favorites.baseurl
153+
single_user = TSC.UserItem('test', 'Interactor')
154+
with open(GET_FAVORITES_XML, 'rb') as f:
155+
response_xml = f.read().decode('utf-8')
156+
with requests_mock.mock() as m:
157+
m.get('{0}/{1}'.format(baseurl, single_user.id), text=response_xml)
158+
self.server.users.populate_favorites(single_user)
159+
self.assertIsNotNone(single_user._favorites)
160+
self.assertEqual(len(single_user.favorites['workbooks']), 1)
161+
self.assertEqual(len(single_user.favorites['views']), 1)
162+
self.assertEqual(len(single_user.favorites['projects']), 1)
163+
self.assertEqual(len(single_user.favorites['datasources']), 1)
164+
165+
workbook = single_user.favorites['workbooks'][0]
166+
view = single_user.favorites['views'][0]
167+
datasource = single_user.favorites['datasources'][0]
168+
project = single_user.favorites['projects'][0]
169+
170+
self.assertEqual(workbook.id, '6d13b0ca-043d-4d42-8c9d-3f3313ea3a00')
171+
self.assertEqual(view.id, 'd79634e1-6063-4ec9-95ff-50acbf609ff5')
172+
self.assertEqual(datasource.id, 'e76a1461-3b1d-4588-bf1b-17551a879ad9')
173+
self.assertEqual(project.id, '1d0304cd-3796-429f-b815-7258370b9b74')

0 commit comments

Comments
 (0)
0