Exemplo n.º 1
0
    def test_recover(self):
        # basic without range
        reader = ChunkReader(None, None, {})
        reader.recover(10)
        self.assertEqual(reader.request_headers['Range'], 'bytes=10-')

        # full byte range
        reader = ChunkReader(None, None, {'Range': 'bytes=21-40'})
        reader.recover(10)
        self.assertEqual(reader.request_headers['Range'], 'bytes=31-40')
        # ask byte range too large
        self.assertRaises(exc.UnsatisfiableRange, reader.recover, 100)
        # ask empty byte range
        self.assertRaises(exc.EmptyByteRange, reader.recover, 10)

        # prefix byte range
        reader = ChunkReader(None, None, {'Range': 'bytes=11-'})
        reader.recover(10)
        self.assertEqual(reader.request_headers['Range'], 'bytes=21-')

        # suffix byte range
        reader = ChunkReader(None, None, {'Range': 'bytes=-50'})
        reader.recover(10)
        self.assertEqual(reader.request_headers['Range'], 'bytes=-40')

        # single byte range
        reader = ChunkReader(None, None, {'Range': 'bytes=0-0'})
        # ask empty byte range
        self.assertRaises(exc.EmptyByteRange, reader.recover, 1)
Exemplo n.º 2
0
    def test_recover(self):
        # basic without range
        reader = ChunkReader(None, None, {})
        reader.recover(10)
        self.assertEqual(reader.request_headers["Range"], "bytes=10-")

        # full byte range
        reader = ChunkReader(None, None, {"Range": "bytes=21-40"})
        reader.recover(10)
        self.assertEqual(reader.request_headers["Range"], "bytes=31-40")
        # ask byte range too large
        self.assertRaises(exc.UnsatisfiableRange, reader.recover, 100)
        # ask empty byte range
        self.assertRaises(exc.EmptyByteRange, reader.recover, 10)

        # prefix byte range
        reader = ChunkReader(None, None, {"Range": "bytes=11-"})
        reader.recover(10)
        self.assertEqual(reader.request_headers["Range"], "bytes=21-")

        # suffix byte range
        reader = ChunkReader(None, None, {"Range": "bytes=-50"})
        reader.recover(10)
        self.assertEqual(reader.request_headers["Range"], "bytes=-40")

        # single byte range
        reader = ChunkReader(None, None, {"Range": "bytes=0-0"})
        # ask empty byte range
        self.assertRaises(exc.EmptyByteRange, reader.recover, 1)