Some things, I think. Not sure what, but it's probably important enough to commit.

This commit is contained in:
Robert Kolner committed 2013-05-29 20:02:05 +02:00
1 parent 4929b14bcf
commit d0dc823274
2 files changed
+50 -11

No files matched your search

+29 -8
View File
@@ -2,10 +2,12 @@ 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.http import HttpNotFound, HttpAccepted, HttpCreated, HttpResponse, HttpBadRequest
from tastypie.resources import Resource
from dusken.models import Member, Group
import logging
class MembersByGroupObject(object):
def __init__(self):
self.group_id = 0
@@ -18,8 +20,8 @@ class MembersByGroupResource(Resource):
class Meta:
resource_name = 'membersbygroup'
object_class = MembersByGroupObject
list_allowed_methods = [ 'post' ]
detail_allowed_methods = [ 'get', 'delete' ]
list_allowed_methods = []
detail_allowed_methods = [ 'get', 'delete', 'post' ]
authorization = Authorization() # TODO: Obvious
def detail_uri_kwargs(self, bundle_or_obj):
@@ -37,9 +39,11 @@ class MembersByGroupResource(Resource):
return kwargs
def get_object_list(self, request):
logging.info("Someone tried to get_object_list, but I can't do that, man, I can't do that!")
pass # We can't return lists.
def obj_get_list(self, request=None, **kwargs):
logging.info("Someone tried to obj_get_list, but I can't do that, man, I can't do that!")
pass # We can't return lists.
def obj_get(self, request=None, **kwargs):
@@ -72,20 +76,37 @@ class MembersByGroupResource(Resource):
return obj
def obj_create(self, request=None, **kwargs):
pass # TODO
def post_detail(self, request=None, **kwargs):
"""
Creates a new relationship be.
"""
keys = kwargs['pk'].split('/')
if len(keys) < 2:
raise ImmediateHttpResponse(HttpBadRequest())
member_id = keys[0]
group_id = keys[1]
logging.error("Calling create function with parameters {0}".format(str(kwargs)))
return HttpCreated()
def obj_update(self, bundle, request=None, **kwargs):
pass # We can't update.
logging.info("Someone tried to obj_update, but I can't do that, man, I can't do that!")
return # We can't update.
def obj_delete_list(self, request=None, **kwargs):
pass # We can't delete lists.
logging.info("Someone tried to obj_delete_list, but I can't do that, man, I can't do that!")
return # We can't delete lists.
def obj_delete(self, request=None, **kwargs):
print str(kwargs +"\n\n\n\n")
group = Group.objects.get(id=group_id)
member = Member.objects.get(id=user_id)
group.user_set.remove(member)
def rollback(self, bundles):
pass
logging.info("Someone tried to rollback, but I can't do that, man, I can't do that!")
return
+21 -3
View File
@@ -26,7 +26,7 @@ class MembersByGroupTest(ResourceTestCase):
self.assertHttpMethodNotAllowed(resp)
resp = self.api_client.post(self.url)
self.assertNotEquals(resp.status_code, 405)
self.assertHttpMethodNotAllowed(resp)
resp = self.api_client.put(self.url)
self.assertHttpMethodNotAllowed(resp)
@@ -48,7 +48,25 @@ class MembersByGroupTest(ResourceTestCase):
self.assertValidJSONResponse(resp)
def test_create_relation(self):
pass
group = Group(name="Design", posix_name="design")
data = {
'member_id': self.member.pk,
'group_id': group.pk
}
resp = self.api_client.post(self.url, format='json', data=data)
self.assertHttpCreated(resp)
self.assertNotEquals(self.member.groups.filter(name=group.name).count(), 0)
def test_remove_relation(self):
pass
data = {
'member_id': self.member.pk,
'group_id': self.group.pk
}
resp = self.api_client.delete(self.url, format='json', data=data)
self.assertHttpAccepted(resp)
self.assertEquals(self.member.groups.filter(name=group.name).count(), 0)
resp = self.api_client.delete(self.url, format='json', data=data)
self.assertHttpGone(resp)