Beispiel #1
0
 def test_update_from_api(self, mock_all_screen_names, mock_all_user_ids,
                          mock_update_id_mapping, mock_requests):
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_data = TwitterAPIData()
     mock_all_user_ids.return_value = ['1234', '42']
     mock_all_screen_names.return_value = ['mhl20', 'struan', 'symroe']
     twitter_data.user_id_to_screen_name = {
         '1234': 'mhl20',
     }
     twitter_data.update_from_api()
     self.assertEqual(mock_update_id_mapping.mock_calls, [
         call({
             'id': 1234,
             'screen_name': 'mhl20'
         }),
         call({
             'id': 5678,
             'screen_name': 'struan'
         }),
         call({
             'id': 9012,
             'screen_name': 'symroe'
         }),
         call({
             'id': 42,
             'screen_name': 'FooBarBazQuux'
         }),
     ])
Beispiel #2
0
 def test_makes_requests(self, mock_requests):
     TwitterAPIData.MAX_IN_A_REQUEST = 2
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_results = list(
         twitter_data.twitter_results('screen_name',
                                      ['mhl20', 'struan', 'symroe']))
     self.assertEqual(mock_requests.post.mock_calls, [
         call('https://api.twitter.com/1.1/users/lookup.json',
              headers={u'Authorization': u'Bearer madeuptoken'},
              data={u'screen_name': u'mhl20,struan'}),
         call('https://api.twitter.com/1.1/users/lookup.json',
              headers={u'Authorization': u'Bearer madeuptoken'},
              data={u'screen_name': u'symroe'}),
     ])
     self.assertEqual(twitter_results, [
         {
             'id': 1234,
             'screen_name': 'mhl20'
         },
         {
             'id': 5678,
             'screen_name': 'struan'
         },
         {
             'id': 9012,
             'screen_name': 'symroe'
         },
     ])
 def test_makes_requests(self, mock_requests):
     TwitterAPIData.MAX_IN_A_REQUEST = 2
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_results = list(twitter_data.twitter_results(
         'screen_name',
         ['mhl20', 'struan', 'symroe']))
     self.assertEqual(
         mock_requests.post.mock_calls,
         [
             call(
                 'https://api.twitter.com/1.1/users/lookup.json',
                 headers={u'Authorization': u'Bearer madeuptoken'},
                 data={u'screen_name': u'mhl20,struan'}),
             call(
                 'https://api.twitter.com/1.1/users/lookup.json',
                 headers={u'Authorization': u'Bearer madeuptoken'},
                 data={u'screen_name': u'symroe'}),
         ]
     )
     self.assertEqual(
         twitter_results,
         [
             {'id': 1234, 'screen_name': 'mhl20'},
             {'id': 5678, 'screen_name': 'struan'},
             {'id': 9012, 'screen_name': 'symroe'},
         ]
     )
 def test_zero_results_for_user_id_lookup(self, mock_requests):
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_results = list(twitter_data.twitter_results(
         'user_id',
         ['13984716923847632']))
     self.assertEqual(twitter_results, [])
 def test_zero_results_for_screen_name_lookup(self, mock_requests):
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_results = list(twitter_data.twitter_results(
         'screen_name',
         ['onlynonexistent']))
     self.assertEqual(twitter_results, [])
 def test_unfaked_urls_raise_exception(self, mock_requests):
     TwitterAPIData.MAX_IN_A_REQUEST = 2
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     with self.assertRaises(Exception):
         list(twitter_data.twitter_results(
             'screen_name',
             ['foo', 'bar']))
Beispiel #7
0
 def test_update_individual_data(self):
     twitter_data = TwitterAPIData()
     twitter_data.update_id_mapping({
         'id':
         42,
         'screen_name':
         'FooBarBazQuux',
         'profile_image_url_https':
         'https://example.com/foo.jpg',
     })
     self.assertEqual(twitter_data.screen_name_to_user_id,
                      {'foobarbazquux': '42'})
     self.assertEqual(twitter_data.user_id_to_screen_name,
                      {'42': 'FooBarBazQuux'})
     self.assertEqual(twitter_data.user_id_to_photo_url,
                      {'42': 'https://example.com/foo.jpg'})
 def test_error_on_missing_token(self):
     self.sitesettings.TWITTER_APP_ONLY_BEARER_TOKEN = ''
     self.sitesettings.save()
     # Clear the cache so that get_current_usersettings gets the
     # updated settings:
     SiteSettings.objects.clear_cache()
     with self.assertRaisesRegexp(
             Exception, r'TWITTER_APP_ONLY_BEARER_TOKEN was not set'):
         TwitterAPIData()
 def test_update_individual_data(self):
     twitter_data = TwitterAPIData()
     twitter_data.update_id_mapping(
         {
             'id': 42,
             'screen_name': 'FooBarBazQuux',
             'profile_image_url_https': 'https://example.com/foo.jpg',
         }
     )
     self.assertEqual(
         twitter_data.screen_name_to_user_id,
         {'foobarbazquux': '42'})
     self.assertEqual(
         twitter_data.user_id_to_screen_name,
         {'42': 'FooBarBazQuux'})
     self.assertEqual(
         twitter_data.user_id_to_photo_url,
         {'42': 'https://example.com/foo.jpg'})
Beispiel #10
0
 def tests_all_user_ids(self):
     joe = PersonExtraFactory.create(base__id='1',
                                     base__name='Joe Bloggs').base
     joe.identifiers.create(
         identifier='246',
         scheme='twitter',
     )
     jane = PersonExtraFactory.create(base__id='2',
                                      base__name='Jane Bloggs').base
     jane.identifiers.create(identifier='357', scheme='twitter')
     twitter_data = TwitterAPIData()
     self.assertEqual(['246', '357'], sorted(twitter_data.all_user_ids))
 def test_update_from_api(
         self,
         mock_all_screen_names,
         mock_all_user_ids,
         mock_update_id_mapping,
         mock_requests):
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_data = TwitterAPIData()
     mock_all_user_ids.return_value = ['1234', '42']
     mock_all_screen_names.return_value = ['mhl20', 'struan', 'symroe']
     twitter_data.user_id_to_screen_name = {
         '1234': 'mhl20',
     }
     twitter_data.update_from_api()
     self.assertEqual(
         mock_update_id_mapping.mock_calls,
         [
             call({'id': 1234, 'screen_name': 'mhl20'}),
             call({'id': 5678, 'screen_name': 'struan'}),
             call({'id': 9012, 'screen_name': 'symroe'}),
             call({'id': 42, 'screen_name': 'FooBarBazQuux'}),
         ]
     )
Beispiel #12
0
 def test_all_screen_names(self):
     joe = PersonExtraFactory.create(base__id='1',
                                     base__name='Joe Bloggs').base
     joe.contact_details.create(
         value='joenotreallyatwitteraccount',
         contact_type='twitter',
     )
     jane = PersonExtraFactory.create(base__id='2',
                                      base__name='Jane Bloggs').base
     jane.contact_details.create(value='janenotreallyatwitteraccount',
                                 contact_type='twitter')
     twitter_data = TwitterAPIData()
     self.assertEqual(
         ['janenotreallyatwitteraccount', 'joenotreallyatwitteraccount'],
         sorted(twitter_data.all_screen_names))
Beispiel #13
0
 def test_zero_results_for_screen_name_lookup(self, mock_requests):
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_results = list(
         twitter_data.twitter_results('screen_name', ['onlynonexistent']))
     self.assertEqual(twitter_results, [])
Beispiel #14
0
 def test_error_on_missing_token(self):
     with self.assertRaisesRegexp(
             Exception, r'TWITTER_APP_ONLY_BEARER_TOKEN was not set'):
         TwitterAPIData()
Beispiel #15
0
 def test_unfaked_urls_raise_exception(self, mock_requests):
     TwitterAPIData.MAX_IN_A_REQUEST = 2
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     with self.assertRaises(Exception):
         list(twitter_data.twitter_results('screen_name', ['foo', 'bar']))
Beispiel #16
0
 def test_zero_results_for_user_id_lookup(self, mock_requests):
     twitter_data = TwitterAPIData()
     mock_requests.post.side_effect = fake_twitter_api_post
     twitter_results = list(
         twitter_data.twitter_results('user_id', ['13984716923847632']))
     self.assertEqual(twitter_results, [])