def get_user(user_id): user = User() user['_id'] = user_id if not user.load(): return Response('User not found.', status=http.NOT_FOUND) return Response(dumps(user), status=http.FOUND, mimetype="application/json")
def test_make_unique_nickname(self): u = User(nickname='john', email='*****@*****.**') db.session.add(u) db.session.commit() nickname = User.make_unique_nickname('john') assert nickname != 'john' u = User(nickname=nickname, email='*****@*****.**') db.session.add(u) db.session.commit() nickname2 = User.make_unique_nickname('john') assert nickname2 != 'john' assert nickname2 != nickname
def grant_points(user_id, category, amount): user = User() user['_id'] = user_id if not user.load(): return if category not in ['fundraising', 'service', 'flex', 'attendance']: print('category was', category) return user[category] += amount user.save()
def search_user(): key = request.args.get('key') val = request.args.get('val') if not key and val: return Response('Query string requires "key" and "val" arguments.', status=http.BAD_REQUEST) user = User() user[key] = val if not user.load(key): return Response('User not found.', status=http.NOT_FOUND) return Response(dumps(user), status=http.FOUND, mimetype="application/json")
def test_register(client, auth): """ Test that registration page opens up """ resp = client.get("/register") assert resp.status_code == 200 response = auth.register() assert response.status_code == 200 user = User.objects(username="******").first() assert user is not None
def account(): username_form = UpdateUsernameForm() password_form = UpdatePasswordForm() profile_pic_form = UpdateProfilePicForm() if password_form.validate_on_submit(): hashed = bcrypt.generate_password_hash( password_form.new_password.data).decode("utf-8") msg = Message('Password Change', sender='*****@*****.**', recipients=[str(temp.email)]) msg.body = "Your password has been updated! Please reply to this e-mail if you did not request this change." mail.send(msg) current_user.modify(password=hashed) current_user.save() return redirect(url_for('users.account')) if username_form.validate_on_submit(): temp = User.objects(username=current_user.username).first() current_user.username = username_form.username.data msg = Message('Username Change', sender='*****@*****.**', recipients=[str(temp.email)]) msg.body = "Your username has been updated!\nYour new username is: " + str( username_form.username.data) mail.send(msg) current_user.modify(username=username_form.username.data) current_user.save() return redirect(url_for('users.account')) if profile_pic_form.validate_on_submit(): img = profile_pic_form.propic.data filename = secure_filename(img.filename) if current_user.profile_pic.get() is None: current_user.profile_pic.put(img.stream, content_type='images/png') else: current_user.profile_pic.replace(img.stream, content_type='images/png') current_user.save() return redirect(url_for('users.account')) image = images(current_user.username) return render_template("account.html", title="Account", username_form=username_form, password_form=password_form, profile_pic_form=profile_pic_form, image=image)
def test_subscriptions(my_app, my_db): with my_app.app_context(): user = User(username='******', password='******', email='*****@*****.**') quote = Quote(ticker_name='TEST', exchange='TEST', timezone='TEST', current_price='TEST', change='TEST', change_percent='TEST', last_updated=datetime.now()) user.subscriptions.append(quote) my_db.session.add(user) my_db.session.commit() assert len(Quote.query.all()[0].users) == 1 assert len(User.query.all()[0].subscriptions) == 1 #add another user user2 = User(username='******', password='******', email='*****@*****.**') user2.subscriptions.append(quote) my_db.session.add(user2) my_db.session.commit() assert len(Quote.query.all()[0].users) == 2 assert len(User.query.all()[1].subscriptions) == 1 #delete user 1 and assert quote object is not deleted my_db.session.delete(user) my_db.session.commit() assert len(Quote.query.all()) == 1 assert len(User.query.all()) == 1 #test deleting subscription user2.subscriptions.remove(quote) my_db.session.commit() #quote has to be manually deleted i think... assert len(Quote.query.all()[0].users) == 0 assert len(User.query.all()) == 1 #clear db my_db.drop_all()
def validate(self): if not Form.validate(self): return False if self.nickname.data == self.original_nickname: return True if self.nickname.data != User.make_valid_nickname(self.nickname.data): self.nickname.errors.append(gettext('This nickname has invalid characters. Please use letters, numbers, dots and underscores only.')) return False user = User.query.filter_by(nickname=self.nickname.data).first() if user is not None: self.nickname.errors.append(gettext('This nickname is already in use. Please choose another one.')) return False return True
def promote_user(): key = request.args.get('key') val = request.args.get('val') if not key and val: return Response('Query string requires "key" and "val" arguments.', status=http.BAD_REQUEST) user = User() user[key] = val if not user.load(key): return Response('User not found.', status=http.NOT_FOUND) user['is_officer'] = True user.save() return Response('Promoted user.', status=http.OK) # @mod.route('/demote_user', methods=['GET']) # @auth_required # @officer_required # def demote_user(): # key = request.args.get('key') # val = request.args.get('val') # if not key and val: # return Response('Query string requires "key" and "val" arguments.', status=http.BAD_REQUEST) # user = User() # user[key] = val # if not user.load(key): # return Response('User not found.', status=http.NOT_FOUND) # user['is_officer'] = False # user.save() # return Response('Demoted user.' status=http.OK)
def oauth2callback(): resp = google.authorized_response() if resp is None: return 'Access denied: reason=%s error=%s.' % ( request.args['error_reason'], request.args['error_description'] ) session['google_token'] = (resp['access_token'], '') me = google.get('userinfo') if me.data.get('email').lower() not in current_app.config.get('WHITELIST'): return redirect(url_for('static.index')) else: # load the user user = User() user['email'] = me.data.get('email') user['first_name'] = me.data.get('given_name') user['last_name'] = me.data.get('family_name') if not user.load(key='email'): user.save() login_user(user) return redirect(url_for('members.dashboard'))
def test_follow(self): u1 = User(nickname='john', email='*****@*****.**') u2 = User(nickname='susan', email='*****@*****.**') db.session.add(u1) db.session.add(u2) db.session.commit() assert u1.unfollow(u2) is None u = u1.follow(u2) db.session.add(u) db.session.commit() assert u1.follow(u2) is None assert u1.is_following(u2) assert u1.followed.count() == 1 assert u1.followed.first().nickname == 'susan' assert u2.followers.count() == 1 assert u2.followers.first().nickname == 'john' u = u1.unfollow(u2) assert u is not None db.session.add(u) db.session.commit() assert not u1.is_following(u2) assert u1.followed.count() == 0 assert u2.followers.count() == 0
def test_follow_posts(self): # make four users u1 = User(nickname='john', email='*****@*****.**') u2 = User(nickname='susan', email='*****@*****.**') u3 = User(nickname='mary', email='*****@*****.**') u4 = User(nickname='david', email='*****@*****.**') db.session.add(u1) db.session.add(u2) db.session.add(u3) db.session.add(u4) # make four posts utcnow = datetime.utcnow() p1 = Post(body="post from john", author=u1, timestamp=utcnow + timedelta(seconds=1)) p2 = Post(body="post from susan", author=u2, timestamp=utcnow + timedelta(seconds=2)) p3 = Post(body="post from mary", author=u3, timestamp=utcnow + timedelta(seconds=3)) p4 = Post(body="post from david", author=u4, timestamp=utcnow + timedelta(seconds=4)) db.session.add(p1) db.session.add(p2) db.session.add(p3) db.session.add(p4) db.session.commit() # setup the followers u1.follow(u1) # john follows himself u1.follow(u2) # john follows susan u1.follow(u4) # john follows david u2.follow(u2) # susan follows herself u2.follow(u3) # susan follows mary u3.follow(u3) # mary follows herself u3.follow(u4) # mary follows david u4.follow(u4) # david follows himself db.session.add(u1) db.session.add(u2) db.session.add(u3) db.session.add(u4) 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() assert len(f1) == 3 assert len(f2) == 2 assert len(f3) == 2 assert len(f4) == 1 assert f1 == [p4, p2, p1] assert f2 == [p3, p2] assert f3 == [p4, p3] assert f4 == [p4]
def test_avatar(self): u = User(nickname='john', email='*****@*****.**') avatar = u.avatar(128) expected = 'http://www.gravatar.com/avatar/d4c74594d841139328695756648b6bd6' assert avatar[0:len(expected)] == expected
def get_user(user_id): user = User() user['_id'] = user_id user.load() return user