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()
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()
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()
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()
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()
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()
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
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_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()
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()
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()
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()
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()