def test_single_ticket(self): parsed = parse_commit_message("Message refs affinitic #1") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}] ) parsed = parse_commit_message("Message refs affinitic 1") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}] )
def tickets(self): """ One message per ticket, but tickets are grouped by commit reference commits_dict = {"affinitic_6060_refs": [commit1, commit2], "arsia_2020_closes": [commit3]} tickets = [ticket1, ticket2] """ commits_dict = OrderedDict() # sort array to have older commit first commits = self.request.commits for commit in commits: parseds = parse_commit_message(commit.message) # Do not push anything if nothing found in parsing if not parseds: continue for parsed in parseds: key = parsed['trac'] + '_' + parsed['ticket'] + '_' + parsed['command'] # Initialize commit list if key not in commits_dict: commits_dict[key] = [] commits_dict[key].append(commit) tickets = [] for key in commits_dict: tickets.append(Ticket(request=self.request, commits=commits_dict[key], key=key)) return tickets
def test_condensed_tickets(self): parsed = parse_commit_message("Message refs affinitic #1 #2 #3") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}, {'ticket': '2', 'command': 'refs', 'trac': 'affinitic'}, {'ticket': '3', 'command': 'refs', 'trac': 'affinitic'}] ) parsed = parse_commit_message("Message refs affinitic #1 #2 #3 and refs arsia #5") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}, {'ticket': '2', 'command': 'refs', 'trac': 'affinitic'}, {'ticket': '3', 'command': 'refs', 'trac': 'affinitic'}, {'ticket': '5', 'command': 'refs', 'trac': 'arsia'}] )
def test_double_tracs(self): parsed = parse_commit_message("Message refs affinitic #1 and refs arsia #2") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}, {'ticket': '2', 'command': 'refs', 'trac': 'arsia'}] )
def test_ambiguous_actions(self): parsed = parse_commit_message("Message ref affinitic #1") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}] ) parsed = parse_commit_message("Message refs affinitic #1") self.assertEquals( parsed, [{'ticket': '1', 'command': 'refs', 'trac': 'affinitic'}] ) parsed = parse_commit_message("Message close affinitic #1") self.assertEquals( parsed, [{'ticket': '1', 'command': 'resolve', 'trac': 'affinitic'}] ) parsed = parse_commit_message("Message closes affinitic #1") self.assertEquals( parsed, [{'ticket': '1', 'command': 'resolve', 'trac': 'affinitic'}] )
def test_empty(self): parsed = parse_commit_message("Message foo affinitic #1") self.assertEquals( parsed, [] )