diff options
Diffstat (limited to 'rest_framework/tests/test_hyperlinkedserializers.py')
| -rw-r--r-- | rest_framework/tests/test_hyperlinkedserializers.py | 48 | 
1 files changed, 47 insertions, 1 deletions
| diff --git a/rest_framework/tests/test_hyperlinkedserializers.py b/rest_framework/tests/test_hyperlinkedserializers.py index ea7f70f2..5fb1b47e 100644 --- a/rest_framework/tests/test_hyperlinkedserializers.py +++ b/rest_framework/tests/test_hyperlinkedserializers.py @@ -1,8 +1,9 @@  from __future__ import unicode_literals  import json -from django.conf.urls import patterns, url  from django.test import TestCase  from rest_framework import generics, status, serializers +from django.conf.urls import patterns, url +from rest_framework.settings import api_settings  from rest_framework.test import APIRequestFactory  from rest_framework.tests.models import (      Anchor, BasicModel, ManyToManyModel, BlogPost, BlogPostComment, @@ -331,3 +332,48 @@ class TestOverriddenURLField(TestCase):              serializer.data,              {'title': 'New blog post', 'url': 'foo bar'}          ) + + +class TestURLFieldNameBySettings(TestCase): +    urls = 'rest_framework.tests.test_hyperlinkedserializers' + +    def setUp(self): +        self.saved_url_field_name = api_settings.URL_FIELD_NAME +        api_settings.URL_FIELD_NAME = 'global_url_field' + +        class Serializer(serializers.HyperlinkedModelSerializer): + +            class Meta: +                model = BlogPost +                fields = ('title', api_settings.URL_FIELD_NAME) + +        self.Serializer = Serializer +        self.obj = BlogPost.objects.create(title="New blog post") + +    def tearDown(self): +        api_settings.URL_FIELD_NAME = self.saved_url_field_name + +    def test_overridden_url_field_name(self): +        request = factory.get('/posts/') +        serializer = self.Serializer(self.obj, context={'request': request}) +        self.assertIn(api_settings.URL_FIELD_NAME, serializer.data) + + +class TestURLFieldNameByOptions(TestCase): +    urls = 'rest_framework.tests.test_hyperlinkedserializers' + +    def setUp(self): +        class Serializer(serializers.HyperlinkedModelSerializer): + +            class Meta: +                model = BlogPost +                fields = ('title', 'serializer_url_field') +                url_field_name = 'serializer_url_field' + +        self.Serializer = Serializer +        self.obj = BlogPost.objects.create(title="New blog post") + +    def test_overridden_url_field_name(self): +        request = factory.get('/posts/') +        serializer = self.Serializer(self.obj, context={'request': request}) +        self.assertIn(self.Serializer.Meta.url_field_name, serializer.data) | 
