552
552
get_url.assert_called_with(
553
553
'https://api.twitter.com/1.1/search/tweets.json?q=hello')
555
def test_getfriendsids(self):
556
get_url = self.protocol._get_url = mock.Mock(
557
return_value={"ids":[1,2,3]})
558
ids = self.protocol._getfriendsids()
560
get_url.assert_called_with(
561
'https://api.twitter.com/1.1/friends/ids.json'
563
self.assertEqual(ids, [1,2,3])
565
def test_showuser(self):
566
get_url = self.protocol._get_url = mock.Mock(
567
return_value={"name":"Alice"})
568
userdata = self.protocol._showuser(1)
570
get_url.assert_called_with(
571
'https://api.twitter.com/1.1/users/show.json?user_id=1'
573
self.assertEqual(userdata, {"name":"Alice"})
575
def test_create_contact(self, *mocks):
576
# Receive the users friends.
577
bare_contact = {'name': 'Alice Bob',
578
'screen_name': 'alice_bob',
581
eds_contact = self.protocol._create_contact(bare_contact)
582
twitter_id_attr = eds_contact.get_attribute('twitter-id')
583
self.assertEqual(twitter_id_attr.get_value(), '13579')
584
twitter_name_attr = eds_contact.get_attribute('twitter-name')
585
self.assertEqual(twitter_name_attr.get_value(), 'Alice Bob')
586
web_service_addrs = eds_contact.get_attribute('X-FOLKS-WEB-SERVICES-IDS')
587
params= web_service_addrs.get_params()
588
self.assertEqual(len(params), 2)
590
test_remote_name = False
591
test_twitter_id = False
594
if p.get_name() == 'remote-full-name':
595
self.assertEqual(len(p.get_values()), 1)
596
self.assertEqual(p.get_values()[0], 'Alice Bob')
597
test_remote_name = True
598
if p.get_name() == 'twitter-id':
599
self.assertEqual(len(p.get_values()), 1)
600
self.assertEqual(p.get_values()[0], '13579')
601
test_twitter_id = True
603
self.assertTrue(test_remote_name and test_twitter_id)
605
555
@mock.patch('friends.protocols.twitter.time.sleep')
606
556
def test_rate_limiter_first_time(self, sleep):
607
557
# The first time we see a URL, there is no rate limiting.
747
697
# sleep 100 seconds between each call.
748
698
self.protocol.home()
749
699
sleep.assert_called_with(100.0)
701
def test_contacts(self):
702
get = self.protocol._get_url = mock.Mock(
703
return_value=dict(ids=[1,2],name='Bob',screen_name='bobby'))
704
prev = self.protocol._previously_stored_contact = mock.Mock(return_value=False)
705
push = self.protocol._push_to_eds = mock.Mock()
706
self.assertEqual(self.protocol.contacts(), 2)
709
[mock.call('https://api.twitter.com/1.1/friends/ids.json'),
710
mock.call(url='https://api.twitter.com/1.1/users/show.json?user_id=1'),
711
mock.call(url='https://api.twitter.com/1.1/users/show.json?user_id=2')])
714
[mock.call('1'), mock.call('2')])
717
[mock.call({'twitter-id': '1',
718
'X-FOLKS-WEB-SERVICES-IDS': {
720
'remote-full-name': 'Bob'},
721
'X-URIS': 'https://twitter.com/bobby',
722
'twitter-name': 'Bob',
723
'twitter-nick': 'bobby'}),
724
mock.call({'twitter-id': '2',
725
'X-FOLKS-WEB-SERVICES-IDS': {
727
'remote-full-name': 'Bob'},
728
'X-URIS': 'https://twitter.com/bobby',
729
'twitter-name': 'Bob',
730
'twitter-nick': 'bobby'})])