示例#1
0
文件: tests.py 项目: jakedahn/horizon
    def test_upload(self):
        container = self.containers.first()
        obj = self.objects.first()
        OBJECT_DATA = 'objectData'

        temp_file = tempfile.TemporaryFile()
        temp_file.write(OBJECT_DATA)
        temp_file.flush()
        temp_file.seek(0)

        self.mox.StubOutWithMock(api, 'swift_upload_object')
        api.swift_upload_object(IsA(http.HttpRequest),
                                container.name,
                                obj.name,
                                OBJECT_DATA).AndReturn(obj)
        self.mox.StubOutWithMock(obj, 'sync_metadata')
        obj.sync_metadata()
        self.mox.ReplayAll()
        upload_url = reverse('horizon:nova:containers:object_upload',
                             args=[container.name])
        res = self.client.get(upload_url)
        self.assertContains(res, 'enctype="multipart/form-data"')

        formData = {'method': forms.UploadObject.__name__,
                    'container_name': container.name,
                    'name': obj.name,
                    'object_file': temp_file}
        res = self.client.post(upload_url, formData)

        index_url = reverse('horizon:nova:containers:object_index',
                            args=[container.name])
        self.assertRedirectsNoFollow(res, index_url)
示例#2
0
    def test_upload(self):
        OBJECT_DATA = 'objectData'
        OBJECT_FILE = tempfile.TemporaryFile()
        OBJECT_FILE.write(OBJECT_DATA)
        OBJECT_FILE.flush()
        OBJECT_FILE.seek(0)
        OBJECT_NAME = 'objectName'

        formData = {'method': 'UploadObject',
                    'container_name': self.CONTAINER_NAME,
                    'name': OBJECT_NAME,
                    'object_file': OBJECT_FILE}

        self.mox.StubOutWithMock(api, 'swift_upload_object')
        api.swift_upload_object(IsA(http.HttpRequest),
                                unicode(self.CONTAINER_NAME),
                                unicode(OBJECT_NAME),
                                OBJECT_DATA)

        self.mox.ReplayAll()

        t = template.loader.get_template('nova/objects/_upload.html')
        c = template.Context({"container_name": self.CONTAINER_NAME})
        rendered = t.render(c)
        self.assertNotEqual(-1, rendered.find('enctype="multipart/form-data"'))

        res = self.client.post(reverse('horizon:nova:containers:object_upload',
                                       args=[self.CONTAINER_NAME]),
                               formData)

        self.assertRedirectsNoFollow(res,
                            reverse('horizon:nova:containers:object_index',
                                    args=[self.CONTAINER_NAME]))
示例#3
0
    def test_upload(self):
        OBJECT_DATA = 'objectData'
        OBJECT_FILE = tempfile.TemporaryFile()
        OBJECT_FILE.write(OBJECT_DATA)
        OBJECT_FILE.flush()
        OBJECT_FILE.seek(0)
        OBJECT_NAME = 'objectName'

        formData = {'method': 'UploadObject',
                    'container_name': self.CONTAINER_NAME,
                    'name': OBJECT_NAME,
                    'object_file': OBJECT_FILE}

        self.mox.StubOutWithMock(api, 'swift_upload_object')
        api.swift_upload_object(IsA(http.HttpRequest),
                                unicode(self.CONTAINER_NAME),
                                unicode(OBJECT_NAME),
                                OBJECT_DATA)

        self.mox.ReplayAll()

        res = self.client.get(reverse('horizon:nova:containers:object_upload',
                                       args=[self.CONTAINER_NAME]))

        self.assertContains(res, 'enctype="multipart/form-data"')

        res = self.client.post(reverse('horizon:nova:containers:object_upload',
                                       args=[self.CONTAINER_NAME]),
                               formData)

        self.assertRedirectsNoFollow(res,
                            reverse('horizon:nova:containers:object_index',
                                    args=[self.CONTAINER_NAME]))
示例#4
0
文件: tests.py 项目: katzj/horizon
    def test_upload(self):
        OBJECT_DATA = 'objectData'
        OBJECT_FILE = tempfile.TemporaryFile()
        OBJECT_FILE.write(OBJECT_DATA)
        OBJECT_FILE.flush()
        OBJECT_FILE.seek(0)
        OBJECT_NAME = 'objectName'

        formData = {'method': 'UploadObject',
                    'container_name': self.CONTAINER_NAME,
                    'name': OBJECT_NAME,
                    'object_file': OBJECT_FILE}

        self.mox.StubOutWithMock(api, 'swift_upload_object')
        api.swift_upload_object(IsA(http.HttpRequest),
                                unicode(self.CONTAINER_NAME),
                                unicode(OBJECT_NAME),
                                OBJECT_DATA)

        self.mox.ReplayAll()

        res = self.client.post(reverse('horizon:nova:containers:object_upload',
                                       args=[self.CONTAINER_NAME]),
                               formData)

        self.assertRedirectsNoFollow(res,
                            reverse('horizon:nova:containers:object_upload',
                                    args=[self.CONTAINER_NAME]))

        self.mox.VerifyAll()
示例#5
0
    def handle(self, request, data):
        api.swift_upload_object(request, data['container_name'], data['name'],
                                self.files['object_file'].read())

        messages.success(request, _("Object was successfully uploaded."))
        return shortcuts.redirect("horizon:nova:containers:object_index",
                                  data['container_name'])
示例#6
0
文件: forms.py 项目: katzj/horizon
    def handle(self, request, data):
        api.swift_upload_object(
                request,
                data['container_name'],
                data['name'],
                self.files['object_file'].read())

        messages.success(request, _("Object was successfully uploaded."))
        return shortcuts.redirect(request.build_absolute_uri())
示例#7
0
    def handle(self, request, data):
        api.swift_upload_object(
                request,
                data['container_name'],
                data['name'],
                self.files['object_file'].read())

        messages.success(request, _("Object was successfully uploaded."))
        return shortcuts.redirect("horizon:nova:containers:object_index",
                                  data['container_name'])
示例#8
0
    def test_upload(self):
        container = self.containers.first()
        obj = self.objects.first()
        OBJECT_DATA = 'objectData'

        temp_file = tempfile.TemporaryFile()
        temp_file.write(OBJECT_DATA)
        temp_file.flush()
        temp_file.seek(0)

        self.mox.StubOutWithMock(api, 'swift_upload_object')
        api.swift_upload_object(IsA(http.HttpRequest),
                                container.name, obj.name,
                                IsA(InMemoryUploadedFile)).AndReturn(obj)
        self.mox.ReplayAll()

        upload_url = reverse('horizon:project:containers:object_upload',
                             args=[container.name])

        res = self.client.get(upload_url)
        self.assertTemplateUsed(res, 'project/containers/upload.html')

        res = self.client.get(upload_url)
        self.assertContains(res, 'enctype="multipart/form-data"')

        formData = {
            'method': forms.UploadObject.__name__,
            'container_name': container.name,
            'name': obj.name,
            'object_file': temp_file
        }
        res = self.client.post(upload_url, formData)

        index_url = reverse('horizon:project:containers:index',
                            args=[wrap_delimiter(container.name)])
        self.assertRedirectsNoFollow(res, index_url)

        # Test invalid filename
        formData['name'] = "contains/a/slash"
        res = self.client.post(upload_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "Slash is not an allowed character.")
示例#9
0
    def test_upload(self):
        container = self.containers.first()
        obj = self.objects.first()
        OBJECT_DATA = 'objectData'

        temp_file = tempfile.TemporaryFile()
        temp_file.write(OBJECT_DATA)
        temp_file.flush()
        temp_file.seek(0)

        self.mox.StubOutWithMock(api, 'swift_upload_object')
        api.swift_upload_object(IsA(http.HttpRequest),
                                container.name,
                                obj.name,
                                IsA(InMemoryUploadedFile)).AndReturn(obj)
        self.mox.ReplayAll()

        upload_url = reverse('horizon:nova:containers:object_upload',
                             args=[container.name])

        res = self.client.get(upload_url)
        self.assertTemplateUsed(res, 'nova/containers/upload.html')

        res = self.client.get(upload_url)
        self.assertContains(res, 'enctype="multipart/form-data"')

        formData = {'method': forms.UploadObject.__name__,
                    'container_name': container.name,
                    'name': obj.name,
                    'object_file': temp_file}
        res = self.client.post(upload_url, formData)

        index_url = reverse('horizon:nova:containers:index',
                            args=[wrap_delimiter(container.name)])
        self.assertRedirectsNoFollow(res, index_url)

        # Test invalid filename
        formData['name'] = "contains/a/slash"
        res = self.client.post(upload_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "Slash is not an allowed character.")
示例#10
0
 def handle(self, request, data):
     object_file = self.files['object_file']
     if data['path']:
         object_path = "/".join([data['path'].rstrip("/"), data['name']])
     else:
         object_path = data['name']
     try:
         obj = api.swift_upload_object(request, data['container_name'],
                                       object_path, object_file)
         messages.success(request, _("Object was successfully uploaded."))
         return obj
     except:
         exceptions.handle(request, _("Unable to upload object."))
示例#11
0
文件: forms.py 项目: jakedahn/horizon
 def handle(self, request, data):
     object_file = self.files['object_file']
     try:
         obj = api.swift_upload_object(request,
                                       data['container_name'],
                                       data['name'],
                                       object_file.read())
         obj.metadata['orig-filename'] = object_file.name
         obj.sync_metadata()
         messages.success(request, _("Object was successfully uploaded."))
     except:
         exceptions.handle(request, _("Unable to upload object."))
     return shortcuts.redirect("horizon:nova:containers:object_index",
                               data['container_name'])
示例#12
0
 def handle(self, request, data):
     object_file = self.files['object_file']
     try:
         obj = api.swift_upload_object(request,
                                       data['container_name'],
                                       data['name'],
                                       object_file)
         obj.metadata['orig-filename'] = object_file.name
         obj.sync_metadata()
         messages.success(request, _("Object was successfully uploaded."))
     except:
         exceptions.handle(request, _("Unable to upload object."))
     return shortcuts.redirect("horizon:nova:containers:object_index",
                               data['container_name'])
示例#13
0
文件: tests.py 项目: nimbis/horizon
    def test_upload(self):
        container = self.containers.first()
        obj = self.objects.first()
        OBJECT_DATA = "objectData"

        temp_file = tempfile.TemporaryFile()
        temp_file.write(OBJECT_DATA)
        temp_file.flush()
        temp_file.seek(0)

        self.mox.StubOutWithMock(api, "swift_upload_object")
        api.swift_upload_object(IsA(http.HttpRequest), container.name, obj.name, IsA(InMemoryUploadedFile)).AndReturn(
            obj
        )
        self.mox.StubOutWithMock(obj, "sync_metadata")
        obj.sync_metadata()
        self.mox.ReplayAll()
        upload_url = reverse("horizon:nova:containers:object_upload", args=[container.name])
        res = self.client.get(upload_url)
        self.assertContains(res, 'enctype="multipart/form-data"')

        formData = {
            "method": forms.UploadObject.__name__,
            "container_name": container.name,
            "name": obj.name,
            "object_file": temp_file,
        }
        res = self.client.post(upload_url, formData)

        index_url = reverse("horizon:nova:containers:object_index", args=[container.name])
        self.assertRedirectsNoFollow(res, index_url)

        # Test invalid filename
        formData["name"] = "contains/a/slash"
        res = self.client.post(upload_url, formData)
        self.assertNoMessages()
        self.assertContains(res, "Slash is not an allowed character.")
示例#14
0
    def test_swift_upload_object(self):
        container = self.containers.first()
        obj = self.objects.first()
        fake_name = 'fake_object.jpg'

        class FakeFile(object):
            def __init__(self):
                self.name = fake_name
                self.data = obj.data
                self.size = len(obj.data)

        headers = {'X-Object-Meta-Orig-Filename': fake_name}

        swift_api = self.stub_swiftclient()
        swift_api.put_object(container.name,
                             obj.name,
                             IsA(FakeFile),
                             headers=headers)
        self.mox.ReplayAll()

        api.swift_upload_object(self.request,
                                container.name,
                                obj.name,
                                FakeFile())
示例#15
0
 def handle(self, request, data):
     object_file = self.files['object_file']
     if data['path']:
         object_path = "/".join([data['path'].rstrip("/"), data['name']])
     else:
         object_path = data['name']
     try:
         obj = api.swift_upload_object(request,
                                       data['container_name'],
                                       object_path,
                                       object_file)
         messages.success(request, _("Object was successfully uploaded."))
         return obj
     except:
         exceptions.handle(request, _("Unable to upload object."))
示例#16
0
    def test_swift_upload_object(self):
        container = self.containers.first()
        obj = self.objects.first()
        OBJECT_DATA = 'someData'

        swift_api = self.stub_swiftclient()
        swift_api.get_container(container.name).AndReturn(container)
        self.mox.StubOutWithMock(container, 'create_object')
        container.create_object(obj.name).AndReturn(obj)
        self.mox.StubOutWithMock(obj, 'send')
        obj.send(OBJECT_DATA).AndReturn(obj)
        self.mox.ReplayAll()

        ret_val = api.swift_upload_object(self.request, container.name,
                                          obj.name, OBJECT_DATA)
        self.assertEqual(ret_val, obj)
示例#17
0
    def test_swift_upload_object(self):
        container = self.containers.first()
        obj = self.objects.first()
        OBJECT_DATA = 'someData'

        swift_api = self.stub_swiftclient()
        swift_api.get_container(container.name).AndReturn(container)
        self.mox.StubOutWithMock(container, 'create_object')
        container.create_object(obj.name).AndReturn(obj)
        self.mox.StubOutWithMock(obj, 'write')
        obj.write(OBJECT_DATA).AndReturn(obj)
        self.mox.ReplayAll()

        ret_val = api.swift_upload_object(self.request,
                                          container.name,
                                          obj.name,
                                          OBJECT_DATA)
        self.assertEqual(ret_val, obj)