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')
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()
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')