Пример #1
0
 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()
Пример #2
0
 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())
Пример #3
0
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
Пример #4
0
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
Пример #5
0
 def test_password_setter(self):
     u = User(password='******')
     self.assertTrue(u.password_hash is not None)
Пример #6
0
 def test_password_salts_are_random(self):
     u = User(password='******')
     u2 = User(password='******')
     self.assertTrue(u.password_hash != u2.password_hash)
Пример #7
0
 def test_password_verification(self):
     u = User(password='******')
     self.assertTrue(u.verify_password('cat'))
     self.assertFalse(u.verify_password('dog'))
Пример #8
0
 def test_no_password_getter(self):
     u = User(password='******')
     with self.assertRaises(AttributeError):
         print(u.password)