Exemplo n.º 1
0
 def test_parse_mentions_multiple(self):
     text = 'hey there @[Francis Tseng](user:123456) foo @[Kira SK](user:7890)'
     mentions = [m for m in util.parse_mentions(text)]
     self.assertEqual(mentions[0].group('mention'), 'Francis Tseng')
     self.assertEqual(mentions[0].group('type'), 'user')
     self.assertEqual(mentions[0].group('id'), '123456')
     self.assertEqual(mentions[1].group('mention'), 'Kira SK')
     self.assertEqual(mentions[1].group('type'), 'user')
     self.assertEqual(mentions[1].group('id'), '7890')
Exemplo n.º 2
0
    def parse_mentions(self):
        current_mentioned_ids = set([e.google_id for e in self.mentions])
        mentioned_ids = set([(match.group('id')) for match in parse_mentions(self.body)])
        new_mentions = mentioned_ids - current_mentioned_ids
        old_mentions = current_mentioned_ids - mentioned_ids

        # Add in new mentions.
        for id in new_mentions:
            u = User.objects(google_id=id).first()
            if u:
                self.mentions.append(u)
                u.references.append(self) # Add issue to the user as well
                u.save()

        # Remove mentions that are gone now.
        for id in old_mentions:
            u = next((u_ for u_ in self.mentions if u_.google_id==id), 0)
            if u:
                self.mentions.remove(u)
                u.references.remove(self) # Remove from the user as well
                u.save()
        self.save()
Exemplo n.º 3
0
 def test_parse_mentions(self):
     text = 'hey there @[Francis Tseng](user:123456) foo'
     for m in util.parse_mentions(text):
         self.assertEqual(m.group('mention'), 'Francis Tseng')
         self.assertEqual(m.group('type'), 'user')
         self.assertEqual(m.group('id'), '123456')