def test_user_errors(self): """Test USER model errors.""" user = User( email_addr="*****@*****.**", name="johndoe", fullname="John Doe", locale="en") # User.name should not be nullable user.name = None db.session.add(user) assert_raises(IntegrityError, db.session.commit) db.session.rollback() # User.fullname should not be nullable user.name = "johndoe" user.fullname = None db.session.add(user) assert_raises(IntegrityError, db.session.commit) db.session.rollback() # User.email_addr should not be nullable user.name = "johndoe" user.fullname = "John Doe" user.email_addr = None db.session.add(user) assert_raises(IntegrityError, db.session.commit) db.session.rollback()
def test_user_errors(self): """Test USER model errors.""" user = User(email_addr="*****@*****.**", name="johndoe", fullname="John Doe", locale="en") # User.name should not be nullable user.name = None db.session.add(user) assert_raises(IntegrityError, db.session.commit) db.session.rollback() # User.fullname should not be nullable user.name = "johndoe" user.fullname = None db.session.add(user) assert_raises(IntegrityError, db.session.commit) db.session.rollback() # User.email_addr should not be nullable user.name = "johndoe" user.fullname = "John Doe" user.email_addr = None db.session.add(user) assert_raises(IntegrityError, db.session.commit) db.session.rollback()
def manage_user(access_token, user_data): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = user_repo.get_by(google_user_id=user_data['id']) google_token = dict(oauth_token=access_token) # user never signed on if user is None: info = dict(google_token=google_token) name = username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) email = user_repo.get_by(email_addr=user_data['email']) if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=name, email_addr=user_data['email'], google_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.is_initialized(): newsletter.subscribe_user(user) return user else: return None else: user.info['google_token'] = google_token # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = username_from_full_name(user.name) user_repo.save(user) return user
def manage_user(access_token, user_data): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = user_repo.get_by(google_user_id=user_data['id']) # user never signed on if user is None: google_token = dict(oauth_token=access_token) info = dict(google_token=google_token) name = username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) email = user_repo.get_by(email_addr=user_data['email']) if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=name, email_addr=user_data['email'], google_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.is_initialized(): newsletter.subscribe_user(user) return user else: return None else: # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = username_from_full_name(user.name) user_repo.update(user) return user
def manage_user(access_token, user_data, next_url): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = user_repo.get_by(google_user_id=user_data['id']) # user never signed on if user is None: google_token = dict(oauth_token=access_token) info = dict(google_token=google_token) name = user_data['name'].encode('ascii', 'ignore').lower().replace(" ", "") user = user_repo.get_by_name(name) email = user_repo.get_by(email_addr=user_data['email']) if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=user_data['name'].encode('ascii', 'ignore') .lower().replace(" ", ""), email_addr=user_data['email'], google_user_id=user_data['id'], info=info) user_repo.save(user) return user else: return None else: # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = user.name.encode('ascii', 'ignore').lower().replace(" ", "") user_repo.update(user) return user
def test_info_public_keys(self): """Test DomainObject to_public_json method works.""" user = User() user.name = 'daniel' user.info = dict(container='3', avatar='img.png', token='secret') user_dict = user.dictize() json = user.to_public_json() err_msg = "Wrong value" assert json['name'] == user.name, err_msg err_msg = "Missing fields" assert json.keys().sort() == user.public_attributes().sort(), err_msg err_msg = "There should be info keys" assert json['info']['container'] == '3', err_msg assert json['info']['avatar'] == 'img.png', err_msg err_msg = "This key should be missing" assert json['info'].get('token') is None, err_msg json = user.to_public_json(data=user_dict) err_msg = "Wrong value" assert json['name'] == user.name, err_msg err_msg = "Missing fields" assert json.keys().sort() == user.public_attributes().sort(), err_msg err_msg = "There should be info keys" assert json['info']['container'] == '3', err_msg assert json['info']['avatar'] == 'img.png', err_msg err_msg = "This key should be missing" assert json['info'].get('token') is None, err_msg
def test_to_public_json(self): """Test DomainObject to_public_json method works.""" user = User() user.name = 'daniel' user_dict = user.dictize() json = user.to_public_json() err_msg = "Wrong value" assert json['name'] == user.name, err_msg err_msg = "Missing fields" assert json.keys().sort() == user.public_attributes().sort(), err_msg json = user.to_public_json(data=user_dict) err_msg = "Wrong value" assert json['name'] == user.name, err_msg err_msg = "Missing fields" assert json.keys().sort() == user.public_attributes().sort(), err_msg
def manage_user(access_token, user_data, next_url): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = db.session.query(User)\ .filter_by(google_user_id=user_data['id'])\ .first() # user never signed on if user is None: google_token = dict(oauth_token=access_token) info = dict(google_token=google_token) user = db.session.query(User)\ .filter_by(name=user_data['name'].encode('ascii', 'ignore') .lower().replace(" ", ""))\ .first() email = db.session.query(User)\ .filter_by(email_addr=user_data['email'])\ .first() if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=user_data['name'].encode( 'ascii', 'ignore').lower().replace(" ", ""), email_addr=user_data['email'], google_user_id=user_data['id'], info=info) db.session.add(user) db.session.commit() return user else: return None else: # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = user.name.encode('ascii', 'ignore').lower().replace(" ", "") db.session.add(user) db.session.commit() return user
def test_info_public_keys(self): """Test DomainObject to_public_json method works.""" user = User() user.name = 'daniel' user.info = dict(container='3', avatar='img.png', token='secret', badges=['awesome.png', 'incredible.png'], hidden=True) user_dict = user.dictize() json = user.to_public_json() err_msg = "Wrong value" assert json['name'] == user.name, err_msg err_msg = "Missing fields" assert list( json.keys()).sort() == user.public_attributes().sort(), err_msg err_msg = "There should be info keys" assert json['info']['container'] == '3', err_msg assert json['info']['avatar'] == 'img.png', err_msg err_msg = "This key should be missing" assert json['info'].get('token') is None, err_msg json = user.to_public_json(data=user_dict) err_msg = "Wrong value" assert json['name'] == user.name, err_msg err_msg = "Missing fields" assert list( json.keys()).sort() == user.public_attributes().sort(), err_msg err_msg = "There should be info keys" assert json['info']['container'] == '3', err_msg assert json['info']['avatar'] == 'img.png', err_msg err_msg = "This key should be missing" assert json['info'].get('token') is None, err_msg with patch.dict(self.flask_app.config, {'USER_INFO_PUBLIC_FIELDS': ['badges']}): json = user.to_public_json() assert list(json['info'].keys()).sort() == User().public_info_keys( ).sort(), err_msg assert 'badges' in list(json['info'].keys()) assert 'hidden' not in list(json['info'].keys())
def manage_user(access_token, user_data, next_url): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = user_repo.get_by(google_user_id=user_data['id']) # user never signed on if user is None: google_token = dict(oauth_token=access_token) info = dict(google_token=google_token) name = user_data['name'].encode('ascii', 'ignore').lower().replace(" ", "") user = user_repo.get_by_name(name) email = user_repo.get_by(email_addr=user_data['email']) if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=user_data['name'].encode( 'ascii', 'ignore').lower().replace(" ", ""), email_addr=user_data['email'], google_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.app: newsletter.subscribe_user(user) return user else: return None else: # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = user.name.encode('ascii', 'ignore').lower().replace(" ", "") user_repo.update(user) return user
def test_domain_object_error(self): """Test DomainObject errors work.""" user = User() user.name = "John" d = user.dictize() user.undictize(d)
def test_domain_object_error(self): """Test DomainObject errors work.""" user = User() user.name = "John" d = user.dictize() user.undictize(d)