Example #1
0
    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)
Example #3
0
    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']
Example #4
0
    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"]
Example #5
0
def taskqueue(testbed):

    yield testbed.get_stub(testbed.TASKQUEUE_SERVICE_NAME)