def test_add_favorite(self): u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') db.session.add(u1) db.session.add(u2) db.session.commit() self.assertEqual(u1.favorited.all(), []) self.assertEqual(u2.fans.all(), []) u1.add_favorite(u2) db.session.commit() self.assertTrue(u1.is_favorite(u2)) self.assertEqual(u1.favorited.count(), 1) self.assertEqual(u1.favorited.first().username, 'susan') self.assertEqual(u2.fans.count(), 1) self.assertEqual(u2.fans.first().username, 'john') u1.remove_favorite(u2) db.session.commit() self.assertFalse(u1.is_favorite(u2)) self.assertEqual(u1.favorited.count(), 0) self.assertEqual(u2.fans.count(), 0)
def user(email=None): if email is None: email = current_user.email user_from_db = db.users.find_one({"email": email}) if user_from_db is None: abort(404) user_ = User(id=user_from_db['_id'], email=user_from_db['email'], password_hash=user_from_db['password_hash'], favorites=user_from_db['favorites']) games, gameless_favorites = user_.get_all_favorites() if request.method == 'POST': if request.form.get('favorites'): if request.form['favorites'] in current_app.config['FAVORITES']: _, not_added = user_.add_favorite([request.form['favorites']]) if not_added: flash(request.form['favorites'] + ' was already included in your favorites') else: flash('Added ' + request.form['favorites'] + ' to favorites') else: flash('Invalid Selection') else: if request.form.get( 'remove_favorites') in current_user.favorites_list: result = user_.remove_favorites( [request.form.get('remove_favorites')]) flash('Removed ' + request.form['remove_favorites'] + ' from favorites') else: flash('Invalid Selection') return redirect(url_for('main.user', email=current_user.email)) return render_template('user.html', user=user_, games=games, gameless_fav=gameless_favorites, cur_fav=current_user.favorites_list, mylist=current_app.config['FAVORITES'])
def test_favorites_posts(self): # create four users u1 = User(username='******', email='*****@*****.**') u2 = User(username='******', email='*****@*****.**') u3 = User(username='******', email='*****@*****.**') u4 = User(username='******', email='*****@*****.**') db.session.add_all([u1, u2, u3, u4]) # create four posts now = datetime.utcnow() p1 = Post(body="post from john", author=u1, timestamp=now + timedelta(seconds=1)) p2 = Post(body="post from susan", author=u2, timestamp=now + timedelta(seconds=4)) p3 = Post(body="post from mary", author=u3, timestamp=now + timedelta(seconds=3)) p4 = Post(body="post from david", author=u4, timestamp=now + timedelta(seconds=2)) db.session.add_all([p1, p2, p3, p4]) db.session.commit() # setup the favorites of each user u1.add_favorite(u2) # john add_favorites susan u1.add_favorite(u4) # john add_favorites david u2.add_favorite(u3) # susan add_favorites mary u3.add_favorite(u4) # mary follows david db.session.commit() # check the posts of each user's favorite users f1 = u1.favorite_posts().all() f2 = u2.favorite_posts().all() f3 = u3.favorite_posts().all() f4 = u4.favorite_posts().all() self.assertEqual(f1, [p2, p4]) self.assertEqual(f2, [p3]) self.assertEqual(f3, [p4]) self.assertEqual(f4, [])