Пример #1
0
    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)
Пример #2
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'])
Пример #3
0
    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, [])