diff options
| author | S.Prymak | 2014-01-14 13:58:17 +0200 | 
|---|---|---|
| committer | S.Prymak | 2014-01-14 13:58:17 +0200 | 
| commit | ed8143b2b05cd16952262c939b15053f7b93893a (patch) | |
| tree | f8431b781b04ef4b36454e4827bebd5624e8611b | |
| parent | e9b0d70f5d8eb94d72da677846d5dab5b587e945 (diff) | |
| download | django-rest-framework-ed8143b2b05cd16952262c939b15053f7b93893a.tar.bz2 | |
Test for customizable HyperlinkedModelSerializer url field name
| -rw-r--r-- | rest_framework/tests/test_hyperlinkedserializers.py | 46 | 
1 files changed, 46 insertions, 0 deletions
diff --git a/rest_framework/tests/test_hyperlinkedserializers.py b/rest_framework/tests/test_hyperlinkedserializers.py index 61e613d7..83d46043 100644 --- a/rest_framework/tests/test_hyperlinkedserializers.py +++ b/rest_framework/tests/test_hyperlinkedserializers.py @@ -3,6 +3,7 @@ import json  from django.test import TestCase  from rest_framework import generics, status, serializers  from rest_framework.compat 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)  | 
