def home():
    """ Shows the user's timeline or if no user is logged in it
    will redirect to the user's public timeline (their most
    recent posts) for public viewing. """
    # Not logged in and multi-user mode.
    if 'user_id' not in session and not settings.get('single_user_mode'):
        return render_template('welcome.html')
    # Not logged in and single-user mode.
    elif 'user_id' not in session and settings.get('single_user_mode'):
        user_id = settings.get('single_user_id')
        username = settings.get_user(user_id)['username']
        return redirect(url_for('get_user_profile', username=username))
    # Logged in
    elif 'user_id' in session:
        user_id = session['user_id']
    # Single-user mode, but no user yet.
    elif settings.get('single_user_mode') and settings.get('single_user_id') is None:
        return redirect(url_for('get_register'))
    # Single-user mode, user exists.
    else:
        user_id = settings.get('single_user_id')
    link = settings.get('registered_users').get(user_id).get('feed_location')
    user = User(local_url=link)
    posts = user.home_timeline()
    auth = True if 'user_id' in session else False
    return render_template('timeline.html', posts=posts, user=user,
            page_type='timeline', auth=auth)
 def test_home_timeline(self):
     user = User(local_url='user/feed.xml')
     timeline = user.home_timeline()
     self.assertTrue(len(timeline) > 0)