Exemple #1
0
    def setup_user(cls, request_key):
        from dropbox.client import DropboxClient

        request_token = OAuthRequestToken.get(request_key)

        session = cls.get_session()
        session.obtain_access_token(request_token)
        client = DropboxClient(session)
        account_info = client.account_info()

        uid = str(account_info['uid'])
        q = DropboxUser.all().filter('uid = ', uid)
        if q.count() == 0:
            user = DropboxUser(uid=uid,
                               email=account_info['email'],
                               display_name=account_info['display_name'],
                               access_key=session.token.key,
                               access_secret=session.token.secret,
                               country=account_info['country'])
        else:
            user = q.get()
            user.email = account_info['email']
            user.display_name = account_info['display_name']
            user.access_key = session.token.key
            user.access_secret = session.token.secret
            user.put_pending_away(_save=False)
            user.country = account_info['country']
        user.put()

        OAuthRequestToken.delete(request_key)

        return user
def sync_all(request):
    from netprintbox.data import DropboxUser

    for user in DropboxUser.all():
        if not user.is_pending:
            # XXX check the need to sync?
            taskqueue.add(url=request.route_path('sync_for_user'),
                          params={'key': user.key()},
                          countdown=random.randint(0, SLEEP_WAIT))
    return request.response
Exemple #3
0
    def test_new_user(self):
        from netprintbox.data import DropboxUser

        service = self._getOUT()
        service.setup_user(self.key)

        q = DropboxUser.all()
        self.assertEqual(q.count(), 1)
        user = q.get()
        self.assertEqual(user.uid, self.uid)
        self.assertEqual(user.access_key, 'access_key')
        self.assertEqual(user.access_secret, 'access_secret')
Exemple #4
0
    def test_existing_user(self):
        from netprintbox.data import DropboxUser
        from netprintbox.exceptions import BecomePendingUser

        user = create_user()
        with self.assertRaises(BecomePendingUser):
            user.put_pending(notify=False)

        service = self._getOUT()
        service.setup_user(self.key)

        q = DropboxUser.all()
        self.assertEqual(q.count(), 1)
        queried_user = q.get()
        self.assertEqual(user.uid, queried_user.uid)
        self.assertFalse(queried_user.is_pending)