Example #1
0
    def test_view_challenge(self):
        response = self.client.get(f'/challenges/{self.challenge.id}',
                                   HTTP_AUTHORIZATION=self.auth_token)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            ChallengeSerializer(self.challenge).data, response.data)
Example #2
0
class TeamChallengeSerializer(serializers.ModelSerializer):

    challenge = ChallengeSerializer()

    class Meta:
        model = Team
        fields = ('id', 'team_name', 'challenge')
Example #3
0
 def get(self, request, query):
     queryset = self.get_queryset(query)
     data = {
         'title': 'All Challenges',
         'page_name': 'All',
         'challenges': ChallengeSerializer(queryset, many=True).data
     }
     return Response(data)
Example #4
0
 def __init__(self, *args, **kwargs):
     super(TeamSerializer, self).__init__(*args, **kwargs)
     context = kwargs.get('context')
     if context:
         challenge = context.get('challenge')
         kwargs['data']['challenge'] = challenge.id
     else:
         self.fields['challenge'] = ChallengeSerializer()
    def test_serializes_comments_and_sorts_by_creation_date(self):
        c = Challenge.objects.create(name='Hello', difficulty=5, score=10, test_case_count=5, category=self.sub_cat,
                                     description=self.sample_desc)
        c.add_comment(author=self.auth_user, content='1Hello :)')
        c.add_comment(author=self.auth_user, content='Hello 2')
        serializer = ChallengeSerializer(c)
        comments = ChallengeComment.objects.all().order_by('-created_at')

        expected_data = ChallengeCommentSerializer(many=True, instance=comments).data
        self.assertEqual(expected_data, serializer.data['comments'])
    def test_serialization(self):
        c = Challenge.objects.create(name='Hello', difficulty=5, score=10, test_case_count=5, category=self.sub_cat,
                                     description=self.sample_desc)
        c.supported_languages.add(*[self.rust_lang, self.c_lang, self.python_lang])

        expected_description_data = ChallengeDescriptionSerializer(instance=self.sample_desc).data
        expected_data = {
            'id': c.id, 'name': c.name, 'difficulty': c.difficulty, 'score': c.score,
            'description': expected_description_data, 'test_case_count': c.test_case_count,
            'category': c.category.name, 'supported_languages': [lang.name for lang in c.supported_languages.all()],
            'comments': []
        }

        received_data = ChallengeSerializer(c).data
        self.assertEqual(received_data, expected_data)
Example #7
0
def get_participant_team_challenge_list(request, participant_team_pk):
    """
    Returns a challenge list in which the participant team has participated.
    """
    try:
        participant_team = ParticipantTeam.objects.get(
            pk=participant_team_pk)
    except ParticipantTeam.DoesNotExist:
        response_data = {'error': 'Participant Team does not exist'}
        return Response(response_data, status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        challenge = Challenge.objects.filter(participant_teams=participant_team).order_by('-id')
        paginator, result_page = paginated_queryset(challenge, request)
        serializer = ChallengeSerializer(
            result_page, many=True, context={'request': request})
        response_data = serializer.data
        return paginator.get_paginated_response(response_data)
Example #8
0
class ChallengeParticipantTeamSerializer(serializers.Serializer):
    """Serializer to initialize Challenge and Participant's Team"""

    challenge = ChallengeSerializer()
    participant_team = ParticipantTeamSerializer()
Example #9
0
class ChallengeParticipantTeamSerializer(serializers.Serializer):
    challenge = ChallengeSerializer()
    participant_team = ParticipantTeamSerializer()