Beispiel #1
0
 def test_refresh_from_db(self):
     gary = User('Gary').save()
     DB.some_collection.update_one(
         {'_id': 'Gary'},
         {'$set': {'phone': 1234567}})
     gary.refresh_from_db()
     self.assertEqual(1234567, gary.phone)
Beispiel #2
0
 def test_refresh_from_db(self):
     gary = User('Gary').save()
     DB.some_collection.update_one({'_id': 'Gary'},
                                   {'$set': {
                                       'phone': 1234567
                                   }})
     gary.refresh_from_db()
     self.assertEqual(1234567, gary.phone)
Beispiel #3
0
def load_user(id):
    # Flask-Login USER loader
    # can't use current_user here as this method is setting the current_user
    if 'user_id' in session:
        print('Got user from SESSION')
        return User.get_user_from_session(session)
    else:
        print('Got user from DATABASE')
        return User.get_user_by_id(id)
Beispiel #4
0
 def test_instantiation(self):
     msg = 'Got 5 arguments for only 4 fields'
     with self.assertRaisesRegex(ValueError, msg):
         User('Gary', 1234567, '12 Apple Street', 42, 'cucumber')
     msg = 'Unrecognized field name'
     with self.assertRaisesRegex(ValueError, msg):
         User(last_name='Gygax')
     msg = 'name specified more than once in constructor for User'
     with self.assertRaisesRegex(ValueError, msg):
         User('Gary', fname='Gygax')
 def test_simple_inheritance(self):
     child = User(fname='Gary', phone=1234567)
     self.assertIsInstance(child, User)
     self.assertIsInstance(child, ParentModel)
     # 'name' is primary key from parent.
     self.assertEqualsModel(
         SON([('_id', 'Gary'), ('phone', 1234567)]), child)
     child.save()
     # We use the correct collection name.
     result = User.objects.first()
     self.assertEqual(child, result)
 def test_simple_inheritance(self):
     child = User(fname='Gary', phone=1234567)
     self.assertIsInstance(child, User)
     self.assertIsInstance(child, ParentModel)
     # 'name' is primary key from parent.
     self.assertEqualsModel(SON([('_id', 'Gary'), ('phone', 1234567)]),
                            child)
     child.save()
     # We use the correct collection name.
     result = User.objects.first()
     self.assertEqual(child, result)
Beispiel #7
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    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!')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
Beispiel #8
0
def register_user():
    full_name = request.form.get('full_name')
    email = request.form.get('email')
    phone_number = request.form.get('password')
    # print(request.form.get('user_type'))
    is_owner = request.form.get('user_type') == 'owner'
    is_sitter = not is_owner
    password = request.form.get('password')
    confirm_password = request.form.get('confirm_password')

    # if password != confirm_password:
    #     html = render_template('users/register.html',
    #                             title='Register | Spot')
    #     response = make_response(html)
    #     return response

    user = User()
    user.full_name = full_name
    user.email = email
    user.phone_number = phone_number
    user.is_owner = is_owner
    user.is_sitter = is_sitter
    user.password_hash = password

    new_user = db_service.create_user(user)
    if new_user != '':
        print(new_user)
    else:
        print('Created a new user ', user.full_name)

    html = render_template('users/login.html', title='Login | Spot')
    response = make_response(html)
    return response
Beispiel #9
0
    def test_nested_structure(self):
        schema = AutoMarshmallowSchema.generate_schema(User)()

        user = User(id=1, name="Testing 123")
        address = Address(id=1, user_id=user.id, value="Testing street 1")
        house_picture = HousePicture(id=1, address_id=address.id, location="C:/test")

        address.house_pictures = [house_picture]
        user.address = [address]

        dumped = schema.dump(user)

        loaded = schema.load_instance(dumped)
        self.verify_objects(user, loaded)
Beispiel #10
0
def register():
    req = request.json
    auth = request.authorization
    user = User.query.filter_by(username=req["username"]).first()
    # user = User(username=form.username.data, password=hashed_password)
    if user:
        return make_response("Username already exists. Try again.", 400)

    entered_password_1 = req["password1"]
    entered_password_2 = req["password2"]
    if entered_password_1 == entered_password_2:
        new_user = User(
            username=req["username"],
            password=bcrypt.generate_password_hash(entered_password_1))
        db.session.add(new_user)
        db.session.commit()
        token = jwt.encode(
            {
                'id': new_user.id,
                'exp':
                datetime.datetime.utcnow() + datetime.timedelta(minutes=60)
            }, 'JWT_SECRET')
        return jsonify({'token': token.decode("ascii")})

    else:
        return make_response("Sorry, passwords must match", 400)
Beispiel #11
0
def create_user():
    # Create user from the arguments passed via POST
    user = User(
        is_sitter=bool(request.form.get('is_sitter')),
        is_owner=bool(request.form.get('is_owner')),
        full_name=request.form.get('full_name'),
        email=request.form.get('email'),
        phone_number=request.form.get('phone_number'),
        password_hash=request.form.get('password_hash'),
    )

    # NOTE: This is where we can validate that full_name, email,
    # phone_number, and password_hash are valid immediately before adding to database

    errorMsg = ''

    # Add user to session, and commit to finish transaction (basically push changes to database)
    try:
        db.session.add(user)
        db.session.commit()
    except Exception as e:
        db.session.rollback()  # Cancel all invalid changes
        errorMsg = e.args[0]

    # Redirect to main page
    return redirect(url_for('index', errorMsg=errorMsg))
Beispiel #12
0
def loginp():
    """ Testing a permanent login """
    user = User.get_user_by_id('1kuU9610nMtUlqLqdjxR')

    login_user(user, remember=True)
    session.set_permanent('session')  # setting the session as permanent

    return 'User logged in!'
Beispiel #13
0
    def test_bulk_create(self):
        results = User.objects.bulk_create(
            User(fname='Louis', lname='Armstrong'))
        self.assertEqual(['Louis'], results)

        results = User.objects.bulk_create([
            User(fname='Woodrow', lname='Wilson'),
            User(fname='Andrew', lname='Jackson')
        ])
        self.assertEqual(['Woodrow', 'Andrew'], results)
        franklins = [
            User(fname='Benjamin', lname='Franklin'),
            User(fname='Aretha', lname='Franklin')
        ]
        results = User.objects.bulk_create(franklins, retrieve=True)
        for result in results:
            self.assertIn(result, franklins)
Beispiel #14
0
async def test():
    await test.orm.create_at_pool(user='******',
                                  password='******',
                                  database='awesome')

    u = User(name='test',
             email='*****@*****.**',
             passwd='1234567890',
             image='about:blank')

    await u.save()
Beispiel #15
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('main.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('users.login'))
    return render_template('register.html',title='Register',form=form)
Beispiel #16
0
    def test_save_pk_field_required(self):
        self.assertTrue(User.fname.required)

        # This should raise ValidationError, since we explicitly defined
        # `fname` as the primary_key, but it hasn't been given a value.
        # `fname` should be required:
        # ValidationError: {'fname': ['field is required.']}
        with self.assertRaises(ValidationError) as cm:
            User().save()

        message = cm.exception.message
        self.assertIsInstance(message, dict)
        self.assertIn('fname', message)
        self.assertIsInstance(message['fname'], list)
        self.assertIn('field is required.', message['fname'])
Beispiel #17
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash('That is an invalid or expired token','warning')
        return redirect(url_for('users.reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
        flash('Your password has been updated! You are now able to log in','success')
        return redirect(url_for('users.login'))
    return render_template('reset_token.html',title='Reset Password',form=form)
Beispiel #18
0
 def setUp(self):
     User(fname='Garden', lname='Tomato', phone=1111111).save()
     User(fname='Rotten', lname='Tomato', phone=2222222).save()
     User(fname='Amon', lname='Amarth', phone=3333333).save()
     User(fname='Garth', lname='Amarth', phone=4444444).save()
Beispiel #19
0
def iter_user():
    return User(name='Kobe',
                email='*****@*****.**',
                password='******',
                job='前 NBA 超级巨星')
Beispiel #20
0
 def test_save(self):
     User('Gary').save()
     self.assertEqual('Gary', DB.some_collection.find_one()['_id'])
Beispiel #21
0
 def test_delete(self):
     gary = User('Gary').save()
     self.assertTrue(DB.some_collection.find_one())
     gary.delete()
     self.assertIsNone(DB.some_collection.find_one())
Beispiel #22
0
def login():
    """ Testing a normal login """
    user = User.get_user_by_id('1kuU9610nMtUlqLqdjxR')

    login_user(user)
    return 'User logged in!'
Beispiel #23
0
 def test_delete(self):
     gary = User('Gary').save()
     self.assertTrue(DB.some_collection.find_one())
     gary.delete()
     self.assertIsNone(DB.some_collection.find_one())
 def test_inheritance_collocation(self):
     parent = ParentModel('Oak', phone=9876432).save()
     user = User('Blane', phone=3456789, address='72 Cinnabar').save()
     results = list(ParentModel.objects.order_by([('phone', 1)]))
     self.assertEqual([user, parent], results)
     self.assertEqual([user], list(User.objects.all()))