Archived
Added few tests to membersbygroup and added possibility of checking if a user belongs to a given group.
This commit is contained in:
1 parent
65bb15ee32
commit
4929b14bcf
2 files changed
+37
-5
No files matched your search
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user