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_remote_language(self):
     language = 'en'
     user = User(remote_url='http://microblog.brianschrader.com/feed')
     try:
         # should fail.
         user.language = language
         self.fail('setting a remote user should be forbidden.')
     except Exception as e:
         pass
 def test_local_language(self):
     language = 'en'
     user = User(local_url='user/feed.xml')
     try:
         user.language = language
     except Exception as e:
         print e
         self.fail('Setting local user language failed.')
     self.assertEqual(user.language, language)
 def test_cached_language(self):
     language = 'en'
     user = User(entries={ 'language': language })
     language = 'http://example.net'
     try:
         user.language = language
     except Exception as e:
         print e
         self.fail('Setting cached language failed.')
     self.assertEqual(user.language, language)