Skip to content

Instantly share code, notes, and snippets.

@fhdez
Created August 24, 2018 15:06
Show Gist options
  • Save fhdez/aa15323990634ece010e55d7a4167f89 to your computer and use it in GitHub Desktop.
Save fhdez/aa15323990634ece010e55d7a4167f89 to your computer and use it in GitHub Desktop.
test de videos que le dieron clic los papás...
# en la api genero el action
class ParentSchoolViewSet(
GenericViewSet,
mixins.RetrieveModelMixin,
mixins.ListModelMixin,
mixins.CreateModelMixin,
mixins.PartialUpdateModelMixin,
mixins.DestroyModelMixin):
serializer_class = serializers.ParentSchoolSerializer
retrieve_serializer_class = serializers.ParentSchoolSerializer
list_serializer_class = serializers.ParentSchoolSerializer
update_serializer_class = serializers.ParentSchoolCreateSerializer
create_serializer_class = serializers.ParentSchoolCreateSerializer
change_image_serializer_class = serializers.ParentSchoolImageSerializer
permission_classes = [
C(TutorReadPermission) |
C(AdminPermission)
]
parent_model = ParentSchool
parent_model_name = 'ParentSchool'
parent_lookup_field = 'parentschool_pk'
def get_queryset(self, *args, **kwargs):
queryset = ParentSchool.objects.all()
if self.request.user.has_tutor_permissions:
queryset = queryset.filter(is_active=True)
return queryset.order_by('-created_date')
def retrieve(self, request, *args, **kwargs):
"""
Returns an specific parent school resource.
---
response_serializer: serializers.ParentSchoolSerializer
responseMessages:
- code: 200
message: OK
- code: 403
message: FORBIDDEN
- code: 404
message: NOT FOUND
- code: 500
message: INTERNAL SERVER ERROR
consumes:
- application/json
produces:
- application/json
"""
#
# Record a open video from parent_school
#
parentschool = ParentSchool.objects.get(pk=kwargs['parentschool_pk'])
origin_queryparam = request.query_params.get('origin', 'app')
action_list = Action.objects.list_action(origin_queryparam)
action.send(
request.user,
verb=settings.CUSTOM_APP_ACTIONS['parents_school'],
description=(u'Clic en video {}'.format(parentschool.title)),
action_object=action_list,
target=parentschool
)
return super(ParentSchoolViewSet, self).retrieve(request, args, kwargs)
#-------------------------------------------------
# esto en los test
# -*- coding: utf-8 -*-
from django.core.management import call_command
from django.core.urlresolvers import reverse
from rest_framework import status
from rest_framework.test import APITestCase
from potencia.core.api.tests import tests_viewsets
class AppParentsActivitiesTests(APITestCase, tests_viewsets.ApiTestMixin):
def setUp(self):
call_command('loaddata', 'roles.json', verbosity=0)
call_command('loaddata', 'actions.json', verbosity=0)
call_command('loaddata', 'parent_school_resources.json', verbosity=0)
def test_parent_school_open_video(self):
endpoint_url = reverse(
'api:v1:parent-schools-retrieve',
args=(1,)
)
token = self.create_tutor_token()[1]
response = self.client.post(
endpoint_url, HTTP_AUTHORIZATION=token, format='json'
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
@fierroformo
Copy link

fierroformo commented Aug 24, 2018

Tu endpoint url esta mal, debe ser algo así:

endpoint_url = reverse(
    'api:v1:parent-schools-detail',
     kwargs={'parentschool_pk: <parentschool_id>}
)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment