mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-25 23:50:01 +03:00
test written and some code fixed
This commit is contained in:
parent
47a1f05ec0
commit
28a5b73c25
|
@ -550,7 +550,7 @@ class HyperlinkedRelatedField(RelatedField):
|
|||
view_namespace = self.view_namespace or getattr(self.parent.opts, 'view_namespace', None)
|
||||
view_name = self.view_name
|
||||
if view_namespace:
|
||||
view_name = '%(namespace)s:%(name)' % {'namespace': view_namespace, 'name':view_name}
|
||||
view_name = '%(namespace)s:%(name)s' % {'namespace': view_namespace, 'name': view_name}
|
||||
|
||||
request = self.context.get('request', None)
|
||||
format = self.format or self.context.get('format', None)
|
||||
|
@ -662,7 +662,7 @@ class HyperlinkedIdentityField(Field):
|
|||
view_namespace = self.view_namespace or getattr(self.parent.opts, 'view_namespace', None)
|
||||
view_name = self.view_name
|
||||
if view_namespace:
|
||||
view_name = '%(namespace)s:%(name)' % {'namespace': view_namespace, 'name':view_name}
|
||||
view_name = '%(namespace)s:%(name)s' % {'namespace': view_namespace, 'name': view_name}
|
||||
|
||||
kwargs = {self.pk_url_kwarg: obj.pk}
|
||||
try:
|
||||
|
|
|
@ -41,7 +41,7 @@ class GenericAPIView(views.APIView):
|
|||
|
||||
if serializer_class is None:
|
||||
class DefaultSerializer(self.model_serializer_class):
|
||||
class Meta:
|
||||
class Meta(self.model_serializer_class.Meta):
|
||||
model = self.model
|
||||
serializer_class = DefaultSerializer
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from django.conf.urls.defaults import patterns, url
|
||||
from django.conf.urls.defaults import patterns, url, include
|
||||
from django.test import TestCase
|
||||
from django.test.client import RequestFactory
|
||||
from rest_framework import generics, status, serializers
|
||||
|
@ -49,6 +49,13 @@ class ManyToManyDetail(generics.RetrieveAPIView):
|
|||
model = ManyToManyModel
|
||||
model_serializer_class = serializers.HyperlinkedModelSerializer
|
||||
|
||||
class NamespacedManyToManySerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
view_namespace = 'namespacetests'
|
||||
|
||||
class NamespacedManyToManyDetail(generics.RetrieveAPIView):
|
||||
model = ManyToManyModel
|
||||
model_serializer_class = NamespacedManyToManySerializer
|
||||
|
||||
class BlogPostCommentListCreate(generics.ListCreateAPIView):
|
||||
model = BlogPostComment
|
||||
|
@ -76,7 +83,13 @@ class OptionalRelationDetail(generics.RetrieveAPIView):
|
|||
model_serializer_class = serializers.HyperlinkedModelSerializer
|
||||
|
||||
|
||||
anchor_urls = patterns('',
|
||||
url(r'^(?P<pk>\d+)/$', AnchorDetail.as_view(), name='anchor-detail'),
|
||||
url(r'^manytomany/(?P<pk>\d+)/$', NamespacedManyToManyDetail.as_view(), name='manytomanymodel-detail'),
|
||||
)
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^other/namespace/', include(anchor_urls, namespace='namespacetests', app_name='namespacetests')),
|
||||
url(r'^basic/$', BasicList.as_view(), name='basicmodel-list'),
|
||||
url(r'^basic/(?P<pk>\d+)/$', BasicDetail.as_view(), name='basicmodel-detail'),
|
||||
url(r'^anchor/(?P<pk>\d+)/$', AnchorDetail.as_view(), name='anchor-detail'),
|
||||
|
@ -156,6 +169,15 @@ class TestManyToManyHyperlinkedView(TestCase):
|
|||
}]
|
||||
self.list_view = ManyToManyList.as_view()
|
||||
self.detail_view = ManyToManyDetail.as_view()
|
||||
self.namespaced_data = [{
|
||||
'url': 'http://testserver/other/namespace/manytomany/1/',
|
||||
'rel': [
|
||||
'http://testserver/other/namespace/1/',
|
||||
'http://testserver/other/namespace/2/',
|
||||
'http://testserver/other/namespace/3/',
|
||||
]
|
||||
}]
|
||||
self.namespaced_detail_view = NamespacedManyToManyDetail.as_view()
|
||||
|
||||
def test_get_list_view(self):
|
||||
"""
|
||||
|
@ -175,6 +197,15 @@ class TestManyToManyHyperlinkedView(TestCase):
|
|||
self.assertEquals(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEquals(response.data, self.data[0])
|
||||
|
||||
def test_get_detail_namespaced_view(self):
|
||||
"""
|
||||
GET requests to a View in a namespace should succeed.
|
||||
"""
|
||||
request = factory.get('/other/namespace/manytomany/1/')
|
||||
response = self.namespaced_detail_view(request, pk=1).render()
|
||||
self.assertEquals(response.status_code, status.HTTP_200_OK)
|
||||
self.assertEquals(response.data, self.namespaced_data[0])
|
||||
|
||||
|
||||
class TestCreateWithForeignKeys(TestCase):
|
||||
urls = 'rest_framework.tests.hyperlinkedserializers'
|
||||
|
|
Loading…
Reference in New Issue
Block a user