mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-26 16:09:49 +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_namespace = self.view_namespace or getattr(self.parent.opts, 'view_namespace', None)
|
||||||
view_name = self.view_name
|
view_name = self.view_name
|
||||||
if view_namespace:
|
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)
|
request = self.context.get('request', None)
|
||||||
format = self.format or self.context.get('format', 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_namespace = self.view_namespace or getattr(self.parent.opts, 'view_namespace', None)
|
||||||
view_name = self.view_name
|
view_name = self.view_name
|
||||||
if view_namespace:
|
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}
|
kwargs = {self.pk_url_kwarg: obj.pk}
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -41,7 +41,7 @@ class GenericAPIView(views.APIView):
|
||||||
|
|
||||||
if serializer_class is None:
|
if serializer_class is None:
|
||||||
class DefaultSerializer(self.model_serializer_class):
|
class DefaultSerializer(self.model_serializer_class):
|
||||||
class Meta:
|
class Meta(self.model_serializer_class.Meta):
|
||||||
model = self.model
|
model = self.model
|
||||||
serializer_class = DefaultSerializer
|
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 import TestCase
|
||||||
from django.test.client import RequestFactory
|
from django.test.client import RequestFactory
|
||||||
from rest_framework import generics, status, serializers
|
from rest_framework import generics, status, serializers
|
||||||
|
@ -49,6 +49,13 @@ class ManyToManyDetail(generics.RetrieveAPIView):
|
||||||
model = ManyToManyModel
|
model = ManyToManyModel
|
||||||
model_serializer_class = serializers.HyperlinkedModelSerializer
|
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):
|
class BlogPostCommentListCreate(generics.ListCreateAPIView):
|
||||||
model = BlogPostComment
|
model = BlogPostComment
|
||||||
|
@ -76,7 +83,13 @@ class OptionalRelationDetail(generics.RetrieveAPIView):
|
||||||
model_serializer_class = serializers.HyperlinkedModelSerializer
|
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('',
|
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/$', BasicList.as_view(), name='basicmodel-list'),
|
||||||
url(r'^basic/(?P<pk>\d+)/$', BasicDetail.as_view(), name='basicmodel-detail'),
|
url(r'^basic/(?P<pk>\d+)/$', BasicDetail.as_view(), name='basicmodel-detail'),
|
||||||
url(r'^anchor/(?P<pk>\d+)/$', AnchorDetail.as_view(), name='anchor-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.list_view = ManyToManyList.as_view()
|
||||||
self.detail_view = ManyToManyDetail.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):
|
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.status_code, status.HTTP_200_OK)
|
||||||
self.assertEquals(response.data, self.data[0])
|
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):
|
class TestCreateWithForeignKeys(TestCase):
|
||||||
urls = 'rest_framework.tests.hyperlinkedserializers'
|
urls = 'rest_framework.tests.hyperlinkedserializers'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user