def setUp_authenticate_returns_new_user_if_none_found(self): # TODO: refactor so this doesn't make my eyes bleed random_user_id = random.randint(1, 1000) random_user_name = 'Bob Smith (%d)' % random_user_id mock_twitter = self.mox.CreateMock(MockTwitter) mock_twitter.account = self.mox.CreateMock(MockTwitterAccount) mock_twitter.account.verify_credentials().AndReturn({ 'id': random_user_id, 'name': random_user_name, }) user = self.mox.CreateMock(User) manager = self.mox.CreateMock(managers.TwitterTokenManager) manager.get_uid(random_user_id).AndRaise(models.TwitterToken.DoesNotExist) user_manager = self.mox.CreateMock(UserManager) request = self.create_mock_request() random_oauth_token = random.randint(1, 1000) request.GET['oauth_token'] = random_oauth_token self.mox.StubOutWithMock(utils, 'create_new_user') self.mox.StubOutWithMock(utils, 'get_twitter_api') self.mox.StubOutWithMock(utils, 'get_request_token') self.mox.StubOutWithMock(utils, 'fetch_access_token') utils.get_request_token(request).AndReturn('123') utils.get_twitter_api(token='123').AndReturn(mock_twitter) utils.create_new_user(random_user_id, random_user_name, user_manager=user_manager).AndReturn(user) random_token_key = 'some key %d' % random.randint(1, 1000) random_token_secret = 'some secret %d' % random.randint(1, 1000) token = oauth2.Token(random_token_key, random_token_secret) manager.create_new_twitter_token(user, random_user_id, token) utils.fetch_access_token('123', random_oauth_token).AndReturn(token) self.mox.ReplayAll() return (request, manager, user_manager)
def test_of_send_share(self): from d51.django.auth.twitter import utils, models random_value = _.random random_string = 'random thing to say no. %d' % _.random user = User.objects.create( username='******'%_.random ) user.twitter = self.mox.CreateMock(models.TwitterToken) user.twitter.get_oauth_token().AndReturn(random_value) alternate = Alternate() alternate.url = random_string share = Share() share.alternate = alternate share.user = user share.title = random_string dolt_mock = self.mox.CreateMock(Dolt) dolt_mock.statuses = self.mox.CreateMock(Dolt) dolt_mock.statuses.update = self.mox.CreateMock(Dolt) dolt_mock.statuses.update.POST = self.mox.CreateMock(Dolt) dolt_mock.statuses.update.POST(status='%s %s' % (share.title, random_string)) self.mox.StubOutWithMock(utils, 'get_twitter_api') utils.get_twitter_api(token=random_value).AndReturn(dolt_mock) self.mox.ReplayAll() service = TwitterService(None, None, None) service.send_share(share) self.mox.VerifyAll()
def send_share(self, share): api = utils.get_twitter_api(token=share.user.twitter.get_oauth_token()) message = '%s %s' % (share.title, share.alternate.url) api.statuses.update.POST(status=message)