def setUp(self): from google.appengine.ext.testbed import TASKQUEUE_SERVICE_NAME, Testbed testbed = Testbed() testbed.activate() self.addCleanup(testbed.deactivate) self.addCleanup(TestAsync_decorate_job.foo_values.clear) testbed.init_taskqueue_stub() self._taskq_service = testbed.get_stub(TASKQUEUE_SERVICE_NAME)
def setUp(self): from google.appengine.ext.testbed import ( TASKQUEUE_SERVICE_NAME, Testbed, ) testbed = Testbed() testbed.activate() self.addCleanup(testbed.deactivate) self.addCleanup(TestAsync_decorate_job.foo_values.clear) testbed.init_taskqueue_stub() self._taskq_service = testbed.get_stub(TASKQUEUE_SERVICE_NAME)
def process_request(self, request): """Processes request by handling all possible file uploads. It implements a hook for Django middleware as described in its documentation. Args: request: A django.http.HttpRequest. """ request.file_uploads = {} # we only care about POST and which has form data with file. if request.method == 'POST' and ('multipart/form-data' in request.META.get( 'CONTENT_TYPE', '')): testbed = request.META[TESTBED_ARG_KEY] wsgi_input = request.META['wsgi.input'] wsgi_input.seek(0) fields = cgi.FieldStorage(wsgi_input, environ=request.META) for key in fields: field = fields[key] if isinstance(field, cgi.FieldStorage): if ('content-disposition' in field.headers and 'filename' in field.disposition_options): # create a mock blob info and assign it to request data filename = field.disposition_options['filename'] blob_entity = testbed.get_stub('blobstore').CreateBlob( filename, 'fake content') # set other properties of blob info blob_entity['filename'] = filename blob_entity['content_type'] = field.headers[ 'content-type'] datastore.Put(blob_entity) blob_info = blobstore.BlobInfo(blob_entity) # set request data request.file_uploads[key] = blob_info request.POST[key] = filename # format blob info for Django by adding the name property. blob_info.name = field.disposition_options['filename']
def process_request(self, request): """Processes request by handling all possible file uploads. It implements a hook for Django middleware as described in its documentation. Args: request: A django.http.HttpRequest. """ request.file_uploads = {} # we only care about POST and which has form data with file. if request.method == "POST" and ("multipart/form-data" in request.META.get("CONTENT_TYPE", "")): testbed = request.META[TESTBED_ARG_KEY] wsgi_input = request.META["wsgi.input"] wsgi_input.seek(0) fields = cgi.FieldStorage(wsgi_input, environ=request.META) for key in fields: field = fields[key] if isinstance(field, cgi.FieldStorage): if "content-disposition" in field.headers and "filename" in field.disposition_options: # create a mock blob info and assign it to request data filename = field.disposition_options["filename"] blob_entity = testbed.get_stub("blobstore").CreateBlob(filename, "fake content") # set other properties of blob info blob_entity["filename"] = filename blob_entity["content_type"] = field.headers["content-type"] datastore.Put(blob_entity) blob_info = blobstore.BlobInfo(blob_entity) # set request data request.file_uploads[key] = blob_info request.POST[key] = filename # format blob info for Django by adding the name property. blob_info.name = field.disposition_options["filename"]
def taskqueue(testbed): yield testbed.get_stub(testbed.TASKQUEUE_SERVICE_NAME)