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)
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]))
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]))
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()
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'])
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())
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'])
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.")
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.")
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."))
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'])
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'])
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.")
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())
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)
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)