Added stub for membership resource/tests.

This commit is contained in:
Robert Kolner committed 2013-02-20 20:29:18 +01:00
1 parent 4cea50ae6c
commit c244ab5545
3 files changed
+83

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
from tastypie.resources import ModelResource, ALL
from tastypie.authorization import Authorization
from main.models import *
class MembershipResource(ModelResource):
"""
This class provides following endpoints:
(1) /api/v1/membership/
"""
class Meta:
queryset = Membership.objects.all()
resource_name = 'membership'
list_allowed_methods = [ 'get', 'post' ]
detail_allowed_methods = [ 'get', 'post' ]
authorization = Authorization() # TODO: for dev (VERY INSECURE)
+64
View File
@@ -0,0 +1,64 @@
import logging
from support.test import ResourceTestCase
from main.models import Membership
class MembershipTest(ResourceTestCase):
fixtures = [ 'testdata.json' ]
def assertValidMembershipData(self, membership):
self.assertEquals(type(membership), dict)
self.assertKeys(member, [
u'id',
u'start_date',
u'mtype',
u'payment',
u'member',
u'created',
u'updated',
u'resource_uri'
])
self.assertNotEquals(None,member['id'])
self.assertNotEquals(None,member['start_type'])
self.assertNotEquals(None,member['mtype'])
self.assertNotEquals(None,member['member'])
self.assertNotEquals(None,member['created'])
self.assertNotEquals(None,member['updated'])
self.assertNotEquals(None,member['resource_uri'])
def setUp(self):
super(MembershipTest, self).setUp()
# URI to get the existing member. We'll probably
# need it at one point or another.
self.all_membership_url = '/api/v1/membership/'
def test_check_request_types(self):
"""
Tests that the endpoint responds to correct types of requests.
"""
resp = self.api_client.get(self.all_members_url, format='json')
self.assertNotEquals(resp.status_code, 405)
resp = self.api_client.post(self.all_members_url)
self.assertNotEquals(resp.status_code, 405)
resp = self.api_client.put(self.all_members_url)
self.assertHttpMethodNotAllowed(resp)
resp = self.api_client.delete(self.all_members_url)
self.assertHttpMethodNotAllowed(resp)
def test_get_memberships(self):
"""
Tests that we can get a premade user correctly.
"""
resp = self.api_client.get(self.membership_url, format='json')
self.assertValidJSONResponse(resp)
# Check if the returned data is correct:
member = self.deserialize(resp)
self.assertValidMembershipData(member)
+2
View File
@@ -1,10 +1,12 @@
from django.conf.urls.defaults import *
from tastypie.api import Api
from main.api.member import MemberResource
from main.api.membership import MembershipResource
from main.api.group import GroupResource
v1_api = Api(api_name='v1')
v1_api.register(MemberResource())
v1_api.register(MembershipResource())
v1_api.register(GroupResource())
urlpatterns = patterns('',