Archived
Moved api to an own module. Improved member-tests.
This commit is contained in:
1 parent
c4da4f4393
commit
520e8f8872
5 files changed
+65
-17
No files matched your search
@@ -1,10 +0,0 @@
|
||||
from tastypie.resources import ModelResource
|
||||
from tastypie.authorization import Authorization
|
||||
from main.models import *
|
||||
|
||||
|
||||
class MemberResource(ModelResource):
|
||||
class Meta:
|
||||
queryset = Member.objects.all()
|
||||
resource_name = 'member'
|
||||
authorization= Authorization() # for dev (VERY INSECURE)
|
||||
Whitespace-only changes.
@@ -0,0 +1,21 @@
|
||||
from tastypie.resources import ModelResource, ALL
|
||||
from tastypie.authorization import Authorization
|
||||
from main.models import *
|
||||
|
||||
|
||||
class MemberResource(ModelResource):
|
||||
"""
|
||||
This class provides following endpoints:
|
||||
(1) /api/v1/member/
|
||||
(2) /api/v1/member/{id}/
|
||||
"""
|
||||
class Meta:
|
||||
queryset = Member.objects.all()
|
||||
resource_name = 'member'
|
||||
list_allowed_methods = [ 'get', 'post' ]
|
||||
detail_allowed_methods = [ 'get', 'post' ]
|
||||
authorization = Authorization() # TODO: for dev (VERY INSECURE)
|
||||
filtering = {
|
||||
'username' : ALL
|
||||
}
|
||||
|
||||
@@ -6,6 +6,10 @@ from main.models import Member
|
||||
class MemberTest(ResourceTestCase):
|
||||
fixtures = [ 'members.json' ]
|
||||
|
||||
def assertValidMemberData(self, member):
|
||||
self.assertEquals(type(member), dict)
|
||||
self.assertKeys(member, [ u'member_id', u'email', u'username', u'phonenumber', u'givenname', u'dateofbirth', u'surname', u'resource_uri' ])
|
||||
|
||||
def setUp(self):
|
||||
super(MemberTest, self).setUp()
|
||||
|
||||
@@ -18,6 +22,23 @@ class MemberTest(ResourceTestCase):
|
||||
self.all_members_url = '/api/v1/member/'
|
||||
self.member_url = self.all_members_url + '{}/'.format(self.member.pk)
|
||||
|
||||
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_member(self):
|
||||
"""
|
||||
Tests that we can get a premade user correctly.
|
||||
@@ -27,14 +48,11 @@ class MemberTest(ResourceTestCase):
|
||||
|
||||
# Check if the returned data is correct:
|
||||
member = self.deserialize(resp)
|
||||
|
||||
self.assertKeys(member, [ u'member_id', u'email', u'username', u'phonenumber', u'givenname', u'dateofbirth', u'surname', u'resource_uri' ])
|
||||
self.assertEqual(member['username'], 'robertko')
|
||||
self.assertEqual(member['email'], 'robert.kolner@studentersamfundet.no')
|
||||
self.assertValidMemberData(member)
|
||||
|
||||
def test_get_all_members(self):
|
||||
"""
|
||||
Tests that we can get multiple users from the api.
|
||||
Tests that we can get all users from the api.
|
||||
"""
|
||||
resp = self.api_client.get(self.all_members_url, format='json')
|
||||
self.assertValidJSONResponse(resp)
|
||||
@@ -43,5 +61,24 @@ class MemberTest(ResourceTestCase):
|
||||
all_members = self.deserialize(resp)['objects']
|
||||
self.assertEqual(len(all_members), 2)
|
||||
|
||||
# TODO: Check for correctness of data.
|
||||
for index in range(len(all_members)):
|
||||
self.assertValidMemberData(all_members[index])
|
||||
|
||||
def test_get_filtered_members(self):
|
||||
"""
|
||||
Tests that we can get a filtered list from the api.
|
||||
"""
|
||||
data = {
|
||||
"username" : "robertko"
|
||||
}
|
||||
|
||||
resp = self.api_client.get(self.all_members_url, format='json', data=data)
|
||||
self.assertValidJSONResponse(resp)
|
||||
|
||||
# Check if the returned data is correct:
|
||||
all_members = self.deserialize(resp)['objects']
|
||||
self.assertEqual(len(all_members), 1)
|
||||
|
||||
member = all_members[0]
|
||||
self.assertValidMemberData(member)
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
from django.conf.urls.defaults import *
|
||||
from tastypie.api import Api
|
||||
from main.api import MemberResource
|
||||
from main.api.member import MemberResource
|
||||
|
||||
v1_api = Api(api_name='v1')
|
||||
v1_api.register(MemberResource())
|
||||
|
||||
Reference in new issue
Block a user