예제 #1
0
    def list(self, request, *args, **kwargs):
        latest_submissions = Submission.fetch_last_10_submissions_for_unique_challenges_by_user(
            user_id=request.user.id)

        latest_challenges = [
            submission.challenge for submission in latest_submissions
        ]

        return Response(data=LimitedChallengeSerializer(
            latest_challenges, many=True, context={
                'request': request
            }).data)
예제 #2
0
    def test_fetch_last_10_submissions_for_unique_challenges_by_author(self):
        """ The method should return the last 10 submissions for unique challenges by the author """
        for _ in range(20):
            # Create 20 submissions
            SubmissionFactory(author=self.auth_user)
        for _ in range(10):
            # Create last 10 submissions for one challenge
            SubmissionFactory(author=self.auth_user, challenge=self.challenge)

        latest_unique_submissions = Submission.fetch_last_10_submissions_for_unique_challenges_by_user(user_id=self.auth_user.id)

        # the first one should be for self.challenge, since we made it last
        self.assertEqual(latest_unique_submissions[0].challenge, self.challenge)

        # they should all be for unique challenges
        unique_challenge_ids = set([s.challenge.id for s in latest_unique_submissions])
        self.assertEqual(10, len(unique_challenge_ids))