def post_account():
    # Flask apparently throws 400 errors if POST form data isn't present.
    # Full name
    user_id = session['user_id']
    location = settings.get_user(user_id)['feed_location']
    user = User(local_url=location)

    if request.form.get('full_name_changed') == 'true':
        user.full_name = request.form['full_name']
    # Username
    if request.form.get('username_changed') == 'true':
        username= request.form['username']
        if len(username) > 0:
            user.username = username
    # Bio
    if request.form.get('bio_changed') == 'true':
        user.description = request.form['bio']
    # Email
    if request.form.get('email_changed') == 'true':
        email = request.form['email']
        user_dict = settings.get_user(user_id)
        user_dict['email'] = email
        settings.add_user(user_dict)
    # Password
    if request.form.get('password_changed') == 'true':
        password = request.form['password']
        password_confirm = request.form['password_confirm']
        if password == password_confirm:
            user_dict = settings.get_user(user_id)
            user_dict['pwd_hash'] = generate_password_hash(password)
            settings.add_user(user_dict)
    # Language
    if request.form.get('language_changed') == 'true':
        user.language = request.form['language']
    return render_template('account.html', user=user, error='Your settings have been saved.')
 def test_local_description(self):
     description = 'just some guy or gal... lol #NoFilter'
     user = User(local_url='user/feed.xml')
     try:
         user.description = description
     except Exception as e:
         print e
         self.fail('Setting local user description failed.')
     self.assertEqual(user.description, description)
 def test_cached_description(self):
     description = 'test 1, 2, 3. Is this thing on?'
     user = User(entries={ 'description': description })
     description = 'some new description'
     try:
         user.description = description
     except Exception as e:
         print e
         self.fail('Setting cached user description failed.')
     self.assertEqual(user.description, description)