Added few tests to membersbygroup and added possibility of checking if a user belongs to a given group.

This commit is contained in:
Robert Kolner committed 2013-05-22 21:09:24 +02:00
1 parent 65bb15ee32
commit 4929b14bcf
2 files changed
+37 -5

No files matched your search

+20 -3
View File
@@ -1,6 +1,8 @@
from tastypie import fields
from tastypie.authorization import Authorization
from tastypie.bundle import Bundle
from tastypie.exceptions import ImmediateHttpResponse
from tastypie.http import HttpNotFound
from tastypie.resources import Resource
from dusken.models import Member, Group
@@ -24,7 +26,6 @@ class MembersByGroupResource(Resource):
kwargs = {
'resource_name': self._meta.resource_name,
}
if isinstance(bundle_or_obj, Bundle):
kwargs['pk'] = bundle_or_obj.obj.group_id
else:
@@ -42,15 +43,31 @@ class MembersByGroupResource(Resource):
pass # We can't return lists.
def obj_get(self, request=None, **kwargs):
group_id = int(kwargs['pk'])
keys = kwargs['pk'].split("/")
group_id = int(keys[0])
group = Group.objects.get(id=group_id)
member = None
if len(keys) > 1:
member_id = int(keys[1])
member = Member.objects.get(id=member_id)
if member is None:
return None
if member.groups.filter(name=group.name).count() == 0:
raise ImmediateHttpResponse(HttpNotFound())
if group is None:
return None
obj = MembersByGroupObject()
obj.group_id = group.id
for member in group.user_set.all():
if member is None:
for member in group.user_set.all():
obj.members.append(member.id)
else:
obj.members.append(member.id)
return obj
+17 -2
View File
@@ -7,6 +7,14 @@ class MembersByGroupTest(ResourceTestCase):
def setUp(self):
super(MembersByGroupTest, self).setUp()
self.member = Member(username='robert', email='robert.kolner@gmail.com', phone_number=90567268)
self.member.save()
self.group = Group(name="EDB", posix_name="edb")
self.group.save()
self.group.user_set.add(self.member)
self.group.save()
# URI to get all members by group relations (not functional, needs more things at the end)
self.url = '/api/v1/membersbygroup/'
@@ -27,10 +35,17 @@ class MembersByGroupTest(ResourceTestCase):
self.assertHttpMethodNotAllowed(resp)
def test_get_all_relations(self):
pass
url = self.url + str(self.group.pk) + "/"
resp = self.api_client.get(url, format="json")
self.assertValidJSONResponse(resp)
data = self.deserialize(resp)
self.assertEquals(len(data['members']), self.group.user_set.count())
self.assertEquals(data['members'][0], self.member.pk)
def test_get_a_relation(self):
pass
url = self.url + str(self.group.pk) +"/" +str(self.member.pk) +"/"
resp = self.api_client.get(url, format='json')
self.assertValidJSONResponse(resp)
def test_create_relation(self):
pass