def test_facebook_login(self): a_access_token = api_utils.get_facebook_app_access_token() u_info = api_utils.create_facebook_user(a_access_token, 'User One') payload = { 'access_token': u_info[0] } response = self.app.post('api/v1/users/facebook_sign_in/', \ data=json.dumps(payload)) response_data = json.loads(response.data)['data'] self.assertTrue(response_data['is_new_user']) self.assertTrue(response_data['user']['facebook_id'] != "null") self.assertEquals(constants.NUM_TEST_USERS + 1, \ users_dao.get_number_users()) # Bad login bad_token = 'bad token' payload = { 'access_token': bad_token } response = self.app.post('api/v1/users/facebook_sign_in/',\ data=json.dumps(payload)) response = json.loads(response.data) self.assertFalse(response['success']) self.assertEquals(constants.NUM_TEST_USERS + 1, \ users_dao.get_number_users())
def test_init_user_fb(self): fb_app_token = api_utils.get_facebook_app_access_token() # First fb user fb_user1 = TestUser(test_client=self.app, name="User one", app_access_token=fb_app_token, platform=constants.FACEBOOK) self.assertTrue(fb_user1.tokens != {}) self.assertTrue(fb_user1.app_tokens != {}) self.assertEquals(fb_user1.name, "User one") # After login self.assertEquals(constants.NUM_TEST_USERS + 1,\ users_dao.get_number_users()) self.assertTrue(users_dao.get_user_by_id(fb_user1.uid, fb_user1.uid)\ != None) self.assertTrue(fb_user1.session_token != None) # Second fb user fb_user2 = TestUser( test_client=self.app, name="User two", \ app_access_token=fb_app_token, platform=constants.FACEBOOK ) self.assertTrue(fb_user2.tokens != {}) self.assertTrue(fb_user2.app_tokens != {}) self.assertEquals(fb_user2.name, "User two") # After login self.assertEquals(constants.NUM_TEST_USERS + 2, \ users_dao.get_number_users()) self.assertTrue(users_dao.get_user_by_id(fb_user2.uid, fb_user2.uid) \ != None) self.assertTrue(fb_user2.session_token != None)
def test_search_facebook_friends(self): fb_app_token = api_utils.get_facebook_app_access_token() fb_user1 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB One') fb_user2 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Two') fb_user3 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Twthree') fb_user4 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Four') # No friends response = fb_user1.get('api/v1/search/facebook/friends/' \ '{}/?offset={}&max={}'.format("FB", 0, 10)) data = json.loads(response.data)['data'] self.assertEquals(data['users'], []) # 4 Friends (Search one) api_utils.create_facebook_friendship(fb_user1, fb_user2) api_utils.create_facebook_friendship(fb_user1, fb_user3) api_utils.create_facebook_friendship(fb_user1, fb_user4) fb_user1.post('api/v1/followings/{}/'.format(fb_user2.uid)) fb_user2.post('api/v1/followings/{}/'.format(fb_user3.uid)) response = fb_user1.get('api/v1/search/facebook/friends/' \ '{}/?offset={}&max={}'.format("Two", 0, 10)) data = json.loads(response.data)['data'] self.assertEquals(len(data['users']), 1) self.assertEquals(data['users'][0]['id'], fb_user2.uid) # 4 Friends (Search two) response = fb_user1.get('api/v1/search/facebook/friends/' \ '{}/?offset={}&max={}'.format("tw", 0, 10)) data = json.loads(response.data)['data'] self.assertEquals(data['users'][0]['id'], fb_user2.uid) self.assertEquals(data['users'][0]['is_following'], True) self.assertEquals(data['users'][1]['id'], fb_user3.uid) self.assertEquals(data['users'][1]['is_following'], False) # Limit response = fb_user1.get('api/v1/search/facebook/friends/' \ '{}/?offset={}&max={}'.format("t", 0, 1)) data = json.loads(response.data)['data'] self.assertEquals(len(data['users']), 1) uid = data['users'][0]['id'] # Offset response = fb_user1.get('api/v1/search/facebook/friends/' \ '{}/?offset={}&max={}'.format("t", 1, 1)) data = json.loads(response.data)['data'] self.assertEquals(len(data['users']), 1) self.assertTrue(data['users'][0]['id'] != uid)
def test_get(self): fb_app_token = api_utils.get_facebook_app_access_token() fb_user1 = TestUser( test_client=self.app, name="User two", \ app_access_token=fb_app_token, platform=constants.FACEBOOK ) response = fb_user1.get("api/v1/users/me/") response = json.loads(response.data) self.assertEquals(response['data']['user']['id'], fb_user1.uid) response = self.user1.get("api/v1/users/me/") response = json.loads(response.data) self.assertEquals(response['data']['user']['id'], self.user1.uid)
def test_post(self): fb_app_token = api_utils.get_facebook_app_access_token() fb_user1 = TestUser(test_client=self.app, name="User two", app_access_token=fb_app_token, platform=constants.FACEBOOK) response = fb_user1.post("api/v1/followings/{}/".format( self.user1.uid)) response = json.loads(response.data) self.assertIsNotNone(response['data']['following']) response = self.user1.post("api/v1/followings/{}/".format( fb_user1.uid)) response = json.loads(response.data) self.assertIsNotNone(response['data']['following'])
def test_delete(self): fb_app_token = api_utils.get_facebook_app_access_token() fb_user1 = TestUser(test_client=self.app, name="User two", app_access_token=fb_app_token, platform=constants.FACEBOOK) followings_dao.create_following(self.user1.uid, fb_user1.uid) followings_dao.create_following(fb_user1.uid, self.user1.uid) response = fb_user1.delete("api/v1/followings/{}/".format( self.user1.uid)) response = json.loads(response.data) self.assertEquals(response['data'], {}) response = self.user1.delete("api/v1/followings/{}/".format( fb_user1.uid)) response = json.loads(response.data) self.assertEquals(response['data'], {})
def test_merge_accounts(self): a_access_token = api_utils.get_facebook_app_access_token() u_info = api_utils.create_facebook_user(a_access_token, 'User One') self.user1.tokens[constants.FACEBOOK] = u_info[0] # Add an account for an invalid platform: response = self.user1.post('api/v1/users/merge/?platform={}' \ .format("fauxbook")) response = json.loads(response.data) self.assertFalse(response['success']) # Add an account for facebook with existing google account response = self.user1.post('api/v1/users/merge/?platform={}' \ .format("facebook")) response_data = json.loads(response.data)["data"] self.assertEquals(constants.NUM_TEST_USERS, users_dao.get_number_users()) self.assertTrue(response_data['user']['facebook_id'] != "null") # Delete created user where index 1 is the facebook id api_utils.delete_facebook_user(u_info[1] ,a_access_token)
def test_merge_accounts(self): a_access_token = api_utils.get_facebook_app_access_token() u_info = api_utils.create_facebook_user(a_access_token, 'User One') self.user1.tokens[constants.FACEBOOK] = u_info[0] # Add an account for an invalid platform: response = self.user1.post('api/v1/users/merge/?platform={}' \ .format("fauxbook")) response = json.loads(response.data) self.assertFalse(response['success']) # Add an account for facebook with existing google account response = self.user1.post('api/v1/users/merge/?platform={}' \ .format("facebook")) response_data = json.loads(response.data)["data"] self.assertEquals(constants.NUM_TEST_USERS, users_dao.get_number_users()) self.assertTrue(response_data['user']['facebook_id'] != "null") # Delete created user where index 1 is the facebook id api_utils.delete_facebook_user(u_info[1], a_access_token)
def test_facebook_login(self): a_access_token = api_utils.get_facebook_app_access_token() u_info = api_utils.create_facebook_user(a_access_token, 'User One') payload = {'access_token': u_info[0]} response = self.app.post('api/v1/users/facebook_sign_in/', \ data=json.dumps(payload)) response_data = json.loads(response.data)['data'] self.assertTrue(response_data['is_new_user']) self.assertTrue(response_data['user']['facebook_id'] != "null") self.assertEquals(constants.NUM_TEST_USERS + 1, \ users_dao.get_number_users()) # Bad login bad_token = 'bad token' payload = {'access_token': bad_token} response = self.app.post('api/v1/users/facebook_sign_in/',\ data=json.dumps(payload)) response = json.loads(response.data) self.assertFalse(response['success']) self.assertEquals(constants.NUM_TEST_USERS + 1, \ users_dao.get_number_users())
def test_ignored_friends(self): fb_app_token = api_utils.get_facebook_app_access_token() fb_user1 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB One') fb_user2 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Two') fb_user3 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Three') api_utils.create_facebook_friendship(fb_user1, fb_user2) api_utils.create_facebook_friendship(fb_user1, fb_user3) # No ignored tested by regular get friends # First ignored user response = fb_user1.post('api/v1/users/facebook/friends/ignore/' + \ '{}/'.format(fb_user2.fb_id)) data = json.loads(response.data) self.assertTrue(data['success']) # Get friends with 1 ignored response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}'.format(0, 10)) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 1) self.assertEquals(data['users'][0]['id'], fb_user3.uid) # Second ignored user response = fb_user1.post('api/v1/users/facebook/friends/ignore/' + \ '{}/'.format(fb_user3.fb_id)) data = json.loads(response.data) self.assertTrue(data['success']) # Get friends with 2 ignored response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}'.format(0, 10)) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 0)
def test_get_friends(self): fb_app_token = api_utils.get_facebook_app_access_token() fb_user1 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB One') fb_user2 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Two') fb_user3 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Three') fb_user4 = TestUser(test_client=self.app, platform=constants.FACEBOOK,\ app_access_token=fb_app_token, name='FB Four') # No Friends response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(0, 10, 'true')) data = json.loads(response.data)['data'] self.assertEquals(data['users'], []) # 1 Friend api_utils.create_facebook_friendship(fb_user1, fb_user2) response = fb_user2.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(0, 10, 'true')) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 1) self.assertEquals(data['users'][0]['id'], fb_user1.uid) self.assertEquals(data['users'][0]['is_following'], False) # 3 Friends with different followings api_utils.create_facebook_friendship(fb_user1, fb_user3) api_utils.create_facebook_friendship(fb_user1, fb_user4) fb_user1.post('api/v1/followings/{}/'.format(fb_user2.uid)) fb_user2.post('api/v1/followings/{}/'.format(fb_user3.uid)) fb_user4.post('api/v1/followings/{}/'.format(fb_user3.uid)) # return_following true (ordered by followings) response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(0, 10, 'true')) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 3) self.assertEquals(data['users'][0]['id'], fb_user3.uid) self.assertEquals(data['users'][0]['is_following'], False) self.assertEquals(data['users'][1]['id'], fb_user2.uid) self.assertEquals(data['users'][1]['is_following'], True) self.assertEquals(data['users'][2]['id'], fb_user4.uid) self.assertEquals(data['users'][2]['is_following'], False) # return_following false (ordered by followings) response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(0, 10, 'false')) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 2) self.assertEquals(data['users'][0]['id'], fb_user3.uid) self.assertEquals(data['users'][0]['is_following'], False) self.assertEquals(data['users'][1]['id'], fb_user4.uid) self.assertEquals(data['users'][1]['is_following'], False) # test default value of return_following (true) response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}'.format(0, 10)) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 3) self.assertEquals(data['users'][0]['id'], fb_user3.uid) self.assertEquals(data['users'][0]['is_following'], False) self.assertEquals(data['users'][1]['id'], fb_user2.uid) self.assertEquals(data['users'][1]['is_following'], True) self.assertEquals(data['users'][2]['id'], fb_user4.uid) self.assertEquals(data['users'][2]['is_following'], False) # Test limit and offset response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(0, 1, 'true')) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 1) self.assertEquals(data['users'][0]['id'], fb_user3.uid) response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(2, 1, 'true')) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 1) self.assertEquals(data['users'][0]['id'], fb_user4.uid) response = fb_user1.get('api/v1/users/facebook/friends/' + \ '?offset={}&max={}&return_following={}'.format(1, 1, 'false')) data = json.loads(response.data)['data'] self.assertTrue(len(data['users']) == 1) self.assertEquals(data['users'][0]['id'], fb_user4.uid)