我们从Python开源项目中,提取了以下49个代码示例,用于说明如何使用rest_framework.status.HTTP_406_NOT_ACCEPTABLE。
def test_split_payment_methods_conflict(self): self.login(is_staff=True) basket_id = self._prepare_basket() # Try and pay_in_full with two methods, isn't allow because it doesn't make sense data = self._get_checkout_data(basket_id) data['payment'] = { 'credit-card': { 'enabled': True, 'pay_balance': True, }, 'cash': { 'enabled': True, 'pay_balance': True, }, } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment']['non_field_errors'][0], 'Can not set pay_balance flag on multiple payment methods.')
def test_split_payment_methods_missing_pay_balance(self): self.login(is_staff=True) basket_id = self._prepare_basket() # Try and pay_in_full with two methods, isn't allow because it doesn't make sense data = self._get_checkout_data(basket_id) data['payment'] = { 'credit-card': { 'enabled': True, 'pay_balance': False, 'amount': '2.00' }, 'cash': { 'enabled': True, 'pay_balance': False, 'amount': '8.00' }, } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment']['non_field_errors'][0], 'Must set pay_balance flag on at least one payment method.')
def post(self, request, format=None): # Get the patient if present or result None. ser = self.serializer_class( data=request.data, context={'request': request} ) if ser.is_valid(): token = PhoneToken.create_otp_for_number( request.data.get('phone_number') ) if token: phone_token = self.serializer_class( token, context={'request': request} ) return Response(phone_token.data) return Response({ 'reason': "you can not have more than {n} attempts per day, please try again tomorrow".format( n=getattr(settings, 'PHONE_LOGIN_ATTEMPTS', 10))}, status=status.HTTP_403_FORBIDDEN) return Response( {'reason': ser.errors}, status=status.HTTP_406_NOT_ACCEPTABLE)
def post(self, request, format=None): # Get the patient if present or result None. ser = self.serializer_class( data=request.data, context={'request': request} ) if ser.is_valid(): pk = request.data.get("pk") otp = request.data.get("otp") try: user = authenticate(request, pk=pk, otp=otp) if user: last_login = user.last_login login(request, user) response = user_detail(user, last_login) return Response(response, status=status.HTTP_200_OK) except ObjectDoesNotExist: return Response( {'reason': "OTP doesn't exist"}, status=status.HTTP_406_NOT_ACCEPTABLE ) return Response( {'reason': ser.errors}, status=status.HTTP_406_NOT_ACCEPTABLE)
def test_challenge_submission_when_challenge_is_not_active(self): self.url = reverse_lazy('jobs:challenge_submission', kwargs={'challenge_id': self.challenge.pk, 'challenge_phase_id': self.challenge_phase.pk}) self.challenge.end_date = timezone.now() - timedelta(days=1) self.challenge.save() expected = { 'error': 'Challenge is not active' } response = self.client.post(self.url, { 'status': 'submitting', 'input_file': self.input_file}, format="multipart") self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_challenge_submission_when_challenge_phase_is_not_public(self): self.url = reverse_lazy('jobs:challenge_submission', kwargs={'challenge_id': self.challenge.pk, 'challenge_phase_id': self.challenge_phase.pk}) self.challenge_phase.is_public = False self.challenge_phase.save() expected = { 'error': 'Sorry, cannot accept submissions since challenge phase is not public' } response = self.client.post(self.url, { 'status': 'submitting', 'input_file': self.input_file}, format="multipart") self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_change_submission_data_and_visibility_when_challenge_is_not_active(self): self.url = reverse_lazy('jobs:change_submission_data_and_visibility', kwargs={'challenge_pk': self.challenge.pk, 'challenge_phase_pk': self.challenge_phase.pk, 'submission_pk': self.submission.pk}) self.data = { 'method_name': 'Updated Method Name' } self.challenge.end_date = timezone.now() - timedelta(days=1) self.challenge.save() expected = { 'error': 'Challenge is not active' } response = self.client.patch(self.url, self.data) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_add_participant_team_to_challenge_when_some_members_have_already_participated(self): self.url = reverse_lazy('challenges:add_participant_team_to_challenge', kwargs={'challenge_pk': self.challenge.pk, 'participant_team_pk': self.participant_team2.pk}) self.client.post(self.url, {}) expected = { 'error': 'Sorry, other team member(s) have already participated in the Challenge.' ' Please participate with a different team!', 'challenge_id': self.challenge.pk, 'participant_team_id': self.participant_team3.pk, } # submitting the request again as a new team self.url = reverse_lazy('challenges:add_participant_team_to_challenge', kwargs={'challenge_pk': self.challenge.pk, 'participant_team_pk': self.participant_team3.pk}) response = self.client.post(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def remove_self_from_participant_team(request, participant_team_pk): """ A user can remove himself from the participant team. """ try: participant_team = ParticipantTeam.objects.get(pk=participant_team_pk) except ParticipantTeam.DoesNotExist: response_data = {'error': 'ParticipantTeam does not exist!'} return Response(response_data, status=status.HTTP_406_NOT_ACCEPTABLE) try: participant = Participant.objects.get(user=request.user, team__pk=participant_team_pk) except: response_data = {'error': 'Sorry, you do not belong to this team!'} return Response(response_data, status=status.HTTP_401_UNAUTHORIZED) if get_list_of_challenges_for_participant_team([participant_team]).exists(): response_data = {'error': 'Sorry, you cannot delete this team since it has taken part in challenge(s)!'} return Response(response_data, status=status.HTTP_403_FORBIDDEN) else: participant.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def remove_self_from_challenge_host_team(request, challenge_host_team_pk): """ A user can remove himself from the challenge host team. """ try: ChallengeHostTeam.objects.get(pk=challenge_host_team_pk) except ChallengeHostTeam.DoesNotExist: response_data = {'error': 'ChallengeHostTeam does not exist'} return Response(response_data, status=status.HTTP_406_NOT_ACCEPTABLE) try: challenge_host = ChallengeHost.objects.filter(user=request.user.id, team_name__pk=challenge_host_team_pk) challenge_host.delete() return Response(status=status.HTTP_204_NO_CONTENT) except: response_data = {'error': 'Sorry, you do not belong to this team.'} return Response(response_data, status=status.HTTP_401_UNAUTHORIZED)
def invite_host_to_team(request, pk): try: challenge_host_team = ChallengeHostTeam.objects.get(pk=pk) except ChallengeHostTeam.DoesNotExist: response_data = {'error': 'ChallengeHostTeam does not exist'} return Response(response_data, status=status.HTTP_406_NOT_ACCEPTABLE) serializer = InviteHostToTeamSerializer(data=request.data, context={'challenge_host_team': challenge_host_team, 'request': request}) if serializer.is_valid(): serializer.save() response_data = { 'message': 'User has been added successfully to the host team'} return Response(response_data, status=status.HTTP_202_ACCEPTED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def challenge_phase_list(request, challenge_pk): try: challenge = Challenge.objects.get(pk=challenge_pk) except Challenge.DoesNotExist: response_data = {'error': 'Challenge does not exist'} return Response(response_data, status=status.HTTP_406_NOT_ACCEPTABLE) if request.method == 'GET': challenge_phase = ChallengePhase.objects.filter(challenge=challenge, is_public=True) paginator, result_page = paginated_queryset(challenge_phase, request) serializer = ChallengePhaseSerializer(result_page, many=True) response_data = serializer.data return paginator.get_paginated_response(response_data) elif request.method == 'POST': serializer = ChallengePhaseCreateSerializer(data=request.data, context={'challenge': challenge}) if serializer.is_valid(): serializer.save() challenge_phase = get_challenge_phase_model(serializer.instance.pk) serializer = ChallengePhaseSerializer(challenge_phase) response_data = serializer.data return Response(response_data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): """ Subscribes a user to push notifications """ serializer = SubscribeSerializer(data=request.data) if serializer.is_valid() and request.user.is_authenticated: user = request.user user.push_notification_id = serializer.data['registration_id'] try: user.save() return Response(status.HTTP_202_ACCEPTED) except IntegrityError: return Response(serializer.errors, status.HTTP_406_NOT_ACCEPTABLE) else: return Response( serializer.errors, status=status.HTTP_400_BAD_REQUEST )
def test_manipulate_total_pre_auth(self): """Test attempting to manipulate basket price when requesting an auth form""" product = self.create_product() resp = self.do_get_basket() self.assertEqual(resp.status_code, status.HTTP_200_OK) basket_id = resp.data['id'] resp = self.do_add_to_basket(product.id) self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertEqual(resp.data['total_incl_tax'], '10.00') resp = self.do_checkout(basket_id, extra_data={ "total": "2.00", # Try and get $10 of product for only $2 }) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def employee_reset_password(request, employee_email): """ This endpoint send an email to employee, with confirmation reset password url. --- responseMessages: - code: 404 message: Not found - code: 406 message: Request not acceptable """ if request.method == 'GET': employee = get_object_or_404(Employee, email=employee_email) # Generate random uuid and save in employee employee.generate_reset_password_code() # Send email with reset password confirmation url subject = config.EMPLOYEE_RESET_PASSWORD_CONFIRMATION_SUBJECT current_site = Site.objects.get_current() employee_reset_password_api = reverse('employees:employee_reset_password', args=[employee.email]) url = current_site.domain + employee_reset_password_api + employee.reset_password_code message = config.EMPLOYEE_RESET_PASSWORD_CONFIRMATION_MESSAGE % (url) try: send_email = EmailMessage(subject, message, to=[employee.email]) send_email.send() except Exception as e: print(e) content = {'detail': config.EMAIL_SERVICE_ERROR} return Response(content, status=status.HTTP_406_NOT_ACCEPTABLE) content = {'detail': 'Confirmation email sent.', 'email': employee.email, 'reset_password_code': employee.reset_password_code} return Response(content, status=status.HTTP_200_OK)
def give_badge_to(request, badge_id, to_employee_id, from_employee_id): """ This endpoint saves badge assignation to employee --- response_serializer: stars.serializers.EmployeeBadgeSerializer responseMessages: - code: 400 message: Bad request - code: 401 message: Unauthorized. Authentication credentials were not provided. Invalid token. - code: 403 message: Forbidden, authentication credentials were not provided - code: 404 message: Not found (from_employee_id or to_employee_id or badge_id) - code: 406 message: User is unable to give stars to itself. """ if to_employee_id == from_employee_id: content = {'detail': config.USER_UNABLE_TO_GIVE_BADGES_ITSELF} return Response(content, status=status.HTTP_406_NOT_ACCEPTABLE) elif request.method == 'POST': badge = get_object_or_404(Badge, pk=badge_id) to_employee = get_object_or_404(Employee, pk=to_employee_id) from_employee = get_object_or_404(Employee, pk=from_employee_id) try: employee_badge = EmployeeBadge.objects.create(to_user=to_employee, assigned_by=from_employee, badge=badge) except Exception as e: print(e) content = {'detail': config.BADGE_UNIQUE_CONSTRAINT_FAILED} return Response(content, status=status.HTTP_406_NOT_ACCEPTABLE) serializer = EmployeeBadgeSerializer(employee_badge) return Response(serializer.data, status=status.HTTP_201_CREATED)
def upload(self, request, parent_lookup_torrent=None): """ Handles sent file, creates File object, chunks and writes it into Volume.UPLOAD. :return: Response """ if parent_lookup_torrent: return Response(status=status.HTTP_406_NOT_ACCEPTABLE) uploaded_file_obj = request.data['file'] uploaded_file_name, uploaded_file_ext = os.path.splitext(uploaded_file_obj.name) uploaded_file_name = '{}{}'.format(slugify(uploaded_file_name), uploaded_file_ext) uploaded_file_upload_path = '{}/{}'.format(self.request.user.username, uploaded_file_name) file_obj, created = File.objects.get_or_create( path=uploaded_file_upload_path, defaults={ 'volume': Volume.UPLOAD, 'size': uploaded_file_obj.size } ) if not created: return Response({ 'detail': "File already exists." }, status=status.HTTP_400_BAD_REQUEST) # Link file to authenticated user. request.user.files.add(file_obj) # Handle uploaded file. handle_uploaded_file(uploaded_file_obj, file_obj.full_path) return Response(status=status.HTTP_201_CREATED)
def post(self, request): if not (request.POST.get('uuid') and request.POST.get('long') and request.POST.get('lat') and request.POST.get('bands') ): return Response("Missing arguments", status=status.HTTP_406_NOT_ACCEPTABLE) req_bands = request.POST.get('bands').split(',') for band in req_bands: if not (band in BTS.bands): return Response("Invalid Arguments", status=status.HTTP_400_BAD_REQUEST) pnt = GEOSGeometry(Point(float(request.POST.get('long')), float(request.POST.get('lat')))) with transaction.atomic(): tower = BTS.objects.get(uuid=request.POST.get('uuid')) nearby_towers = BTS.objects.filter( location__distance_lt=(pnt,D(km=RANGE))).exclude(uuid=request.POST.get('uuid')) used_channels = dict.fromkeys(BTS.bands.keys(), set()) for tower in nearby_towers: if (tower.band): #skip those without set bands used_channels[tower.band].add(tower.channel) free_channels = dict.fromkeys(req_bands) for band in req_bands: free_channels[band] = BTS.bands[band]['valid_values'].difference(used_channels[band]) if (len(free_channels[band]) > 0): #something available return Response({ band : free_channels[band], 'power_level' : POWER_LEVEL}, status=status.HTTP_200_OK) return Response("No Available Bands", status=status.HTTP_404_NOT_FOUND)
def post(self, request): if not ( request.POST.get('uuid') and request.POST.get('lat') and request.POST.get('long') and request.POST.get('band') and request.POST.get('channel') and request.POST.get('power_level') ): return Response("Missing Arguments", status=status.HTTP_406_NOT_ACCEPTABLE) if not ( request.POST.get('band') in BTS.bands and request.POST.get('channel').isdigit() and request.POST.get('power_level').isdigit() ): return Response("Invalid Arguments", status=status.HTTP_400_BAD_REQUEST) pnt = GEOSGeometry(Point(float(request.POST.get('long')), float(request.POST.get('lat')))) with transaction.atomic(): tower = BTS.objects.get(uuid=request.POST.get('uuid')) nearby_towers = BTS.objects.filter( location__distance_lt=(pnt,D(km=RANGE))).filter( band=request.POST.get('band')).exclude(uuid=request.POST.get('uuid')) for t in nearby_towers: if (int(request.POST.get('channel')) == t.channel): return Response("Channel In Use", status=status.HTTP_409_CONFLICT) #no one interfered tower.channel = int(request.POST.get('channel')) tower.location = pnt tower.band = request.POST.get('band') tower.save() return Response("Success", status=status.HTTP_200_OK)
def post(self, request, format=None): # Wipe out any previous state data utils.clear_payment_method_states(request) # Validate the input c_ser = self.get_serializer(data=request.data) if not c_ser.is_valid(): return Response(c_ser.errors, status.HTTP_406_NOT_ACCEPTABLE) # Freeze basket basket = c_ser.validated_data.get('basket') basket.freeze() # Save Order order = c_ser.save() request.session[CHECKOUT_ORDER_ID] = order.id # Send order_placed signal order_placed.send(sender=self, order=order, user=request.user, request=request) # Save payment steps into session for processing states = self._record_payments( request=request, order=order, methods=c_ser.fields['payment'].methods, data=c_ser.validated_data['payment']) utils.set_payment_method_states(order, request, states) # Return order data o_ser = OrderSerializer(order, context={ 'request': request }) return Response(o_ser.data)
def test_invalid_email_anon_user(self): basket_id = self._prepare_basket() data = self._get_checkout_data(basket_id) data['guest_email'] = '' data['payment'] = { 'credit-card': { 'enabled': True, 'pay_balance': True, } } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['non_field_errors'][0], 'Guest email is required for anonymous checkouts')
def test_invalid_email_authed_user(self): self.login(is_staff=True, email=None) basket_id = self._prepare_basket() data = self._get_checkout_data(basket_id) data['guest_email'] = '' data['payment'] = { 'credit-card': { 'enabled': True, 'pay_balance': True, } } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['non_field_errors'][0], 'Email address is required.')
def test_invalid_basket(self): self.login(is_staff=True) basket_id = self._prepare_basket() data = self._get_checkout_data(basket_id + 1) resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['basket'][0], 'Invalid hyperlink - Object does not exist.')
def test_no_payment_methods_provided(self): self.login(is_staff=True) basket_id = self._prepare_basket() data = self._get_checkout_data(basket_id) data.pop('payment', None) resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment'][0], 'This field is required.')
def test_no_payment_methods_enabled(self): self.login(is_staff=True) basket_id = self._prepare_basket() data = self._get_checkout_data(basket_id) data['payment'] = { 'cash': { 'enabled': False } } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment']['non_field_errors'][0], 'At least one payment method must be enabled.')
def test_no_payment_amount_provided(self): self.login(is_staff=True) basket_id = self._prepare_basket() data = self._get_checkout_data(basket_id) data['payment'] = { 'cash': { 'enabled': True, 'pay_balance': False, } } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment']['cash']['non_field_errors'][0], 'Amount must be greater then 0.00 or pay_balance must be enabled.') data = self._get_checkout_data(basket_id) data['payment'] = { 'cash': { 'enabled': True, 'pay_balance': False, 'amount': '0.00' } } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment']['cash']['non_field_errors'][0], 'Amount must be greater then 0.00 or pay_balance must be enabled.')
def test_provided_payment_method_not_permitted(self): basket_id = self._prepare_basket() # Cash payments not allowed since user isn't staff data = self._get_checkout_data(basket_id) data['payment'] = { 'cash': { 'enabled': True, 'pay_balance': True, } } resp = self._checkout(data) self.assertEqual(resp.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(resp.data['payment']['non_field_errors'][0], 'At least one payment method must be enabled.')
def test_invalid_data(self): response = self.client.post(self.url, self.invalid_data, format='json') self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_participant_team_does_not_exist(self): self.url = reverse_lazy('participants:get_participant_team_details', kwargs={'pk': self.participant_team.pk + 1}) expected = { 'error': 'ParticipantTeam does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_invite_participant_to_team_with_no_data(self): del self.data['email'] response = self.client.post(self.url, self.data) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_participant_team_for_invite_does_not_exist(self): self.url = reverse_lazy('participants:invite_participant_to_team', kwargs={'pk': self.participant_team.pk + 1}) expected = { 'error': 'ParticipantTeam does not exist' } response = self.client.post(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_participant_does_not_exist_in_team(self): self.url = reverse_lazy('participants:delete_participant_from_team', kwargs={'participant_team_pk': self.participant_team.pk, 'participant_pk': self.participant2.pk + 1 }) expected = { 'error': 'Participant does not exist' } response = self.client.delete(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_when_participant_is_admin_and_wants_to_delete_himself(self): self.url = reverse_lazy('participants:delete_participant_from_team', kwargs={'participant_team_pk': self.participant_team.pk, 'participant_pk': self.participant1.pk }) expected = { 'error': 'You are not allowed to remove yourself since you are admin. Please delete the team if you want to do so!' # noqa: ignore=E501 } response = self.client.delete(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_when_participant_team_does_not_exist(self): self.url = reverse_lazy('participants:remove_self_from_participant_team', kwargs={'participant_team_pk': self.participant_team.pk + 1 }) expected = { 'error': 'ParticipantTeam does not exist!' } response = self.client.delete(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_host_team_does_not_exist(self): self.url = reverse_lazy('hosts:get_challenge_host_team_details', kwargs={'pk': self.challenge_host_team.pk + 1}) expected = { 'error': 'ChallengeHostTeam does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_host_team_for_challenge_host_does_not_exist(self): self.url = reverse_lazy('hosts:get_challenge_host_list', kwargs={'challenge_host_team_pk': self.challenge_host_team.pk + 1}) expected = { 'error': 'ChallengeHostTeam does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_host_does_not_exist(self): self.url = reverse_lazy('hosts:get_challenge_host_details', kwargs={'challenge_host_team_pk': self.challenge_host_team.pk, 'pk': self.challenge_host.pk + 1}) expected = { 'error': 'ChallengeHost does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_when_challenge_host_team_does_not_exist(self): self.url = reverse_lazy('hosts:remove_self_from_challenge_host_team', kwargs={'challenge_host_team_pk': self.challenge_host_team.pk + 1 }) expected = { 'error': 'ChallengeHostTeam does not exist' } response = self.client.delete(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_host_team_for_invite_does_not_exist(self): self.url = reverse_lazy('hosts:invite_host_to_team', kwargs={'pk': self.challenge_host_team.pk + 1}) expected = { 'error': 'ChallengeHostTeam does not exist' } response = self.client.post(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_incorrect_url_pattern_submission_count(self): self.url = reverse_lazy('analytics:get_submission_count', kwargs={'challenge_pk': self.challenge.pk, 'duration': 'INCORRECT'}) expected = { 'error': 'Wrong URL pattern!' } response = self.client.get(self.url, {}, format='json') self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(response.data, expected)
def test_particular_challenge_host_team_for_challenge_does_not_exist(self): self.url = reverse_lazy('challenges:get_challenge_list', kwargs={'challenge_host_team_pk': self.challenge_host_team.pk + 1}) expected = { 'error': 'ChallengeHostTeam does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_does_not_exist(self): self.url = reverse_lazy('challenges:get_challenge_detail', kwargs={'challenge_host_team_pk': self.challenge_host_team.pk, 'challenge_pk': self.challenge.pk + 1}) expected = { 'error': 'Challenge does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_host_team_for_challenge_does_not_exist(self): self.url = reverse_lazy('challenges:get_challenge_detail', kwargs={'challenge_host_team_pk': self.challenge_host_team.pk + 1, 'challenge_pk': self.challenge.pk}) expected = { 'error': 'ChallengeHostTeam does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_when_challenge_host_maps_a_participant_team_with_his_challenge(self): self.url = reverse_lazy('challenges:add_participant_team_to_challenge', kwargs={'challenge_pk': self.challenge2.pk, 'participant_team_pk': self.participant_team2.pk}) expected = { 'error': 'Sorry, You cannot participate in your own challenge!', 'challenge_id': self.challenge2.pk, 'participant_team_id': self.participant_team2.pk } response = self.client.post(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_participant_team_for_mapping_with_challenge_does_not_exist(self): self.url = reverse_lazy('challenges:add_participant_team_to_challenge', kwargs={'challenge_pk': self.challenge.pk, 'participant_team_pk': self.participant_team.pk + 3}) expected = { 'error': 'ParticipantTeam does not exist' } response = self.client.post(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_incorrent_url_pattern_challenges(self): self.url = reverse_lazy('challenges:get_all_challenges', kwargs={'challenge_time': "INCORRECT"}) expected = {'error': 'Wrong url pattern!'} response = self.client.get(self.url, {}, format='json') self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE) self.assertEqual(response.data, expected)
def test_get_challenge_by_pk_when_challenge_does_not_exists(self): self.url = reverse_lazy('challenges:get_challenge_by_pk', kwargs={'pk': self.challenge3.pk + 10}) expected = { 'error': 'Challenge does not exist!' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_get_challenge_with_incorrect_url_pattern(self): self.url = reverse_lazy('challenges:get_challenges_based_on_teams') expected = { 'error': 'Invalid url pattern!' } response = self.client.get(self.url, {'invalid_q_param': 'invalidvalue'}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)
def test_particular_challenge_for_challenge_phase_does_not_exist(self): self.url = reverse_lazy('challenges:get_challenge_phase_list', kwargs={'challenge_pk': self.challenge.pk + 1}) expected = { 'error': 'Challenge does not exist' } response = self.client.get(self.url, {}) self.assertEqual(response.data, expected) self.assertEqual(response.status_code, status.HTTP_406_NOT_ACCEPTABLE)