Handle Twitter multiple matches; fixes MB#10667
[hermes] / package / test / unit / test_twitter.py
index bd38307..fdd6b25 100644 (file)
@@ -104,6 +104,26 @@ class TestTwitterService(unittest.TestCase):
         assert screen_name == matchers[contact].get_nickname()
         assert contact == matchers[contact]['contact']
         assert contact == self.testee._get_friend_by_contact(contact)['contact']
+
+
+    def test_duplicate_match_avoids_exception(self):
+        twitter_name = "Twitter Name"
+        screen_name = "tweeter"
+        tweeter = FakeTweeter(twitter_name, screen_name)
+        self._fake_server([tweeter])
+        first_contact = FakeContact("One name", ["http://twitter.com/" + screen_name])
+        second_contact = FakeContact("Other name", ["http://twitter.com/" + screen_name])
+        
+        self._exercise_service([first_contact, second_contact])
+        
+        assert len(self.testee.get_unmatched_friends()) == 0
+        matchers = self.testee.get_contacts_with_match()
+        assert first_contact in matchers
+        assert second_contact in matchers
+        assert second_contact == matchers[first_contact]['contact']
+        assert second_contact == matchers[second_contact]['contact']
+        assert second_contact == self.testee._get_friend_by_contact(first_contact)['contact']
+        assert second_contact == self.testee._get_friend_by_contact(second_contact)['contact']
         
 
     def _exercise_service(self, contacts):