def test_modify_post_from_db(self): """Tests that a Post Object can be modified and recommited.""" self.add_post() post = Post.query.first() now = datetime.now() post.title = "Test Post" post.gfm_content = gfm("Test Content") post.created = now post.slug = slugify(post.title) tag = Tag("Test Tag") post.tags = [tag] cat = Category("Test Category") post.category = cat user = User("Test User") post.author = user self.add_post(post) post = Post.query.first() self.assertEquals(post.title, "Test Post") self.assertEquals(post.gfm_content, gfm("Test Content")) self.assertEquals(post.created, now) self.assertEquals(post.tags, [tag]) self.assertEquals(post.slug, slugify(post.title)) self.assertEquals(post.category, cat) self.assertEquals(post.author, user) self.remove_post(post)
def edit_profile(): """ Allow User to edit their profile info """ form = EditForm(request.form) user = g.user if form.validate_on_submit(): # Checking if someone is trying to change their email to another user's. otherUser = User.query.filter_by(netid=form.netid.data, email=form.email.data).first() # The user with the new netid and email either shouldn't exist or # should be the current user. if otherUser is not None and user != otherUser: flash(u'You seem to be trying to change your netid/email' ' to someone else\'s', 'error') return redirect(url_for('users.home')) user.name = form.name.data user.netid = form.netid.data user.email = form.email.data user.standing = form.standing.data user.major = form.major.data user.shirt_size = form.shirt_size.data user.description = gfm(form.description.data) db.session.add(user) db.session.commit() return redirect(url_for('users.home')) return render_template('users/edit.html', user=user, form=form)
def register(): """ Registration Form """ form = RegisterForm(request.form) if form.validate_on_submit(): # If netid and email are unique, create an user instance not yet # stored in the database user = User.query.filter_by(netid=form.netid.data, email=form.email.data).first() if user: flash(u'NetID/Email already registred', 'error') return render_template("users/register.html", form=form) raw_signature = request.form['output'] # Convert drawn signature to base64 encoded image. if raw_signature.find("data:image") == -1: PIL_image = s2i( raw_signature, input_image=os.path.abspath('acm_phoenix/static/packages/signpad2image' '/signpad2image/blanksig.png'), nosig_image=os.path.abspath('acm_phoenix/static/packages/signpad2image' '/signpad2image/nosig.png')) output = StringIO.StringIO() PIL_image.save(output, format='PNG') sig_img = 'data:image/png;base64,' + base64.b64encode(output.getvalue()) output.close() else: sig_img = raw_signature user = User(form.name.data, form.netid.data, form.email.data, form.standing.data, form.major.data, form.shirt_size.data, gfm(form.description.data), sig_img) user.member = True # Insert the record in our database and commit it db.session.add(user) db.session.commit() # Log the user in, as they now have an id session['user_id'] = user.id # flash will display a message to the user flash('Thanks for registering') # If user wants to pay membership now, redirect them to wepay. if form.reg_and_pay.data == True: response = wepay_membership_response(user) # Keep track of user's checkout_id for later lookup on wepay. user.wepay_checkout_id = response['checkout_id'] db.session.add(user) db.session.commit() return redirect(response['checkout_uri']) else: # redirect user to the 'home' method of the user module. return redirect(url_for('users.home')) return render_template('users/register.html', form=form)
def edit_profile(): """ Allow User to edit their profile info """ form = EditForm(request.form) user = g.user if form.validate_on_submit(): # Checking if someone is trying to change their email to another user's. otherUser = User.query.filter_by(netid=form.netid.data, email=form.email.data).first() # The user with the new netid and email either shouldn't exist or # should be the current user. if otherUser is not None and user != otherUser: flash( u'You seem to be trying to change your netid/email' ' to someone else\'s', 'error') return redirect(url_for('users.home')) user.name = form.name.data user.netid = form.netid.data user.email = form.email.data user.standing = form.standing.data user.major = form.major.data user.shirt_size = form.shirt_size.data user.description = gfm(form.description.data) db.session.add(user) db.session.commit() return redirect(url_for('users.home')) return render_template('users/edit.html', user=user, form=form)
def __init__(self, title='', gfm_content='', created=None, tags=[], slug=None, category=None, author=None): self.title = title self.gfm_content = gfm(gfm_content) self.created = created or datetime.now() self.tags = tags self.slug = slugify(title) self.category = category self.author = author
def test_default_post_values(self): """Tests that the values for a default Post are as expected.""" now = datetime.now() self.add_post() post = Post.query.first() later = datetime.now() self.assertEquals(post.title, '') self.assertEquals(post.gfm_content, gfm('')) self.assertEquals(post.slug, slugify(post.title)) self.assertIsNone(post.author) self.assertIsNone(post.category) self.assertEquals(post.tags, []) self.assertGreaterEqual(post.created, now) self.assertLessEqual(post.created, later) self.remove_post(post)
def test_create_post_with_ctor(self): """Tests the constructor for the Post Model.""" now = datetime.now() tag = Tag("Test Tag") category = Category("Test Category") user = User("Test User") post = Post("Test Post", "## Test H2", now, [tag], None, category, user) self.add_post(post) post = Post.query.first() self.assertEquals(post.title, "Test Post") self.assertEquals(post.gfm_content, gfm("## Test H2")) self.assertEquals(post.created, now) self.assertEquals(post.tags, [tag]) self.assertEquals(post.slug, slugify(post.title)) self.assertEquals(post.category, category) self.assertEquals(post.author, user) self.remove_post(post)
def register(): """ Registration Form """ form = RegisterForm(request.form) if form.validate_on_submit(): # If netid and email are unique, create an user instance not yet # stored in the database user = User.query.filter_by(netid=form.netid.data, email=form.email.data).first() if user: flash(u'NetID/Email already registred', 'error') return render_template("users/register.html", form=form) raw_signature = request.form['output'] # Convert drawn signature to base64 encoded image. if raw_signature.find("data:image") == -1: PIL_image = s2i(raw_signature, input_image=os.path.abspath( 'acm_phoenix/static/packages/signpad2image' '/signpad2image/blanksig.png'), nosig_image=os.path.abspath( 'acm_phoenix/static/packages/signpad2image' '/signpad2image/nosig.png')) output = StringIO.StringIO() PIL_image.save(output, format='PNG') sig_img = 'data:image/png;base64,' + base64.b64encode( output.getvalue()) output.close() else: sig_img = raw_signature user = User(form.name.data, form.netid.data, form.email.data, form.standing.data, form.major.data, form.shirt_size.data, gfm(form.description.data), sig_img) user.member = True # Insert the record in our database and commit it db.session.add(user) db.session.commit() # Log the user in, as they now have an id session['user_id'] = user.id # flash will display a message to the user flash('Thanks for registering') # If user wants to pay membership now, redirect them to wepay. if form.reg_and_pay.data == True: response = wepay_membership_response(user) # Keep track of user's checkout_id for later lookup on wepay. user.wepay_checkout_id = response['checkout_id'] db.session.add(user) db.session.commit() return redirect(response['checkout_uri']) else: # redirect user to the 'home' method of the user module. return redirect(url_for('users.home')) return render_template('users/register.html', form=form)