def sys_path_append(): import os import sys import google base = os.path.join(os.path.dirname(google.__file__), "../lib/") for path in ["endpoints-1.0", "protorpc-1.0"]: path = os.path.join(base, path) if os.path.exists(path): sys.path.append(path) else: raise sys_path_append() from google.appengine.ext import testbed from protorpc import message_types, remote import endpoints import webob @endpoints.api(name='Endpoint', version='test') class Endpoint(remote.Service): @endpoints.method(message_types.VoidMessage, message_types.VoidMessage) def get(self, _request): raise endpoints.BadRequestException("raising from inside") def test(): app = endpoints.api_server([Endpoint], restricted=False) url = '/_ah/spi/Endpoint.get' environ = { 'CONTENT_TYPE': 'application/json', 'REQUEST_METHOD': 'POST', } request = webob.BaseRequest.blank(url, environ) response = request.get_response(app) assert len(response.body) == int(response.headers["content-length"]) if __name__ == '__main__': tb = testbed.Testbed() tb.setup_env(current_version_id='testbed.version') tb.activate() try: test() finally: tb.deactivate()