def test_get_recent_achievements_no_relevant_achievements_to_filter(self):
        """
        Tests get_recently_started_achievements() when the user does not have progress relevant
        to the achievements in the given achievement list.
        """
        achievementProgress1 = Customer_Achievement_Progress(uid=5,
                                                             aid=5,
                                                             progress=2,
                                                             total=5)
        achievementProgress2 = Customer_Achievement_Progress(uid=6,
                                                             aid=12,
                                                             progress=1,
                                                             total=3)
        achievementProgress3 = Customer_Achievement_Progress(uid=5,
                                                             aid=13,
                                                             progress=3,
                                                             total=6)
        db.session.add(achievementProgress1)
        db.session.add(achievementProgress2)
        db.session.add(achievementProgress3)
        db.session.commit()

        achievement_list = self.achievement_list_helper()
        self.assertEqual(
            achievementhelper.get_recently_started_achievements(
                achievement_list, 5), [])
 def test_get_recent_achievements_no_progress_to_filter(self):
     """
     Tests get_recently_started_achievements() when the given user has no progress entries.
     """
     achievement_list = self.achievement_list_helper()
     self.assertEqual(
         achievementhelper.get_recently_started_achievements(
             achievement_list, 5), [])
    def test_get_recent_achievements_less_than_three_matches(self):
        """
        Tests get_recently_started_achievements() when the user has less than three incomplete
        progress entries relevant to the given achievement list.
        """
        ac1 = Achievements(aid=11,
                           rid=12,
                           name='test 3',
                           experience=15,
                           points=20,
                           type=1,
                           value='test')
        ac2 = Achievements(aid=12,
                           rid=12,
                           name='test 2',
                           experience=15,
                           points=15,
                           type=1,
                           value='test')
        db.session.add(ac1)
        db.session.add(ac2)
        achievementProgress1 = Customer_Achievement_Progress(uid=5,
                                                             aid=11,
                                                             progress=2,
                                                             total=5)
        achievementProgress2 = Customer_Achievement_Progress(uid=5,
                                                             aid=12,
                                                             progress=1,
                                                             total=3)
        db.session.add(achievementProgress1)
        db.session.add(achievementProgress2)
        db.session.commit()

        achievement_list = self.achievement_list_helper()
        self.assertEqual(
            achievementhelper.get_recently_started_achievements(
                achievement_list, 5), [{
                    "aid": 12,
                    "name": "test 3",
                    "description": "description 3",
                    "experience": 15,
                    "points": 15,
                    "progressMax": 3,
                    "progress": 1,
                    "status": 1,
                    "expired": 0
                }, {
                    "aid": 11,
                    "name": "test 2",
                    "description": "description 2",
                    "experience": 15,
                    "points": 20,
                    "progressMax": 5,
                    "progress": 2,
                    "status": 1,
                    "expired": 0
                }])
    def test_get_recent_achievements_only_complete_achievements(self):
        """Tests get_recently_started_achievements() when the user only has complete progress (progress
        = progressMax) relevant to the achievements in the given achievement list."""
        achievementProgress1 = Customer_Achievement_Progress(uid=5,
                                                             aid=11,
                                                             progress=5,
                                                             total=5)
        achievementProgress2 = Customer_Achievement_Progress(uid=5,
                                                             aid=12,
                                                             progress=3,
                                                             total=3)
        db.session.add(achievementProgress1)
        db.session.add(achievementProgress2)
        db.session.commit()

        achievement_list = self.achievement_list_helper()
        self.assertEqual(
            achievementhelper.get_recently_started_achievements(
                achievement_list, 5), [])
    def test_get_recent_achievements_no_achievements_to_filter(self):
        """
        Tests get_recently_started_achievements() when the given achievement list to
        filter is empty.
        """
        achievementProgress1 = Customer_Achievement_Progress(uid=5,
                                                             aid=10,
                                                             progress=3,
                                                             total=6)
        achievementProgress2 = Customer_Achievement_Progress(uid=5,
                                                             aid=11,
                                                             progress=1,
                                                             total=5)
        db.session.add(achievementProgress1)
        db.session.add(achievementProgress2)
        db.session.commit()

        self.assertEqual(
            achievementhelper.get_recently_started_achievements([], 5), [])