diff options
| author | Szymon Teżewski | 2012-12-13 12:07:56 +0100 | 
|---|---|---|
| committer | Szymon Teżewski | 2012-12-13 12:07:56 +0100 | 
| commit | 5f08ec70e24ee3bdf74eed62def2fd9108af0eb0 (patch) | |
| tree | 7f9675b74de796c322ee3051029970a456e675a7 /rest_framework/tests/pagination.py | |
| parent | 497da7fc699b9e88c966e37bc48739865336683d (diff) | |
| download | django-rest-framework-5f08ec70e24ee3bdf74eed62def2fd9108af0eb0.tar.bz2 | |
context to custom field in pagination
Diffstat (limited to 'rest_framework/tests/pagination.py')
| -rw-r--r-- | rest_framework/tests/pagination.py | 31 | 
1 files changed, 30 insertions, 1 deletions
diff --git a/rest_framework/tests/pagination.py b/rest_framework/tests/pagination.py index 3062007d..9c34001d 100644 --- a/rest_framework/tests/pagination.py +++ b/rest_framework/tests/pagination.py @@ -4,7 +4,7 @@ from django.core.paginator import Paginator  from django.test import TestCase  from django.test.client import RequestFactory  from django.utils import unittest -from rest_framework import generics, status, pagination, filters +from rest_framework import generics, status, pagination, filters, serializers  from rest_framework.compat import django_filters  from rest_framework.tests.models import BasicModel, FilterableItem @@ -236,3 +236,32 @@ class TestCustomPaginateByParam(TestCase):          response = self.view(request).render()          self.assertEquals(response.data['count'], 13)          self.assertEquals(response.data['results'], self.data[:5]) + + +class CustomField(serializers.Field): +    def to_native(self, value): +        if not 'view' in self.context: +            raise RuntimeError("context isn't getting passed into custom field") +        return "value" + + +class BasicModelSerializer(serializers.Serializer): +    text = CustomField() + + +class TestContextPassedToCustomField(TestCase): +    def setUp(self): +        BasicModel.objects.create(text='ala ma kota') + +    def test_with_pagination(self): +        class ListView(generics.ListCreateAPIView): +            model = BasicModel +            serializer_class = BasicModelSerializer +            paginate_by = 1 + +        self.view = ListView.as_view() +        request = factory.get('/') +        response = self.view(request).render() + +        self.assertEquals(response.status_code, status.HTTP_200_OK) +  | 
