def test_seek(self):
        self.db.fs.files.remove({})
        self.db.fs.chunks.remove({})

        file = GridFile({"filename": "test", "chunkSize": 3}, self.db, "w")
        file.write("hello world")
        self.assertRaises(ValueError, file.seek, 0)
        file.close()

        file = GridFile({"filename": "test"}, self.db, "r")
        self.assertEqual(file.read(), "hello world")
        file.seek(0)
        self.assertEqual(file.read(), "hello world")
        file.seek(1)
        self.assertEqual(file.read(), "ello world")
        self.assertRaises(IOError, file.seek, -1)

        file.seek(-3, _SEEK_END)
        self.assertEqual(file.read(), "rld")
        file.seek(0, _SEEK_END)
        self.assertEqual(file.read(), "")
        self.assertRaises(IOError, file.seek, -100, _SEEK_END)

        file.seek(3)
        file.seek(3, _SEEK_CUR)
        self.assertEqual(file.read(), "world")
        self.assertRaises(IOError, file.seek, -100, _SEEK_CUR)

        file.close()
Exemplo n.º 2
0
    def test_seek(self):
        self.db.fs.files.remove({})
        self.db.fs.chunks.remove({})

        file = GridFile({"filename": "test", "chunkSize": 3}, self.db, "w")
        file.write("hello world")
        self.assertRaises(ValueError, file.seek, 0)
        file.close()

        file = GridFile({"filename": "test"}, self.db, "r")
        self.assertEqual(file.read(), "hello world")
        file.seek(0)
        self.assertEqual(file.read(), "hello world")
        file.seek(1)
        self.assertEqual(file.read(), "ello world")
        self.assertRaises(IOError, file.seek, -1)

        file.seek(-3, _SEEK_END)
        self.assertEqual(file.read(), "rld")
        file.seek(0, _SEEK_END)
        self.assertEqual(file.read(), "")
        self.assertRaises(IOError, file.seek, -100, _SEEK_END)

        file.seek(3)
        file.seek(3, _SEEK_CUR)
        self.assertEqual(file.read(), "world")
        self.assertRaises(IOError, file.seek, -100, _SEEK_CUR)

        file.close()