def testGetUserPrefs_Mine_Empty(self): """User who never set any pref gets empty prefs.""" request = users_pb2.GetUserPrefsRequest() mc = monorailcontext.MonorailContext(self.services, cnxn=self.cnxn, requester='*****@*****.**') response = self.CallWrapped(self.users_svcr.GetUserPrefs, mc, request) self.assertEqual(0, len(response.prefs))
def testGetUserPrefs_Anon(self): """Anon always has empty prefs.""" request = users_pb2.GetUserPrefsRequest() mc = monorailcontext.MonorailContext(self.services, cnxn=self.cnxn, requester=None) response = self.CallWrapped(self.users_svcr.GetUserPrefs, mc, request) self.assertEqual(0, len(response.prefs))
def testGetUserPrefs_Mine_Some(self): """User who set a pref gets it back.""" self.services.user.SetUserPrefs( self.cnxn, 111, [user_pb2.UserPrefValue(name='code_font', value='true')]) request = users_pb2.GetUserPrefsRequest() mc = monorailcontext.MonorailContext(self.services, cnxn=self.cnxn, requester='*****@*****.**') response = self.CallWrapped(self.users_svcr.GetUserPrefs, mc, request) self.assertEqual(1, len(response.prefs)) self.assertEqual('code_font', response.prefs[0].name) self.assertEqual('true', response.prefs[0].value)
def testGetUserPrefs_Other_Denied(self): """A non-admin cannot read another user's prefs.""" self.services.user.SetUserPrefs( self.cnxn, 111, [user_pb2.UserPrefValue(name='code_font', value='true')]) # user2 is not a site admin. request = users_pb2.GetUserPrefsRequest() request.user_ref.display_name = '*****@*****.**' mc = monorailcontext.MonorailContext(self.services, cnxn=self.cnxn, requester='*****@*****.**') mc.LookupLoggedInUserPerms(self.project) with self.assertRaises(permissions.PermissionException): self.CallWrapped(self.users_svcr.GetUserPrefs, mc, request)
def testGetUserPrefs_Other_Allowed(self): """A site admin can read another user's prefs.""" self.services.user.SetUserPrefs( self.cnxn, 111, [user_pb2.UserPrefValue(name='code_font', value='true')]) self.user_2.is_site_admin = True request = users_pb2.GetUserPrefsRequest() request.user_ref.display_name = '*****@*****.**' mc = monorailcontext.MonorailContext(self.services, cnxn=self.cnxn, requester='*****@*****.**') mc.LookupLoggedInUserPerms(self.project) response = self.CallWrapped(self.users_svcr.GetUserPrefs, mc, request) self.assertEqual(1, len(response.prefs)) self.assertEqual('code_font', response.prefs[0].name) self.assertEqual('true', response.prefs[0].value)
def testGetUserSavedQueries_Mine(self): """See your own queries.""" self.services.features.UpdateUserSavedQueries(self.cnxn, 111, [ tracker_pb2.SavedQuery(query_id=101, name='test', query='owner:me'), tracker_pb2.SavedQuery(query_id=202, name='hello', query='world', executes_in_project_ids=[987]) ]) request = users_pb2.GetUserPrefsRequest() mc = monorailcontext.MonorailContext(self.services, cnxn=self.cnxn, requester='*****@*****.**') response = self.CallWrapped(self.users_svcr.GetSavedQueries, mc, request) self.assertEqual(2, len(response.saved_queries)) self.assertEqual('test', response.saved_queries[0].name) self.assertEqual('owner:me', response.saved_queries[0].query) self.assertEqual('hello', response.saved_queries[1].name) self.assertEqual('world', response.saved_queries[1].query) self.assertEqual(['proj'], response.saved_queries[1].project_names)