示例#1
0
    def test_register(self):
        return 'currently this doesnt work reliably with the live facebook api'
        #setup the test user
        permissions = facebook_settings.FACEBOOK_DEFAULT_SCOPE
        app_access_token = FacebookAuthorization.get_cached_app_access_token()
        test_user = FacebookAuthorization.get_or_create_test_user(app_access_token, permissions)

        #test the connect view in the registration mode (empty db)
        c = Client()
        url = reverse('facebook_connect')
        access_token = test_user.access_token
        response = c.get(url, {'facebook_login': '******', 'access_token': access_token})
        self.assertEqual(response.status_code, 302)
        user = User.objects.all().order_by('-id')[:1][0]
        profile = user.get_profile()
        self.assertEqual(access_token, profile.access_token)

        #test the login flow
        response = c.get(url, {'facebook_login': '******', 'access_token': access_token})
        self.assertEqual(response.status_code, 302)
        new_user = User.objects.all().order_by('-id')[:1][0]
        new_profile = user.get_profile()
        self.assertEqual(access_token, new_profile.access_token)

        self.assertEqual(user, new_user)
示例#2
0
    def test_register(self):
        return 'currently this doesnt work reliably with the live facebook api'
        #setup the test user
        permissions = facebook_settings.FACEBOOK_DEFAULT_SCOPE
        app_access_token = FacebookAuthorization.get_cached_app_access_token()
        test_user = FacebookAuthorization.get_or_create_test_user(
            app_access_token, permissions)

        #test the connect view in the registration mode (empty db)
        c = Client()
        url = reverse('facebook_connect')
        access_token = test_user.access_token
        response = c.get(url, {
            'facebook_login': '******',
            'access_token': access_token
        })
        self.assertEqual(response.status_code, 302)
        user = User.objects.all().order_by('-id')[:1][0]
        profile = user.get_profile()
        self.assertEqual(access_token, profile.access_token)

        #test the login flow
        response = c.get(url, {
            'facebook_login': '******',
            'access_token': access_token
        })
        self.assertEqual(response.status_code, 302)
        new_user = User.objects.all().order_by('-id')[:1][0]
        new_profile = user.get_profile()
        self.assertEqual(access_token, new_profile.access_token)

        self.assertEqual(user, new_user)
示例#3
0
 def test_extend_token(self):
     return 'this doesnt work in travis, but locally its fine... weird'
     app_access_token = FacebookAuthorization.get_cached_app_access_token()
     test_user = FacebookAuthorization.get_or_create_test_user(app_access_token)
     access_token = test_user.access_token
     results = FacebookAuthorization.extend_access_token(access_token)
     if 'access_token' not in results:
         raise ValueError('we didnt get a fresh token')
示例#4
0
 def test_extend_token(self):
     return 'this doesnt work in travis, but locally its fine... weird'
     app_access_token = FacebookAuthorization.get_cached_app_access_token()
     test_user = FacebookAuthorization.get_or_create_test_user(
         app_access_token)
     access_token = test_user.access_token
     results = FacebookAuthorization.extend_access_token(access_token)
     if 'access_token' not in results:
         raise ValueError('we didnt get a fresh token')
示例#5
0
 def test_create_test_user(self):
     #Also, somehow unittest.skip doesnt work with travis ci?
     return 'Skipping since you might have created test users manually, lets not delete them :)'
     #start by clearing out our test users (maybe this isnt safe to use in testing)
     #if other people create test users manualy this could be annoying
     app_access_token = FacebookAuthorization.get_cached_app_access_token()
     FacebookAuthorization.delete_test_users(app_access_token)
     #the permissions for which we want a test user
     permissions = ['email', 'publish_actions']
     #gets the test user object
     test_user = FacebookAuthorization.get_or_create_test_user(app_access_token, permissions)
     graph = test_user.graph()
     me = graph.me()
     assert me
示例#6
0
 def test_create_test_user(self):
     # Also, somehow unittest.skip doesnt work with travis ci?
     return 'Skipping since you might have created test users manually, lets not delete them :)'
     # start by clearing out our test users (maybe this isnt safe to use in testing)
     # if other people create test users manualy this could be annoying
     app_access_token = FacebookAuthorization.get_cached_app_access_token()
     FacebookAuthorization.delete_test_users(app_access_token)
     # the permissions for which we want a test user
     permissions = ['email', 'publish_actions']
     # gets the test user object
     test_user = FacebookAuthorization.get_or_create_test_user(
         app_access_token, permissions)
     graph = test_user.graph()
     me = graph.me()
     assert me
示例#7
0
def get_users_fb_email(request):
    app_access_token = FacebookAuthorization.get_cached_app_access_token()
    graph = get_persistent_graph(request, access_token=app_access_token)
    return graph.me()['email']
示例#8
0
def get_facebook_friends(request):
    app_access_token = FacebookAuthorization.get_cached_app_access_token()
    graph = get_persistent_graph(request, access_token=app_access_token)
    converter = FacebookUserConverter(graph)
    friends_uids = ','.join([str(f['uid']) for f in converter.get_friends()])
    return graph.fql('SELECT name, username, pic_square, pic FROM user WHERE uid IN (%s)' % friends_uids)