def tearDown(self): os.close(self.db) os.unlink(self.app.config["DATABASE"]) #cleanup facebook test users if hasattr(self,"has_facebook_test_user"): app_xs_token = get_app_access_token(APP_ID, APP_SECRET) delete_all_test_users(APP_ID, self.get_app_access_token())
def test_save_user(self): #create test user with 3 friends app_xs_token = get_app_access_token(APP_ID, APP_SECRET) test_user = create_test_user(APP_ID, app_xs_token) friend_1 = create_test_user(APP_ID, app_xs_token) friend_2 = create_test_user(APP_ID, app_xs_token) friend_3 = create_test_user(APP_ID, app_xs_token) make_friend_connection(test_user["id"], friend_1["id"], test_user["access_token"], friend_1["access_token"]) make_friend_connection(test_user["id"], friend_2["id"], test_user["access_token"], friend_2["access_token"]) make_friend_connection(test_user["id"], friend_3["id"], test_user["access_token"], friend_3["access_token"]) fb_user_info, user = save_user(test_user["access_token"], "someauthcode") #assert that <<User>> records are indeed created assert not get_user_from_email(test_user["email"]) is None #assert that <<FriendConnection>> records are made from db import FriendConnection assert FriendConnection.query.filter_by(fb_user_from=user.facebook_user.id).count() == 3
def test_login(self): app_xs_token = get_app_access_token(APP_ID, APP_SECRET) test_user = create_test_user(APP_ID, app_xs_token) friend_1 = create_test_user(APP_ID, app_xs_token) friend_2 = create_test_user(APP_ID, app_xs_token) friend_3 = create_test_user(APP_ID, app_xs_token) make_friend_connection(test_user["id"], friend_1["id"], test_user["access_token"], friend_1["access_token"]) make_friend_connection(test_user["id"], friend_2["id"], test_user["access_token"], friend_2["access_token"]) make_friend_connection(test_user["id"], friend_3["id"], test_user["access_token"], friend_3["access_token"]) #create friend_2 first friend2_fb_user_info, friend2_user = save_user(friend_2["access_token"], "someauthcode") data = {"access_token": test_user["access_token"]} #login test_user response = self.client.put("/user/?", data=data) assert "ok" in response.data json_resp = loads(response.data) assert json_resp["status"] == "ok" assert json_resp["result"]["friends"][0]["user_id"] == friend2_user.id
def test_authorization(self): """ tests the authorization of a rest api call """ #create a user app_xs_token = get_app_access_token(APP_ID, APP_SECRET) test_user = create_test_user(APP_ID, app_xs_token) auth_code = "someauthcode" fb_user_info, user = save_user(test_user["access_token"], auth_code) user_id = user.id api_key = gen_api_key(test_user["access_token"], user_id) #create signature signature = "\n".join([auth_code, "put", "checkpoint"]) encrypted_sig = hmac.new(api_key, signature) base64_sig = base64.encodestring(encrypted_sig.hexdigest()) #using user's credentials to access new_checkpoint api data = {"signature": base64_sig, "user_id": user_id} resp = self.client.put("/checkpoint/", data=data)
def get_app_access_token(self): if not hasattr(self, "app_xs_token"): self.app_xs_token = get_app_access_token(APP_ID, APP_SECRET) return self.app_xs_token