def test_tus_multi_part_upload(self): from tus import Tus, Zope2RequestAdapter req = self.request fi = open(test_file) req.REQUEST_METHOD = 'POST' length = os.path.getsize(test_file) req.environ['ENTITY_LENGTH'] = str(length * 2) tus = Tus(Zope2RequestAdapter(req), **self.options) tus.handle() req.REQUEST_METHOD = 'PATCH' req._file = fi req.URL = req.response.getHeader('Location') req.environ['CONTENT_LENGTH'] = str(length) req.environ['OFFSET'] = '0' tus.handle() assert not tus.upload_finished # twice req.environ['OFFSET'] = str(length) tus.handle() assert tus.upload_finished fipath = tus.get_filepath() otherfi = open(fipath) fi.seek(0) self.assertEquals(len(fi.read()) * 2, len(otherfi.read())) fi.close() otherfi.close()
def test_tus_multi_part_upload(self): from tus import Tus, WebobAdapter req = Request.blank('/', method='POST') adapter = WebobAdapter(req) fi = open(test_file) length = os.path.getsize(test_file) req.headers['ENTITY_LENGTH'] = str(length * 2) tus = Tus(adapter, **self.options) tus.handle() req = Request.blank('/' + adapter.resp.headers.get('Location'), method='PATCH') req.body_file = fi req.headers['CONTENT_LENGTH'] = str(length) req.headers['OFFSET'] = '0' adapter = WebobAdapter(req) tus = Tus(adapter, **self.options) tus.handle() assert not tus.upload_finished # twice req.headers['OFFSET'] = str(length) tus.handle() assert tus.upload_finished fipath = tus.get_filepath() otherfi = open(fipath) fi.seek(0) self.assertEquals(len(fi.read()) * 2, len(otherfi.read())) fi.close() otherfi.close()