def test_unable_to_create_duplicated_users(self): u1 = User(email='*****@*****.**', password='******') db.session.add(u1) db.session.commit() u2 = User(email='*****@*****.**', password='******') db.session.add(u2) with self.assertRaises(IntegrityError): db.session.commit()
def test_emails_case(self): """ Test that emails are converted to lowercase on create/update""" mixed_case_email = '*****@*****.**' u = User(email=mixed_case_email, password='******') self.assertTrue(u.email, mixed_case_email.lower()) db.session.add(u) db.session.commit() u.email = mixed_case_email.upper() db.session.commit() db.session.refresh(u) self.assertTrue(u.email, mixed_case_email.lower())
def edit_user(user_id): user = User.query.get_or_404(user_id) user_schema = User.from_json(json.loads(request.data.decode('utf-8')), partial=True) if user_schema.errors: return {'errors': user_schema.errors}, 400 if 'group_id' in user_schema.data: group = Group.query.filter(Group.id == user_schema.data['group_id']).first() if not group: return {'errors': {'group': 'Group with this id does not exist'}}, 400 if 'email' in user_schema.data: email_duplicate_user = User.query.filter(User.email == user_schema.data['email']).first() if email_duplicate_user: return {'errors': {'email': 'User with this email is already exists'}}, 400 for field, value in user_schema.data.items(): if hasattr(user, field): setattr(user, field, value) db.session.commit() return user, 200
def add_user(): user_schema = User.from_json(json.loads(request.data.decode('utf-8'))) if user_schema.errors: return {'errors': user_schema.errors}, 400 email_duplicate_user = User.query.filter(User.email == user_schema.data['email']).first() if email_duplicate_user: return {'errors': {'email': 'User with this email is already exists'}}, 400 group = Group(name=str(uuid.uuid4())) db.session.add(group) db.session.commit() user = User(**user_schema.data) user.group = group db.session.add(user) db.session.commit() return user, 201
def test_password_setter(self): u = User(password='******') self.assertTrue(u.password_hash is not None)
def test_password_salts_are_random(self): u = User(password='******') u2 = User(password='******') self.assertTrue(u.password_hash != u2.password_hash)
def test_password_verification(self): u = User(password='******') self.assertTrue(u.verify_password('cat')) self.assertFalse(u.verify_password('dog'))
def test_no_password_getter(self): u = User(password='******') with self.assertRaises(AttributeError): print(u.password)