def testAddIssuesToHotlists(self): # Create two hotlists hotlist_1 = self.services.features.CreateHotlist( self.cnxn, 'Hotlist-1', 'Summary', 'Description', owner_ids=[111], editor_ids=[]) hotlist_2 = self.services.features.CreateHotlist( self.cnxn, 'Hotlist-2', 'Summary', 'Description', owner_ids=[111], editor_ids=[]) # Add Issue 1 to both hotlists request = features_pb2.AddIssuesToHotlistsRequest( note='Foo', hotlist_refs=[ common_pb2.HotlistRef( name='Hotlist-1', owner=common_pb2.UserRef(user_id=111)), common_pb2.HotlistRef( name='Hotlist-2', owner=common_pb2.UserRef(user_id=111))], issue_refs=[ common_pb2.IssueRef(project_name='proj', local_id=1)]) mc = monorailcontext.MonorailContext( self.services, cnxn=self.cnxn, requester='*****@*****.**') self.CallWrapped(self.features_svcr.AddIssuesToHotlists, mc, request) self.assertEqual( [self.issue_1.issue_id], [item.issue_id for item in hotlist_1.items]) self.assertEqual( [self.issue_1.issue_id], [item.issue_id for item in hotlist_2.items]) self.assertEqual('Foo', hotlist_1.items[0].note) self.assertEqual('Foo', hotlist_2.items[0].note)
def testListHotlistIssues(self): hotlist_id = self.services.features.CreateHotlist( self.cnxn, 'Fake-Hotlist', 'Summary', 'Description', owner_ids=[111], editor_ids=[]).hotlist_id self.services.features.UpdateHotlistItems( self.cnxn, hotlist_id, [], [(self.issue_1.issue_id, 222, 12345, 'Note'), (self.issue_2.issue_id, 111, 12346, 'Note')]) self.issue_2.labels = ['Restrict-View-CoreTeam'] owner_ref = common_pb2.UserRef(user_id=111) hotlist_ref = common_pb2.HotlistRef(name='Fake-Hotlist', owner=owner_ref) request = features_pb2.ListHotlistIssuesRequest(hotlist_ref=hotlist_ref) mc = monorailcontext.MonorailContext( self.services, cnxn=self.cnxn, requester='*****@*****.**') mc.LookupLoggedInUserPerms(self.project) response = self.CallWrapped( self.features_svcr.ListHotlistIssues, mc, request) self.assertEqual(1, len(response.items)) self.assertEqual(10, response.items[0].rank) self.assertEqual(12345, response.items[0].added_timestamp) self.assertEqual('Note', response.items[0].note) self.assertEqual( common_pb2.UserRef( user_id=222, display_name='*****@*****.**'), response.items[0].adder_ref) self.assertEqual(1, response.items[0].issue.local_id) self.assertEqual('proj', response.items[0].issue.project_name) self.assertEqual('sum', response.items[0].issue.summary) self.assertEqual('New', response.items[0].issue.status_ref.status)
def CallGetStarCount(self): # Query for hotlists for '*****@*****.**' owner_ref = common_pb2.UserRef(user_id=111) hotlist_ref = common_pb2.HotlistRef(name='Fake-Hotlist', owner=owner_ref) request = features_pb2.GetHotlistStarCountRequest(hotlist_ref=hotlist_ref) mc = monorailcontext.MonorailContext( self.services, cnxn=self.cnxn, requester='*****@*****.**') response = self.CallWrapped( self.features_svcr.GetHotlistStarCount, mc, request) return response.star_count
def testRemoveIssuesFromHotlists(self): # Create two hotlists with issues 1 and 2. hotlist_1 = self.services.features.CreateHotlist( self.cnxn, 'Hotlist-1', 'Summary', 'Description', owner_ids=[111], editor_ids=[]) hotlist_2 = self.services.features.CreateHotlist( self.cnxn, 'Hotlist-2', 'Summary', 'Description', owner_ids=[111], editor_ids=[]) self.services.features.AddIssuesToHotlists( self.cnxn, [hotlist_1.hotlist_id, hotlist_2.hotlist_id], [(self.issue_1.issue_id, 111, 0, ''), (self.issue_2.issue_id, 111, 0, '')], None, None, None) # Remove Issue 1 from both hotlists. request = features_pb2.RemoveIssuesFromHotlistsRequest( hotlist_refs=[ common_pb2.HotlistRef( name='Hotlist-1', owner=common_pb2.UserRef(user_id=111)), common_pb2.HotlistRef( name='Hotlist-2', owner=common_pb2.UserRef(user_id=111))], issue_refs=[ common_pb2.IssueRef(project_name='proj', local_id=1)]) mc = monorailcontext.MonorailContext( self.services, cnxn=self.cnxn, requester='*****@*****.**') self.CallWrapped(self.features_svcr.RemoveIssuesFromHotlists, mc, request) # Only Issue 2 should remain in both lists. self.assertEqual( [self.issue_2.issue_id], [item.issue_id for item in hotlist_1.items]) self.assertEqual( [self.issue_2.issue_id], [item.issue_id for item in hotlist_2.items])
def testUpdateHotlistIssueNote_NotAllowed(self): hotlist = self.services.features.CreateHotlist( self.cnxn, 'Hotlist-1', 'Summary', 'Description', owner_ids=[222], editor_ids=[]) self.services.features.AddIssuesToHotlists( self.cnxn, [hotlist.hotlist_id], [(self.issue_1.issue_id, 222, 0, '')], None, None, None) request = features_pb2.UpdateHotlistIssueNoteRequest( hotlist_ref=common_pb2.HotlistRef( name='Hotlist-1', owner=common_pb2.UserRef(user_id=222)), issue_ref=common_pb2.IssueRef( project_name='proj', local_id=1), note='Note') mc = monorailcontext.MonorailContext( self.services, cnxn=self.cnxn, requester='*****@*****.**') with self.assertRaises(permissions.PermissionException): self.CallWrapped(self.features_svcr.UpdateHotlistIssueNote, mc, request)
def testUpdateHotlistIssueNote(self): hotlist = self.services.features.CreateHotlist( self.cnxn, 'Hotlist-1', 'Summary', 'Description', owner_ids=[111], editor_ids=[]) self.services.features.AddIssuesToHotlists( self.cnxn, [hotlist.hotlist_id], [(self.issue_1.issue_id, 111, 0, '')], None, None, None) request = features_pb2.UpdateHotlistIssueNoteRequest( hotlist_ref=common_pb2.HotlistRef( name='Hotlist-1', owner=common_pb2.UserRef(user_id=111)), issue_ref=common_pb2.IssueRef( project_name='proj', local_id=1), note='Note') mc = monorailcontext.MonorailContext( self.services, cnxn=self.cnxn, requester='*****@*****.**') self.CallWrapped(self.features_svcr.UpdateHotlistIssueNote, mc, request) self.assertEqual('Note', hotlist.items[0].note)