Beispiel #1
0
    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()
Beispiel #2
0
 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()