def test_approved_feed_population(self): """Ensure only approved users get approved posts but in there feed.""" # Create a user to test creating post user1 = create_account('user1', '*****@*****.**', 'Password') user2 = create_account('user2', '*****@*****.**', 'Password') user3 = create_account('user3', '*****@*****.**', 'Password') follow_user(user2, user1) follow_user(user3, user1) approve_user(user1, user2) create_post(user1, 'user1', 'Test post', permission=K.PERM_APPROVED) self.assertEqual(len(get_feed(user2).items), 1) self.assertEqual(len(get_feed(user3).items), 0)
def test_get_feed_pagination_sizes(self): """Ensure that getting the feed at different pagination sizes work""" user1 = create_account('user1', '*****@*****.**', 'Password') user2 = create_account('user2', '*****@*****.**', 'Password') follow_user(user1, user2) # Create lots of posts so they apear in user1's feed. for i in xrange(101): create_post(user2, 'user2', 'Post {}'.format(i)) FEED_ITEMS_PER_PAGE = app.config.get('FEED_ITEMS_PER_PAGE') self.assertEqual(len(get_feed(user1).items), FEED_ITEMS_PER_PAGE) self.assertEqual(len(get_feed(user1, per_page=25).items), 25) self.assertEqual(len(get_feed(user1, per_page=50).items), 50) self.assertEqual(len(get_feed(user1, per_page=100).items), 100)
def test_get_feed(self): """ Attempt to get a users feed under certain circumstances. """ # Get test user user1 = create_account('user1', '*****@*****.**', 'Password') # Ensure an empty feed is returned. Remember these are paginations self.assertEqual(len(get_feed(user1).items), 0) # Ensure a users own post is added to thier feed post1 = create_post(user1, 'user1', 'Test post') # Ensure the list is the correct length self.assertEqual(len(get_feed(user1).items), 1) self.assertEqual(get_feed(user1).total, 1) # Ensure the item is in Redis self.assertIn(post1, r.zrange(K.USER_FEED.format(user1), 0, -1)) # Create a second user, make 1 follow them, make then post and ensure # that the new users post appears in user 1s feed user2 = create_account('user2', '*****@*****.**', 'Password') follow_user(user1, user2) post2 = create_post(user2, 'user2', 'Test post') # Check user 1's feed for the next item self.assertEqual(len(get_feed(user1).items), 2) self.assertEqual(get_feed(user1).total, 2) # Ensure the item is in Redis self.assertIn(post2, r.zrange(K.USER_FEED.format(user1), 0, -1)) # Delete user 2 and ensure user 1's feed cleans itself delete_account(user2) self.assertEqual(len(get_feed(user1).items), 1) self.assertEqual(get_feed(user1).total, 1) # Ensure the item is not in Redis self.assertNotIn(post2, r.zrange(K.USER_FEED.format(user1), 0, -1))
def feed(): """ Returns the users feed """ if not current_user: return redirect(url_for('signin')) # Pagination page = handle_page(request) # Get feed pagination pagination = get_feed(current_user.get('uid'), page) # Post form post_form = PostForm() return render_template('feed.html', pagination=pagination, post_form=post_form)
def feed(): """Displays the users feed or redirects the user to the signin if they are not already signed in. """ if not current_user: return redirect(url_for('auth.signin')) # Pagination page = handle_page(request) # Get feed pagination pagination = get_feed(current_user.get('_id'), page) # Post form post_form = PostForm() return render_template('feed.html', pagination=pagination, post_form=post_form)
def feed(): """Displays the users feed or redirects the user to the signin if they are not already signed in. """ if not current_user: form = SignInForm(request.form) return render_template('landing.html', form=form) # Pagination page = handle_page(request) # Get feed pagination pagination = get_feed(current_user.get('_id'), page, current_user.get('feed_pagination_size')) # Post form post_form = PostForm() return render_template('feed.html', pagination=pagination, post_form=post_form)
def feed(): """Displays the users feed or redirects the user to the signin if they are not already signed in. """ if not current_user: return redirect(url_for('auth.signin')) # Pagination page = handle_page(request) # Get feed pagination pagination = get_feed(current_user.get('_id'), page, current_user.get('feed_pagination_size')) # Post form post_form = PostForm() return render_template('feed.html', pagination=pagination, post_form=post_form)