reads on non-matching file specifiers raise IOError

This commit is contained in:
Mike Dirolf 2009-01-26 17:13:47 -05:00
parent b28d20f8b1
commit 0d4f6acde1
2 changed files with 12 additions and 0 deletions

View File

@ -79,6 +79,8 @@ class GridFile(object):
if file:
self.__id = file["_id"]
else:
if mode == "r":
raise IOError("No such file: %r" % file_spec)
file_spec["length"] = 0
file_spec["uploadDate"] = datetime.datetime.now()
file_spec.setdefault("chunkSize", 256000)

View File

@ -58,6 +58,13 @@ class TestGridFile(unittest.TestCase):
file.close()
def test_create_grid_file(self):
self.db._files.remove({})
self.db._chunks.remove({})
# just write a blank file so that reads on {} don't fail
file = GridFile({"filename": "test"}, self.db, "w")
file.close()
self.assertRaises(TypeError, GridFile, "hello", self.db)
self.assertRaises(TypeError, GridFile, None, self.db)
self.assertRaises(TypeError, GridFile, 5, self.db)
@ -81,5 +88,8 @@ class TestGridFile(unittest.TestCase):
self.assertRaises(TypeError, GridFile, {}, self.db, "r", 5)
self.assertRaises(TypeError, GridFile, {}, self.db, "r", [])
self.assertRaises(IOError, GridFile, {"filename": "mike"}, self.db)
self.assertTrue(GridFile({"filename": "test"}, self.db))
if __name__ == "__main__":
unittest.main()