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'}]
     )
Example #2
0
    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,
         []
     )