def test_accept_invite(self):
        user = create_logged_user(username="******")
        friend = create_user(last_name='test_accept_invite',
                             first_name='test_accept_invite',
                             username='******')

        create_invite(friend, user)

        self.http_client.fetch(
            self.get_url(
                '/invite/accept?username=%s&auth=should-be-user-auth' %
                friend.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            '{"status": "ok", "msg": "User test_accept_invite is now your friend!"}'
        )

        invite = self.session.query(Invite).filter(
            Invite.user_id == user.id).first()

        self.assertEqual(invite, None)

        friendship = self.session.query(Friendship).filter(
            Friendship.user_id == user.id).first()

        assert friendship.user_id == user.id
        assert friendship.friend_id == friend.id

        friendship.delete()
        friend.delete()
        user.delete()
    def test_get_invites(self):
        user = create_logged_user()
        friend1 = create_user(last_name='test_get_invites-1',
                              first_name='test_get_invites-1',
                              username='******')
        friend2 = create_user(last_name='test_get_invites-2',
                              first_name='test_get_invites-2',
                              username='******')

        invite1 = create_invite(user, friend1)
        invite2 = create_invite(user, friend2)

        self.http_client.fetch(
            self.get_url('/invite/get.json?auth=should-be-user-auth'),
            self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            '{"invite": [{"username": "******", "first_name": "test_get_invites-1", "last_name": "test_get_invites-1", "gender": "M", "is_active": true, "is_superuser": false, "is_staff": false, "email": "should-be-email"}, {"username": "******", "first_name": "test_get_invites-2", "last_name": "test_get_invites-2", "gender": "M", "is_active": true, "is_superuser": false, "is_staff": false, "email": "should-be-email"}]}'
        )

        invite1.delete()
        invite2.delete()
        user.delete()
        friend1.delete()
        friend2.delete()
    def test_send_email_invite(self):
        user = create_logged_user()

        email = "*****@*****.**"

        m = hashlib.md5()
        m.update("%s%s" % (email, user.id))

        code = m.hexdigest()
        self.http_client.fetch(
            self.get_url(
                '/invite/email/send?email=%s&auth=should-be-user-auth' %
                email), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            '{"status": "ok", "msg": "Your invite has been sent."}')

        invite_email = self.session.query(InviteEmail).filter(
            InviteEmail.code == code).first()

        invite_email.delete()
        user.delete()
    def test_accept_invite(self):
        user = create_logged_user(username="******")
        friend = create_user(last_name='test_accept_invite', first_name='test_accept_invite',  username='******')

        create_invite(friend, user)

        self.http_client.fetch(self.get_url('/invite/accept?username=%s&auth=should-be-user-auth' % friend.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "ok", "msg": "User test_accept_invite is now your friend!"}')

        invite = self.session.query(Invite).filter(Invite.user_id == user.id).first()

        self.assertEqual(invite, None)

        friendship = self.session.query(Friendship).filter(Friendship.user_id == user.id).first()

        assert friendship.user_id == user.id
        assert friendship.friend_id == friend.id

        friendship.delete()
        friend.delete()
        user.delete()
    def test_accept_duplicated_invite(self):
        user = create_logged_user(username='******')
        friend = create_user(last_name='test_accept_invite',
                             first_name='test_accept_invite',
                             username='******')

        friendship = create_friendship(user, friend)
        invite = create_invite(friend, user)

        self.http_client.fetch(
            self.get_url(
                '/invite/accept?username=%s&auth=should-be-user-auth' %
                friend.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            simplejson.dumps({
                "status":
                "error",
                "msg":
                "You and %s are already friend!" % friend.first_name
            }))

        invite.delete()
        friendship.delete()
        user.delete()
        friend.delete()
示例#6
0
    def test_subscribe(self):
        user = create_logged_user(username='******')

        app = Application()
        app.name = "test_subscribe"
        app.icon = "should-be-icon"
        app.callback_url = "should-be-callback_url"

        parameters = {'name': app.name, 'icon': app.icon, 'callback_url': app.callback_url}

        request = HTTPRequest(url=self.get_url('/application/subscribe?auth=should-be-user-auth'),method='POST',body=simplejson.dumps(parameters))

        self.http_client.fetch(request, self.stop)

        response = self.wait()
        self.failIf(response.error)

        token = simplejson.loads(response.body)['msg']

        new_app = Application().fetch_by(name='test_subscribe').first()

        assert new_app.name == app.name
        assert new_app.icon == app.icon
        assert new_app.callback_url == app.callback_url
        assert new_app.token == token

        self.http_client.fetch(self.get_url('/applications.json') + '?auth=should-be-user-auth' , self.stop)

        response = self.wait()
        self.failIf(response.error)

        assert response.body == '{"applications": [{"token": "%s", "callback_url": "should-be-callback_url", "name": "test_subscribe", "icon": "should-be-icon"}]}' % token

        new_app.delete()
        user.delete()
    def test_send_invite(self):
        user = create_logged_user()
        user2 = create_user(last_name='test_send_invite',
                            first_name='test_send_invite',
                            username='******')

        self.http_client.fetch(
            self.get_url('/invite/send?username=%s&auth=should-be-user-auth' %
                         user2.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            '{"status": "ok", "msg": "Your invite has been sent."}')

        invite = self.session.query(Invite).filter(
            Invite.user_id == user.id).first()

        assert invite.user_id == user.id
        assert invite.friend_id == user2.id

        invite.delete()
        user.delete()
        user2.delete()
示例#8
0
    def test_remove_inexistent_friendship_with_inexistent_user(self):
        user = create_logged_user()

        self.http_client.fetch(self.get_url('/friendship/remove?username=0&auth=should-be-user-auth'), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "error", "msg": "Inexistent user!"}')

        user.delete()
    def test_get_other_inexistent_user(self):
        user = create_logged_user(username='******')

        self.http_client.fetch(self.get_url('/user.json?username=anybody&auth=should-be-user-auth'), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, simplejson.dumps({"status": "error", "msg": "User not found."}))

        user.delete()
    def test_get_user_myself(self):
        user = create_logged_user()

        self.http_client.fetch(self.get_url('/user.json?auth=should-be-user-auth'), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, simplejson.dumps({'user': user.as_dict()}))

        user.delete()
示例#11
0
    def test_remove_myself_friendship(self):

        user = create_logged_user()

        self.http_client.fetch(self.get_url('/friendship/remove?username=%s&auth=should-be-user-auth' % user.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "error", "msg": "Do you hate yourself?!"}')

        user.delete()
    def test_accept_inexistent_invite(self):
        user = create_logged_user(username="******")
        friend = create_user(last_name='test_accept_invite', first_name='test_accept_invite', username='******')

        self.http_client.fetch(self.get_url('/invite/accept?username=%s&auth=should-be-user-auth' % friend.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "error", "msg": "Invite not found."}')

        user.delete()
        friend.delete()
示例#13
0
    def test_get_user_myself(self):
        user = create_logged_user()

        self.http_client.fetch(
            self.get_url('/user.json?auth=should-be-user-auth'), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body,
                         simplejson.dumps({'user': user.as_dict()}))

        user.delete()
示例#14
0
    def test_remove_inexistent_friendship(self):
        user = create_logged_user(username='******')
        user2 = create_user(last_name='remove_inexistent_friendship-2', first_name='remove_inexistent_friendship-2',  username='******')

        self.http_client.fetch(self.get_url('/friendship/remove?username=%s&auth=should-be-user-auth' % user2.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "error", "msg": "This user are not your friend!"}')

        user.delete()
        user2.delete()
    def test_get_other_user(self):
        user = create_logged_user(username="******")
        user2 = create_user(username="******")

        self.http_client.fetch(self.get_url('/user.json?username=%s&auth=should-be-user-auth' % user2.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, simplejson.dumps({'user': user2.as_dict()}))

        user.delete()
        user2.delete()
    def test_send_context(self):

        user = create_logged_user(username='******')

        app1 = create_application(name="twitter")

        text = ''.join([random.choice(string.letters) for x in xrange(5)])

        parameters = {
            'application': [app1.name],
            'context': {
                'location': '-22.95835442222223,-43.196200622222214',
                'status': text
            }
        }

        request = HTTPRequest(
            url=self.get_url('/context?auth=should-be-user-auth'),
            method='POST',
            body=simplejson.dumps(parameters))

        self.http_client.fetch(request, self.stop)

        response = self.wait()
        self.failIf(response.error)

        assert simplejson.loads(response.body)['status'] == 'ok'

        context1 = Context().fetch_by(context=text).first()
        context2 = Context().fetch_by(
            context='-22.95835442222223,-43.196200622222214').first()

        context_applicaton1 = ContextApplication.fetch_by(
            context_id=context1.id).first()
        context_applicaton2 = ContextApplication.fetch_by(
            context_id=context2.id).first()

        assert context1.context == text
        assert context2.context == '-22.95835442222223,-43.196200622222214'
        assert context_applicaton1.context_id == context1.id
        assert context_applicaton2.context_id == context2.id

        context_applicaton1.delete()
        context_applicaton2.delete()

        context1.delete()
        context2.delete()

        user.delete()

        app1.delete()
    def test_search_user(self):
        user = create_logged_user(username="******")
        user2 = create_user(username="******")
        user3 = create_user(username="******")

        self.http_client.fetch(self.get_url('/search/users.json?username=%s&auth=should-be-user-auth' % "test_"), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, simplejson.dumps({'users': [user2.as_dict(), user3.as_dict()]}))

        user.delete()
        user2.delete()
        user3.delete()
    def test_send_duplicate_email_invite(self):
        user = create_logged_user()

        email = "*****@*****.**"

        invite_email = create_invite_email(user=user, email=email)

        self.http_client.fetch(self.get_url('/invite/email/send?email=%s&auth=should-be-user-auth' % email), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "error", "msg": "You have already invited this user. Just relax!"}')

        invite_email.delete()
        user.delete()
示例#19
0
    def test_get_applications(self):

        app1 = create_application(name="facebook", icon="should-be-logo-1", token="should-be-token-1", callback_url="should-be-callback_url-1")
        app2 = create_application(name="twitter", icon="should-be-logo-2", token="should-be-token-2", callback_url="should-be-callback_url-2")

        user = create_logged_user(username='******')

        self.http_client.fetch(self.get_url('/applications.json') + '?auth=should-be-user-auth', self.stop)

        response = self.wait()
        self.failIf(response.error)

        try:
            self.assertEquals(response.body, '{"applications": [{"token": "should-be-token-1", "callback_url": "should-be-callback_url-1", "name": "facebook", "icon": "should-be-logo-1"}, {"token": "should-be-token-2", "callback_url": "should-be-callback_url-2", "name": "twitter", "icon": "should-be-logo-2"}]}')
        except Exception, e:
            raise e
示例#20
0
    def test_get_other_user(self):
        user = create_logged_user(username="******")
        user2 = create_user(username="******")

        self.http_client.fetch(
            self.get_url('/user.json?username=%s&auth=should-be-user-auth' %
                         user2.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body,
                         simplejson.dumps({'user': user2.as_dict()}))

        user.delete()
        user2.delete()
示例#21
0
    def test_remove_friendship(self):
        user = create_logged_user()
        user2 = create_user(last_name='test_remove_friendship-2', first_name='test_remove_friendship-2',  username='******')

        create_friendship(user, user2)

        self.http_client.fetch(self.get_url('/friendship/remove?username=%s&auth=should-be-user-auth' % user2.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "ok", "msg": "Your friendship has been removed!"}')
        friendship_db = self.session.query(Friendship).filter(Friendship.user_id == user.id).first()

        self.assertEqual(friendship_db, None)

        user.delete()
        user2.delete()
    def test_accept_duplicated_invite(self):
        user = create_logged_user(username='******')
        friend = create_user(last_name='test_accept_invite', first_name='test_accept_invite',  username='******')

        friendship = create_friendship(user, friend)
        invite = create_invite(friend, user)

        self.http_client.fetch(self.get_url('/invite/accept?username=%s&auth=should-be-user-auth' % friend.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, simplejson.dumps({"status": "error", "msg": "You and %s are already friend!" % friend.first_name}))

        invite.delete()
        friendship.delete()
        user.delete()
        friend.delete()
示例#23
0
    def test_duplicate_subscribe(self):

        user = create_logged_user(username='******')

        app = create_application(name="test_subscribe", icon="should-be-icon", token="qqcoisa", callback_url="should-be-callback_url")

        parameters = {'name': app.name, 'icon': app.icon, 'callback_url': app.callback_url}

        request = HTTPRequest(url=self.get_url('/application/subscribe?auth=should-be-user-auth'), method='POST', body=simplejson.dumps(parameters))

        self.http_client.fetch(request, self.stop)

        response = self.wait()
        self.failIf(response.error)

        assert response.body == '{"status": "error", "msg": "Application already exists."}'

        app.delete()
        user.delete()
    def test_send_invite(self):
        user = create_logged_user()
        user2 = create_user(last_name='test_send_invite', first_name='test_send_invite', username='******')

        self.http_client.fetch(self.get_url('/invite/send?username=%s&auth=should-be-user-auth' % user2.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "ok", "msg": "Your invite has been sent."}')

        invite = self.session.query(Invite).filter(Invite.user_id == user.id).first()

        assert invite.user_id == user.id
        assert invite.friend_id == user2.id

        invite.delete()
        user.delete()
        user2.delete()
示例#25
0
    def test_get_other_inexistent_user(self):
        user = create_logged_user(username='******')

        self.http_client.fetch(
            self.get_url(
                '/user.json?username=anybody&auth=should-be-user-auth'),
            self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            simplejson.dumps({
                "status": "error",
                "msg": "User not found."
            }))

        user.delete()
    def test_accept_inexistent_invite(self):
        user = create_logged_user(username="******")
        friend = create_user(last_name='test_accept_invite',
                             first_name='test_accept_invite',
                             username='******')

        self.http_client.fetch(
            self.get_url(
                '/invite/accept?username=%s&auth=should-be-user-auth' %
                friend.username), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body,
                         '{"status": "error", "msg": "Invite not found."}')

        user.delete()
        friend.delete()
    def test_get_invites(self):
        user = create_logged_user()
        friend1 = create_user(last_name='test_get_invites-1', first_name='test_get_invites-1', username='******')
        friend2 = create_user(last_name='test_get_invites-2', first_name='test_get_invites-2', username='******')

        invite1 = create_invite(user, friend1)
        invite2 = create_invite(user, friend2)

        self.http_client.fetch(self.get_url('/invite/get.json?auth=should-be-user-auth'), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"invite": [{"username": "******", "first_name": "test_get_invites-1", "last_name": "test_get_invites-1", "gender": "M", "is_active": true, "is_superuser": false, "is_staff": false, "email": "should-be-email"}, {"username": "******", "first_name": "test_get_invites-2", "last_name": "test_get_invites-2", "gender": "M", "is_active": true, "is_superuser": false, "is_staff": false, "email": "should-be-email"}]}')

        invite1.delete()
        invite2.delete()
        user.delete()
        friend1.delete()
        friend2.delete()
    def test_send_email_invite(self):
        user = create_logged_user()

        email = "*****@*****.**"

        m = hashlib.md5()
        m.update("%s%s" % (email, user.id))

        code = m.hexdigest()
        self.http_client.fetch(self.get_url('/invite/email/send?email=%s&auth=should-be-user-auth' % email), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"status": "ok", "msg": "Your invite has been sent."}')

        invite_email = self.session.query(InviteEmail).filter(InviteEmail.code == code).first()

        invite_email.delete()
        user.delete()
示例#29
0
    def test_get_friendship(self):
        user = create_logged_user()
        user2 = create_user(last_name='test_get_friendship-2', first_name='test_get_friendship-2',  username='******')
        user3 = create_user(last_name='test_get_friendship-3', first_name='test_get_friendship-3',  username='******')

        friendship = create_friendship(user, user2)
        friendship2 = create_friendship(user, user3)

        self.http_client.fetch(self.get_url('/friendship/get.json?auth=should-be-user-auth'), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(response.body, '{"friend": [{"username": "******", "first_name": "test_get_friendship-2", "last_name": "test_get_friendship-2", "gender": "M", "is_active": true, "is_superuser": false, "is_staff": false, "email": "should-be-email"}, {"username": "******", "first_name": "test_get_friendship-3", "last_name": "test_get_friendship-3", "gender": "M", "is_active": true, "is_superuser": false, "is_staff": false, "email": "should-be-email"}]}')

        friendship.delete()
        friendship2.delete()
        user3.delete()
        user2.delete()
        user.delete()
示例#30
0
    def test_search_user(self):
        user = create_logged_user(username="******")
        user2 = create_user(username="******")
        user3 = create_user(username="******")

        self.http_client.fetch(
            self.get_url(
                '/search/users.json?username=%s&auth=should-be-user-auth' %
                "test_"), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            simplejson.dumps({'users': [user2.as_dict(),
                                        user3.as_dict()]}))

        user.delete()
        user2.delete()
        user3.delete()
    def test_send_context(self):

        user = create_logged_user(username='******')

        app1 = create_application(name="twitter")

        text = ''.join([random.choice(string.letters) for x in xrange(5)])

        parameters = {'application': [app1.name], 'context': {'location': '-22.95835442222223,-43.196200622222214','status': text}}

        request = HTTPRequest(url=self.get_url('/context?auth=should-be-user-auth'), method='POST',body=simplejson.dumps(parameters))

        self.http_client.fetch(request, self.stop)

        response = self.wait()
        self.failIf(response.error)

        assert simplejson.loads(response.body)['status'] == 'ok'

        context1 = Context().fetch_by(context=text).first()
        context2 = Context().fetch_by(context='-22.95835442222223,-43.196200622222214').first()

        context_applicaton1 = ContextApplication.fetch_by(context_id=context1.id).first()
        context_applicaton2 = ContextApplication.fetch_by(context_id=context2.id).first()

        assert context1.context == text
        assert context2.context == '-22.95835442222223,-43.196200622222214'
        assert context_applicaton1.context_id == context1.id
        assert context_applicaton2.context_id == context2.id

        context_applicaton1.delete()
        context_applicaton2.delete()

        context1.delete()
        context2.delete()

        user.delete()

        app1.delete()
    def test_send_duplicate_email_invite(self):
        user = create_logged_user()

        email = "*****@*****.**"

        invite_email = create_invite_email(user=user, email=email)

        self.http_client.fetch(
            self.get_url(
                '/invite/email/send?email=%s&auth=should-be-user-auth' %
                email), self.stop)

        response = self.wait()

        self.failIf(response.error)
        self.assertEqual(
            response.body,
            '{"status": "error", "msg": "You have already invited this user. Just relax!"}'
        )

        invite_email.delete()
        user.delete()