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)
class TeamChallengeSerializer(serializers.ModelSerializer): challenge = ChallengeSerializer() class Meta: model = Team fields = ('id', 'team_name', 'challenge')
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)
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)
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)
class ChallengeParticipantTeamSerializer(serializers.Serializer): """Serializer to initialize Challenge and Participant's Team""" challenge = ChallengeSerializer() participant_team = ParticipantTeamSerializer()
class ChallengeParticipantTeamSerializer(serializers.Serializer): challenge = ChallengeSerializer() participant_team = ParticipantTeamSerializer()