Skip to content

Commit

Permalink
Update test EndpointSet inheritance.
Browse files Browse the repository at this point in the history
Test ResourceEndpointSets now inherit from DjangoModelEndpointSetMixin
rather than provide their own `get_queryset()` and `prepare()` methods.
  • Loading branch information
grahamu committed Jun 30, 2016
1 parent 3c91178 commit dbd2311
Showing 1 changed file with 10 additions and 31 deletions.
41 changes: 10 additions & 31 deletions pinax/api/tests/viewsets.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@

from pinax import api

from .models import (
Article,
ArticleTag,
Author,
)
from ..mixins import DjangoModelEndpointSetMixin
from .relationships import (
ArticleTagCollectionEndpointSet,
ArticleAuthorEndpointSet,
Expand All @@ -18,7 +14,7 @@


@api.bind(resource=ArticleResource)
class ArticleViewSet(api.ResourceEndpointSet):
class ArticleViewSet(DjangoModelEndpointSetMixin, api.ResourceEndpointSet):
"""
Handle Article retrieval.
"""
Expand All @@ -40,16 +36,6 @@ class ArticleViewSet(api.ResourceEndpointSet):
]
}

def get_queryset(self):
return Article.objects.all()

def prepare(self):
if self.requested_method in ["retrieve", "update", "destroy"]:
self.article = self.get_object_or_404(
self.get_queryset(),
pk=self.kwargs["pk"] if "pk" in self.kwargs else None,
)

def create(self, request):
with self.validate(self.resource_class) as resource:
resource.save()
Expand All @@ -69,26 +55,27 @@ def retrieve(self, request, pk):
"""
Identifier: Retrieve an Article
"""
resource = self.resource_class(obj=self.article)
resource = self.resource_class(obj=self.obj)
return self.render(resource)

def update(self, request, pk):
"""
Update an Article
"""
with self.validate(self.resource_class(obj=self.article)) as resource:
with self.validate(self.resource_class(obj=self.obj)) as resource:
resource.save()
return self.render(resource)

def destroy(self, request, pk):
"""
Delete an Article
"""
return super(ArticleViewSet, self).destroy(request, pk)
self.obj.delete()
return self.render_delete()


@api.bind(resource=ArticleTagResource)
class ArticleTagViewSet(api.ResourceEndpointSet):
class ArticleTagViewSet(DjangoModelEndpointSetMixin, api.ResourceEndpointSet):
"""
Handle ArticleTag retrieval.
"""
Expand All @@ -107,9 +94,6 @@ class ArticleTagViewSet(api.ResourceEndpointSet):
]
}

def get_queryset(self):
return ArticleTag.objects.all()

def list(self, request):
"""
Identifier: List all tags
Expand All @@ -121,13 +105,12 @@ def retrieve(self, request, pk):
"""
Identifier: Retrieve a tag
"""
articletag = self.get_object_or_404(self.get_queryset(), pk=pk)
resource = self.resource_class(articletag)
resource = self.resource_class(self.obj)
return self.render(resource)


@api.bind(resource=AuthorResource)
class AuthorViewSet(api.ResourceEndpointSet):
class AuthorViewSet(DjangoModelEndpointSetMixin, api.ResourceEndpointSet):
"""
Handle Author retrieval.
"""
Expand All @@ -146,9 +129,6 @@ class AuthorViewSet(api.ResourceEndpointSet):
]
}

def get_queryset(self):
return Author.objects.all()

def list(self, request):
"""
Identifier: List all Authors
Expand All @@ -160,6 +140,5 @@ def retrieve(self, request, pk):
"""
Identifier: Retrieve an Author
"""
author = self.get_object_or_404(self.get_queryset(), pk=pk)
resource = self.resource_class(author)
resource = self.resource_class(self.obj)
return self.render(resource)

0 comments on commit dbd2311

Please sign in to comment.