Esempio n. 1
0
    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)