def test_protocol_selection_error(self): import wsme.protocol class P(wsme.protocol.Protocol): def accept(self, r): raise Exception('test') root = WSRoot() root.addprotocol(P()) from webob import Request req = Request.blank('/test?check=a&check=b&name=Bob') res = root._handle_request(req) assert res.status_int == 500 assert res.content_type == 'text/plain' assert res.text == u('Error while selecting protocol: test'), req.text
def test_protocol_selection_accept_mismatch(self): """Verify that we get a 406 error on wrong Accept header.""" class P(wsme.protocol.Protocol): name = "test" def accept(self, r): return False root = WSRoot() root.addprotocol(wsme.rest.protocol.RestProtocol()) root.addprotocol(P()) req = Request.blank('/test?check=a&check=b&name=Bob') req.method = 'GET' res = root._handle_request(req) assert res.status_int == 406 assert res.content_type == 'text/plain' assert res.text.startswith( 'None of the following protocols can handle this request' ), req.text
def test_protocol_selection_content_type_mismatch(self): """Verify that we get a 415 error on wrong Content-Type header.""" class P(wsme.protocol.Protocol): name = "test" def accept(self, r): return False root = WSRoot() root.addprotocol(wsme.rest.protocol.RestProtocol()) root.addprotocol(P()) req = Request.blank('/test?check=a&check=b&name=Bob') req.method = 'POST' req.headers['Content-Type'] = "test/unsupported" res = root._handle_request(req) assert res.status_int == 415 assert res.content_type == 'text/plain' assert res.text.startswith( 'Unacceptable Content-Type: test/unsupported not in'), req.text
def test_protocol_selection_content_type_mismatch(self): """Verify that we get a 415 error on wrong Content-Type header.""" class P(wsme.protocol.Protocol): name = "test" def accept(self, r): return False root = WSRoot() root.addprotocol(wsme.rest.protocol.RestProtocol()) root.addprotocol(P()) req = Request.blank('/test?check=a&check=b&name=Bob') req.method = 'POST' req.headers['Content-Type'] = "test/unsupported" res = root._handle_request(req) assert res.status_int == 415 assert res.content_type == 'text/plain' assert res.text.startswith( 'Unacceptable Content-Type: test/unsupported not in' ), req.text