Example #1
0
    def test_follow(self):
        user1 = User(username='******', email='*****@*****.**')
        user2 = User(username='******', email='*****@*****.**')

        db.session.add(user1)
        db.session.add(user2)

        db.session.commit()

        self.assertEqual(user1.followed.all(), [])
        self.assertEqual(user1.followers.all(), [])

        user1.follow(user2)
        db.session.commit()
        self.assertTrue(user1.is_following(user2))
        self.assertEqual(user1.followed.count(), 1)
        self.assertEqual(user1.followed.first().username, 'Susan')
        self.assertEqual(user2.followers.count(), 1)
        self.assertEqual(user2.followers.first().username, 'John')

        user1.unfollow(user2)
        db.session.commit()
        self.assertFalse(user1.is_following(user2))
        self.assertEqual(user1.followed.count(), 0)
        self.assertEqual(user2.followers.count(), 0)
Example #2
0
def registration_user(payload):
    """
    e.orig.pgcode=='23505' -- UniqueViolation Error
    :param payload:
    :return:    {
                    'status': 'success' or 'fail',
                    'message': 'Some message'
                }
    """
    try:
        user = User(username=payload['username'],
                    email=payload['email'],
                    password=user_manager.hash_password(payload['password']))
        user.roles.append(Role.query.filter_by(name='Author').first())
        db.session.add(user)
        db.session.commit()
        db.session.remove()
        return {'status': 'success', 'message': 'You have been registered'}
    except IntegrityError as e:
        return {
            'status':
            'fail',
            'message':
            'User already exists'
            if e.orig.pgcode == '23505' else 'Invalid Data'
        }
Example #3
0
def test_user_create_with_roles():
    user = User(username='******',
                email='*****@*****.**',
                password=user_manager.hash_password('admin_pass'))
    user.roles.append(Role(name='Admin'))
    user.roles.append(Role(name='Author'))
    db.session.add(user)
    db.session.commit()
    db.session.remove()
Example #4
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash(_l('Congratulations! you can log with it now!'))
        return redirect(url_for('auth.login'))
    return render_template("auth/register.html", title='Sign up', form=form)
Example #5
0
 def test_follow(self):
     u1 = User(username='******', email='*****@*****.**')
     u2 = User(username='******', email='*****@*****.**')
     db.session.add(u1)
     db.session.add(u2)
     db.session.commit()
     self.assertEqual(u1.followed.all(), [])
     self.assertEqual(u1.followers.all(), [])
     u1.follow(u2)
     db.session.commit()
     self.assertTrue(u1.is_following(u2))
     self.assertEqual(u1.followed.count(), 1)
     self.assertEqual(u1.followed.first().username, 'B')
     self.assertEqual(u2.followers.count(), 1)
     self.assertEqual(u2.followers.first().username, 'A')
     u1.unfollow(u2)
     db.session.commit()
     self.assertFalse(u1.is_following(u2))
     self.assertEqual(u1.followed.count(), 0)
     self.assertEqual(u2.followers.count(), 0)
Example #6
0
    def test_follow_posts(self):
        # create four users
        u1 = User(username='******', email='*****@*****.**')
        u2 = User(username='******', email='*****@*****.**')
        u3 = User(username='******', email='*****@*****.**')
        u4 = User(username='******', email='*****@*****.**')
        db.session.add_all([u1, u2, u3, u4])

        # create four posts
        now = datetime.utcnow()
        p1 = Post(body="post from john",
                  author=u1,
                  timestamp=now + timedelta(seconds=1))
        p2 = Post(body="post from susan",
                  author=u2,
                  timestamp=now + timedelta(seconds=4))
        p3 = Post(body="post from mary",
                  author=u3,
                  timestamp=now + timedelta(seconds=3))
        p4 = Post(body="post from david",
                  author=u4,
                  timestamp=now + timedelta(seconds=2))
        db.session.add_all([p1, p2, p3, p4])
        db.session.commit()

        # setup the followers
        u1.follow(u2)  # john follows susan
        u1.follow(u4)  # john follows david
        u2.follow(u3)  # susan follows mary
        u3.follow(u4)  # mary follows david
        db.session.commit()

        # check the followed posts of each user
        f1 = u1.followed_posts().all()
        f2 = u2.followed_posts().all()
        f3 = u3.followed_posts().all()
        f4 = u4.followed_posts().all()
        self.assertEqual(f1, [p2, p4, p1])
        self.assertEqual(f2, [p2, p3])
        self.assertEqual(f3, [p3, p4])
        self.assertEqual(f4, [p4])
Example #7
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = RegistrationForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()
        flash(f'Account created for {form.username.data}!', 'success')
        return redirect(url_for('home'))
    return render_template('register.html', title='Register', form=form)
Example #8
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.dashboard'))

    form = RegistrationForm()
    if form.validate_on_submit():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash(_('Congratulations, you are now a registered user!'), 'success')
        return redirect(url_for('auth.login'))

    return render_template('auth/register.html',
                           title='Registration',
                           form=form)
Example #9
0
def create_user():
    data = request.get_json() or {}
    if 'username' not in data or 'email' not in data or 'password' not in data:
        return bad_request('must include username, email and password fields')
    if User.query.filter_by(username=data['username']).first():
        return bad_request('please use a different username')
    if User.query.filter_by(email=data['email']).first():
        return bad_request('please use a different email')
    user = User()
    user.from_dict(data, new_user=True)
    db.session.add(user)
    db.session.commit()
    response = jsonify(user.to_dict())
    response.status_code = 201
    response.headers['Location'] = url_for('api.get_user', id=user.id)
    return response
Example #10
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))

    form = RegistrationForm()
    if form.validate_on_submit():
        #hash and verify p/w
        hashed_password = bcrypt.generate_password_hash(
            form.password.data).decode('utf-8')

        #create and adding a  new user after p/w hashing and verification
        user = User(username=form.username.data,
                    email=form.email.data,
                    password=hashed_password)
        db.session.add(user)
        db.session.commit()

        # flash(f'Account created for {form.username.data}!', 'success')
        flash('Your account has been created! you are now able to log in',
              'success')

        return redirect(url_for('login'))

    return render_template('register.html', title='Register', form=form)
Example #11
0
 def test_avatar(self):
     user = User(username='******', email='*****@*****.**')
     self.assertEqual(user.avatar(128), ('https://www.gravatar.com/avatar/'
                                         'd4c74594d841139328695756648b6bd6'
                                         '?d=identicon&s=128'))
Example #12
0
 def test_password_hashing(self):
     user = User(username='******')
     user.set_password('cat')
     self.assertFalse(user.check_password('dog'))
     self.assertTrue(user.check_password('cat'))
Example #13
0
 def test_password_hashing(self):
     u = User(username='******')
     u.set_password('123456')
     self.assertFalse(u.check_password('dog'))
     self.assertTrue(u.check_password('123456'))
Example #14
0
from base import Session, engine, Base

from blog_app.models import User, Post

Base.metadata.create_all(engine)

session = Session()

admin_user = User('admin', '*****@*****.**', hash('default'))

first_post = Post(body='My First Post Body',
                  user_id=1,
                  title='My first Post title')

session.add(admin_user)
session.add(first_post)

session.commit()
session.close()