def _pre_setup(self): if self.facebook_test_user: if type(self.facebook_test_user) not in [str, unicode]: raise Exception("facebook_test_user variable must be a string (found a %s)" % type(self.facebook_test_user)) app_name = get_app_name_from_test_case(type(self).__module__) facetools_fixture_name = _get_facetools_test_fixture_name(app_name) if not hasattr(self, 'fixtures'): self.fixtures = [] if facetools_fixture_name not in self.fixtures: self.fixtures.append(facetools_fixture_name) super(FacebookTestCaseMixin, self)._pre_setup() # Make sure anybody that needs to sync their models loaded from fixtures # has a chance to do so now that the refreshed user test data is available. try: for test_user in TestUser.objects.all(): sync_facebook_test_user.send(sender=None, test_user=test_user) # Allow code to configure the test client so it has a signed request # of the specified test user for each request self.test_user = TestUser.objects.get(name=self.facebook_test_user) setup_facebook_test_client.send(sender=None, client=self.client, signed_request=_create_signed_request( settings.FACEBOOK_APPLICATION_SECRET_KEY, str(self.test_user.facebook_id), oauth_token=self.test_user.access_token, )) except TestUser.DoesNotExist: raise TestUserNotLoaded("Test user %s hasn't been loaded via the %s fixture (did you run sync_facebook_test_users?)" % (self.facebook_test_user, facetools_fixture_name)) else: super(FacebookTestCaseMixin, self)._pre_setup()
def _pre_setup(self): if self.facebook_test_user: if type(self.facebook_test_user) not in [str, unicode]: raise Exception("facebook_test_user variable must be a string (found a %s)" % type(self.facebook_test_user)) app_name = get_app_name_from_test_case(type(self).__module__) facetools_fixture_name = _get_facetools_test_fixture_name(app_name) if not hasattr(self, 'fixtures'): self.fixtures = [] if facetools_fixture_name not in self.fixtures: self.fixtures.append(facetools_fixture_name) super(FacebookTestCaseMixin, self)._pre_setup() # Make sure anybody that needs to sync their models loaded from fixtures # has a chance to do so now that the refreshed user test data is available. try: for test_user in TestUser.objects.all(): sync_facebook_test_user.send(sender=None, test_user=test_user) self.test_user = TestUser.objects.get(name=self.facebook_test_user) self.set_client_signed_request(self.test_user.facebook_id, self.test_user.access_token) except TestUser.DoesNotExist: raise TestUserNotLoaded("Test user %s hasn't been loaded via the %s fixture (did you run sync_facebook_test_users?)" % (self.facebook_test_user, facetools_fixture_name)) else: super(FacebookTestCaseMixin, self)._pre_setup()
def handle_app(self, app, **options): app_name = '.'.join(app.__name__.split('.')[0:-1]) test_users = _get_facetools_test_users(app_name) existing_facebook_test_users = _get_existing_facebook_test_users() existing_facetool_test_users = [u.name for u in TestUser.objects.all()] existing_test_users = set(existing_facebook_test_users.keys() + existing_facetool_test_users) # Create any test users on facebook their corresponding User models in facetools # that don't exist on facebook yet. for test_user in test_users: _print('Syncing %s' % test_user['name']) # Add user to facebook and local database if test_user['name'] not in existing_test_users: _create_test_user(app_installed=test_user.get( 'installed', True), name=test_user['name'], permissions=test_user.get('permissions')) # or add test user to facebook and sync with existing test user in the local database elif test_user['name'] not in existing_facebook_test_users: facebook_response_data = _create_test_user_on_facebook( app_installed=test_user.get('installed', True), name=test_user['name'], permissions=test_user.get('permissions')) facetools_user = TestUser.objects.get(name=test_user['name']) facetools_user.facebook_id = facebook_response_data['id'] facetools_user.access_token = facebook_response_data.get( 'access_token') facetools_user.login_url = facebook_response_data.get( 'login_url') facetools_user.save() # or add test user to the local database using the test user's data on facebook elif test_user['name'] not in existing_facetool_test_users: facebook_data = existing_facebook_test_users[test_user['name']] TestUser.objects.create( name=test_user['name'], facebook_id=facebook_data['id'], access_token=facebook_data.get('access_token'), login_url=facebook_data.get('login_url')) # or sync the existing user with the latest facebook information else: facebook_data = existing_facebook_test_users[test_user['name']] facetools_user = TestUser.objects.get(name=test_user['name']) facetools_user.facebook_id = facebook_data['id'] facetools_user.access_token = facebook_data.get('access_token') facetools_user.login_url = facebook_data.get('login_url') facetools_user.save() sync_facebook_test_user.send( sender=None, test_user=TestUser.objects.get(name=test_user['name'])) _create_test_user_friendships(test_users) _create_test_user_fixture(app, app_name, test_users)
def handle_app(self, app, **options): app_name = '.'.join(app.__name__.split('.')[0:-1]) test_users = _get_facetools_test_users(app_name) existing_facebook_test_users = _get_existing_facebook_test_users() existing_facetool_test_users = [u.name for u in TestUser.objects.all()] existing_test_users = set(existing_facebook_test_users.keys() + existing_facetool_test_users) # Create any test users on facebook their corresponding User models in facetools # that don't exist on facebook yet. for test_user in test_users: _print('Syncing %s' % test_user['name']) # Add user to facebook and local database if test_user['name'] not in existing_test_users: _create_test_user( app_installed = test_user.get('installed', True), name = test_user['name'], permissions = test_user.get('permissions') ) # or add test user to facebook and sync with existing test user in the local database elif test_user['name'] not in existing_facebook_test_users: facebook_response_data = _create_test_user_on_facebook( app_installed = test_user.get('installed', True), name = test_user['name'], permissions = test_user.get('permissions') ) facetools_user = TestUser.objects.get(name=test_user['name']) facetools_user.facebook_id = facebook_response_data['id'] facetools_user.access_token = facebook_response_data.get('access_token') facetools_user.login_url = facebook_response_data.get('login_url') facetools_user.save() # or add test user to the local database using the test user's data on facebook elif test_user['name'] not in existing_facetool_test_users: facebook_data = existing_facebook_test_users[test_user['name']] TestUser.objects.create( name = test_user['name'], facebook_id = facebook_data['id'], access_token = facebook_data.get('access_token'), login_url = facebook_data.get('login_url') ) # or sync the existing user with the latest facebook information else: facebook_data = existing_facebook_test_users[test_user['name']] facetools_user = TestUser.objects.get(name=test_user['name']) facetools_user.facebook_id = facebook_data['id'] facetools_user.access_token = facebook_data.get('access_token') facetools_user.login_url = facebook_data.get('login_url') facetools_user.save() sync_facebook_test_user.send(sender=None, test_user=TestUser.objects.get(name=test_user['name'])) _create_test_user_friendships(test_users) _create_test_user_fixture(app, app_name, test_users)