def test_exercise_model(self):
        """Test basic exercise model."""

        # Create test exercises
        e1 = Exercise(name="Bench Press",
                      description="Chest exercise",
                      category_id=10)
        e1.id = 500
        e2 = Exercise(name="Triceps Pushdown",
                      description="Triceps exercise",
                      category_id=11)
        e2.id = 501

        db.session.add_all([e1, e2])

        db.session.commit()

        e = Exercise.query.all()

        self.assertEqual(len(e), 2)
        self.assertEqual(e[0].id, e1.id)
        self.assertEqual(e[0].name, "Bench Press")
        self.assertEqual(e[0].description, "Chest exercise")
        self.assertEqual(e[1].id, e2.id)
        self.assertEqual(e[1].name, "Triceps Pushdown")
        self.assertEqual(e[1].description, "Triceps exercise")
    def test_user_exercise_model(self):
        """Test adding exercises to a user's exercises functionality."""

        # Create test exercises
        e1 = Exercise(name="Bench Press",
                      description="Chest exercise",
                      category_id=10)
        e1.id = 500
        e2 = Exercise(name="Triceps Pushdown",
                      description="Triceps exercise",
                      category_id=11)
        e2.id = 501

        # Create test user
        u = User.register("testing1", "password", "*****@*****.**", "John",
                          "Doe", None)
        u.id = 777

        db.session.add_all([e1, e2])

        ue1 = UserExercise(user_id=u.id, exercise_id=e1.id)
        ue2 = UserExercise(user_id=u.id, exercise_id=e2.id)

        db.session.add_all([ue1, ue2])

        db.session.commit()

        exc = UserExercise.query.filter_by(user_id=u.id)

        self.assertEqual(exc.count(), 2)
        self.assertEqual(exc[0].exercise_id, e1.id)
        self.assertEqual(exc[1].exercise_id, e2.id)
    def test_exercise_comment_model(self):
        """Test user commentting functionality on an exercise."""

        # Create test exercises
        e1 = Exercise(name="Bench Press",
                      description="Chest exercise",
                      category_id=10)
        e1.id = 500
        e2 = Exercise(name="Triceps Pushdown",
                      description="Triceps exercise",
                      category_id=11)
        e2.id = 501

        # Create test user
        u = User.register("testing1", "password", "*****@*****.**", "John",
                          "Doe", None)
        u.id = 777

        db.session.add_all([e1, e2])

        uc1 = ExerciseComment(content="Test1", user_id=u.id, exercise_id=e1.id)
        uc2 = ExerciseComment(content="Test2", user_id=u.id, exercise_id=e2.id)

        db.session.add_all([uc1, uc2])

        db.session.commit()

        ucs = ExerciseComment.query.filter_by(user_id=u.id)

        self.assertEqual(ucs.count(), 2)
        self.assertEqual(ucs[0].exercise_id, e1.id)
        self.assertEqual(ucs[0].user_id, u.id)
        self.assertEqual(ucs[1].exercise_id, e2.id)
        self.assertEqual(ucs[1].user_id, u.id)