def test_message_model(self): """Create a user with a message to test""" hashed_pwd1 = bcrypt.generate_password_hash("HASHED_PASSWORD1").decode('UTF-8') user1 = User(email="*****@*****.**", username="******", password=hashed_pwd1) db.session.add(user1) db.session.commit() message1 = Message(text="TestMessage", user_id=user1.id) db.session.add(message1) db.session.commit() """Test get_message_by_id""" testmessage = Message.get_message_by_id(message1.id) self.assertEqual(user1.id, testmessage.user_id) """Test add_like""" hashed_pwd2 = bcrypt.generate_password_hash("HASHED_PASSWORD2").decode('UTF-8') user2 = User(email="*****@*****.**", username="******", password=hashed_pwd2) db.session.add(user2) db.session.commit() Likes.add_like(user2.id, message1.id) db.session.commit() self.assertEqual(user2.likes[0].id, message1.id) """Test delete_like""" before = len(user2.likes) Likes.delete_like(user2.id, message1.id) db.session.commit() after = len(user2.likes) self.assertEqual(before - 1, after)
def do_like(): """Handle likes from javascript""" message_id = request.form["message_id"] if int(message_id) in [x.id for x in g.user.likes]: Likes.delete_like(g.user.id, message_id) else: Likes.add_like(g.user.id, message_id) db.session.commit() return 'None'
def add_like(message_id): """Add a like to a post for the logged in user""" if not g.user: flash("Access unauthorized.", "danger") return redirect("/") Likes.add_like(g.user.id, message_id) return "Liked"
def add_like(msg_id): if not g.user: flash("Access unauthorized.", "danger") return redirect("/") message = Message.query.get_or_404(msg_id) like = Likes.add_like(g.user.id, msg_id) db.session.add(like) db.session.commit() return redirect('/')