Error codes for filters

* add tests

Signed-off-by: Alexander Maznev <alexander.maznev@gmail.com>
This commit is contained in:
Alexander Maznev 2016-10-10 07:25:26 -05:00 committed by pik
parent 8681aff4f1
commit d9350b0db8
2 changed files with 16 additions and 7 deletions

View File

@ -15,7 +15,7 @@
from twisted.internet import defer from twisted.internet import defer
from synapse.api.errors import AuthError, SynapseError from synapse.api.errors import AuthError, SynapseError, StoreError, Codes
from synapse.http.servlet import RestServlet, parse_json_object_from_request from synapse.http.servlet import RestServlet, parse_json_object_from_request
from synapse.types import UserID from synapse.types import UserID
@ -45,7 +45,7 @@ class GetFilterRestServlet(RestServlet):
raise AuthError(403, "Cannot get filters for other users") raise AuthError(403, "Cannot get filters for other users")
if not self.hs.is_mine(target_user): if not self.hs.is_mine(target_user):
raise SynapseError(400, "Can only get filters for local users") raise AuthError(403, "Can only get filters for local users")
try: try:
filter_id = int(filter_id) filter_id = int(filter_id)
@ -59,8 +59,8 @@ class GetFilterRestServlet(RestServlet):
) )
defer.returnValue((200, filter.get_filter_json())) defer.returnValue((200, filter.get_filter_json()))
except KeyError: except (KeyError, StoreError):
raise SynapseError(400, "No such filter") raise SynapseError(400, "No such filter", errcode=Codes.NOT_FOUND)
class CreateFilterRestServlet(RestServlet): class CreateFilterRestServlet(RestServlet):

View File

@ -19,7 +19,7 @@ from . import V2AlphaRestTestCase
from synapse.rest.client.v2_alpha import filter from synapse.rest.client.v2_alpha import filter
from synapse.api.errors import StoreError from synapse.api.errors import StoreError, Codes
class FilterTestCase(V2AlphaRestTestCase): class FilterTestCase(V2AlphaRestTestCase):
@ -82,11 +82,20 @@ class FilterTestCase(V2AlphaRestTestCase):
(code, response) = yield self.mock_resource.trigger_get( (code, response) = yield self.mock_resource.trigger_get(
"/user/%s/filter/2" % (self.USER_ID) "/user/%s/filter/2" % (self.USER_ID)
) )
self.assertEquals(404, code) self.assertEquals(400, code)
@defer.inlineCallbacks @defer.inlineCallbacks
def test_get_filter_no_user(self): def test_get_filter_no_user(self):
(code, response) = yield self.mock_resource.trigger_get( (code, response) = yield self.mock_resource.trigger_get(
"/user/%s/filter/0" % (self.USER_ID) "/user/%s/filter/0" % (self.USER_ID)
) )
self.assertEquals(404, code) self.assertEquals(400, code)
self.assertEquals(response['errcode'], Codes.FORBIDDEN)
@defer.inlineCallbacks
def test_get_filter_missing_id(self):
(code, response) = yield self.mock_resource.trigger_get(
"/user/%s/filter/0" % (self.USER_ID)
)
self.assertEquals(400, code)
self.assertEquals(response['errcode'], Codes.NOT_FOUND)