def setUp(self): from django_facebook.test_utils.mocks import MockFacebookAPI, MockFacebookAuthorization, RequestMock import sys import StringIO self.prints = sys.stdout = StringIO.StringIO() from open_facebook import api import open_facebook self.originalAPI = open_facebook.OpenFacebook self.originalAuthorization = open_facebook.FacebookAuthorization open_facebook.OpenFacebook = api.OpenFacebook = MockFacebookAPI open_facebook.FacebookAuthorization = api.FacebookAuthorization = MockFacebookAuthorization rf = RequestMock() self.request = rf.get('/') self.client = Client() # time to setup the test user user_model = get_user_model() user_dict = dict( username='******', is_staff=False, is_active=True, email="*****@*****.**", ) test_ip = '127.0.0.1' # hack to make fashiolista tests run ok if is_user_attribute('registration_ip'): user_dict['registration_ip'] = test_ip user_dict['last_login_ip'] = test_ip user_model.objects.create(**user_dict)
def test_persistent_graph(self): request = RequestMock().get('/') request.session = {} request.user = AnonymousUser() graph = get_facebook_graph(access_token='short_username') FacebookUserConverter(graph) action, user = connect_user(self.request, facebook_graph=graph) self.assertEqual(action, CONNECT_ACTIONS.REGISTER)
def test_long_username(self): request = RequestMock().get('/') request.session = {} request.user = AnonymousUser() graph = get_persistent_graph(request, access_token='long_username') converter = FacebookUserConverter(graph) base_data = converter.facebook_registration_data() action, user = connect_user(self.request, facebook_graph=graph) self.assertEqual(len(base_data['username']), 30) self.assertEqual(len(user.username), 30) self.assertEqual(len(user.first_name), 30) self.assertEqual(len(user.last_name), 30)
def test_gender_matching(self): request = RequestMock().get('/') request.session = {} request.user = AnonymousUser() graph = get_persistent_graph(request, access_token='paul') converter = FacebookUserConverter(graph) base_data = converter.facebook_profile_data() self.assertEqual(base_data['gender'], 'male') data = converter.facebook_registration_data() self.assertEqual(data['gender'], 'm') action, user = connect_user(self.request, facebook_graph=graph) self.assertEqual(user.get_profile().gender, 'm')
def setUp(self): from django_facebook.test_utils.mocks import MockFacebookAPI, MockFacebookAuthorization, RequestMock from open_facebook import api import open_facebook self.originalAPI = open_facebook.OpenFacebook self.originalAuthorization = open_facebook.FacebookAuthorization open_facebook.OpenFacebook = api.OpenFacebook = MockFacebookAPI open_facebook.FacebookAuthorization = api.FacebookAuthorization = MockFacebookAuthorization rf = RequestMock() self.request = rf.get('/') self.client = Client()
def test_update_access_token(self): request = RequestMock().get('/') request.session = {} request.user = AnonymousUser() graph = get_persistent_graph(request, access_token='paul') action, user = connect_user(self.request, facebook_graph=graph) first_user_id = user.id # new token required should start out as False profile = try_get_profile(user) new_token_required = get_user_attribute(user, profile, 'new_token_required') self.assertEqual(new_token_required, False) # we manually set it to true update_user_attributes(user, profile, dict(new_token_required=True), save=True) if profile: profile = get_profile_model().objects.get(id=profile.id) user = get_user_model().objects.get(id=user.id) new_token_required = get_user_attribute(user, profile, 'new_token_required') self.assertEqual(new_token_required, True) # another update should however set it back to False request.facebook = None graph = get_facebook_graph(request, access_token='paul2') logger.info('and the token is %s', graph.access_token) action, user = connect_user(self.request, facebook_graph=graph) user = get_user_model().objects.get(id=user.id) self.assertEqual(user.id, first_user_id) if profile: profile = get_profile_model().objects.get(id=profile.id) user = get_user_model().objects.get(id=user.id) new_token_required = get_user_attribute(user, profile, 'new_token_required') self.assertEqual(new_token_required, False)
def setUp(self): from django_facebook.test_utils.mocks import MockFacebookAPI, MockFacebookAuthorization, RequestMock import sys import io self.prints = sys.stdout = io.StringIO() from open_facebook import api import open_facebook self.originalAPI = open_facebook.OpenFacebook self.originalAuthorization = open_facebook.FacebookAuthorization open_facebook.OpenFacebook = api.OpenFacebook = MockFacebookAPI open_facebook.FacebookAuthorization = api.FacebookAuthorization = MockFacebookAuthorization rf = RequestMock() self.request = rf.get('/') self.client = Client() # time to setup the test user user_model = get_user_model() user_dict = dict( username='******', is_staff=False, is_active=True, email="*****@*****.**", ) test_ip = '127.0.0.1' # hack to make fashiolista tests run ok if is_user_attribute('registration_ip'): user_dict['registration_ip'] = test_ip user_dict['last_login_ip'] = test_ip user_model.objects.create(**user_dict) from django.conf import settings if getattr(settings, 'MODE', None) == 'userena': from django.core.management import call_command call_command('check_permissions', output=False)
def test_update_access_token(self): request = RequestMock().get('/') request.session = {} request.user = AnonymousUser() graph = get_persistent_graph(request, access_token='paul') action, user = connect_user(self.request, facebook_graph=graph) first_user_id = user.id # new token required should start out as False profile = try_get_profile(user) new_token_required = get_user_attribute( user, profile, 'new_token_required') self.assertEqual(new_token_required, False) # we manually set it to true update_user_attributes( user, profile, dict(new_token_required=True), save=True) if profile: profile = get_profile_model().objects.get(id=profile.id) user = get_user_model().objects.get(id=user.id) new_token_required = get_user_attribute( user, profile, 'new_token_required') self.assertEqual(new_token_required, True) # another update should however set it back to False request.facebook = None graph = get_facebook_graph(request, access_token='paul2') logger.info('and the token is %s', graph.access_token) action, user = connect_user(self.request, facebook_graph=graph) user = get_user_model().objects.get(id=user.id) self.assertEqual(user.id, first_user_id) if profile: profile = get_profile_model().objects.get(id=profile.id) user = get_user_model().objects.get(id=user.id) new_token_required = get_user_attribute( user, profile, 'new_token_required') self.assertEqual(new_token_required, False)