[Checkins] SVN: relstorage/trunk/relstorage/tests/test_blobhelper.py Close files explicitly for Windows.
Shane Hathaway
shane at hathawaymix.org
Tue May 24 15:08:10 EDT 2011
Log message for revision 121794:
Close files explicitly for Windows.
Changed:
U relstorage/trunk/relstorage/tests/test_blobhelper.py
-=-
Modified: relstorage/trunk/relstorage/tests/test_blobhelper.py
===================================================================
--- relstorage/trunk/relstorage/tests/test_blobhelper.py 2011-05-24 11:52:42 UTC (rev 121793)
+++ relstorage/trunk/relstorage/tests/test_blobhelper.py 2011-05-24 19:08:10 UTC (rev 121794)
@@ -63,7 +63,7 @@
class DummyMover:
def download_blob(self, cursor, oid_int, tid_int, filename):
if download_action == 'write':
- open(filename, 'wb').write('blob here')
+ write_file(filename, 'blob here')
return 9
else:
return 0
@@ -136,7 +136,7 @@
obj = self._make_default()
fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
os.makedirs(os.path.dirname(fn))
- open(fn, 'wb').write('blob here')
+ write_file(fn, 'blob here')
res = obj.loadBlob(None, test_oid, test_tid)
self.assertEqual(fn, res)
@@ -152,7 +152,7 @@
obj = self._make_default(shared=False)
fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
os.makedirs(os.path.dirname(fn))
- open(fn, 'wb').write('blob here')
+ write_file(fn, 'blob here')
res = obj.loadBlob(None, test_oid, test_tid)
self.assertEqual(fn, res)
@@ -250,7 +250,7 @@
obj = self._make_default(shared=True)
fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
os.makedirs(os.path.dirname(fn))
- open(fn, 'wb').write('blob here')
+ write_file(fn, 'blob here')
loadBlob, obj.loadBlob = obj.loadBlob, loadBlob_wrapper
from ZODB.POSException import POSKeyError
@@ -266,7 +266,7 @@
called.append((oid, tid, data, version, txn))
fn = os.path.join(self.blob_dir, 'newblob')
- open(fn, 'wb').write('here a blob')
+ write_file(fn, 'here a blob')
obj = self._make_default()
self.assertFalse(obj.txn_has_blobs)
@@ -288,7 +288,7 @@
called.append((oid, tid, data, version, txn))
fn = os.path.join(self.blob_dir, 'newblob')
- open(fn, 'wb').write('here a blob')
+ write_file(fn, 'here a blob')
obj = self._make_default(shared=False)
self.assertFalse(obj.txn_has_blobs)
@@ -300,7 +300,7 @@
[(test_oid, test_tid, 'blob pickle', '', dummy_txn)])
self.assertEqual(self.uploaded[:2], (1, None))
target_fn = self.uploaded[2]
- self.assertEqual(open(target_fn, 'rb').read(), 'here a blob')
+ self.assertEqual(read_file(target_fn), 'here a blob')
def test_storeBlob_replace(self):
called = []
@@ -310,9 +310,9 @@
called.append((oid, tid, data, version, txn))
fn1 = os.path.join(self.blob_dir, 'newblob')
- open(fn1, 'wb').write('here a blob')
+ write_file(fn1, 'here a blob')
fn2 = os.path.join(self.blob_dir, 'newblob2')
- open(fn2, 'wb').write('there a blob')
+ write_file(fn2, 'there a blob')
obj = self._make_default()
self.assertFalse(obj.txn_has_blobs)
@@ -324,28 +324,28 @@
self.assertFalse(os.path.exists(fn2))
self.assertTrue(obj.txn_has_blobs)
target_fn = obj._txn_blobs[test_oid]
- self.assertEqual(open(target_fn, 'rb').read(), 'there a blob')
+ self.assertEqual(read_file(target_fn), 'there a blob')
def test_restoreBlob_shared(self):
fn = os.path.join(self.blob_dir, 'newblob')
- open(fn, 'wb').write('here a blob')
+ write_file(fn, 'here a blob')
obj = self._make_default()
obj.restoreBlob(None, test_oid, test_tid, fn)
self.assertFalse(os.path.exists(fn))
target_fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
- self.assertEqual(open(target_fn, 'rb').read(), 'here a blob')
+ self.assertEqual(read_file(target_fn), 'here a blob')
def test_restoreBlob_unshared(self):
if not support_blob_cache:
return
fn = os.path.join(self.blob_dir, 'newblob')
- open(fn, 'wb').write('here a blob')
+ write_file(fn, 'here a blob')
obj = self._make_default(shared=False)
obj.restoreBlob(None, test_oid, test_tid, fn)
self.assertEqual(self.uploaded[:2], (1, 2))
target_fn = self.uploaded[2]
- self.assertEqual(open(target_fn, 'rb').read(), 'here a blob')
+ self.assertEqual(read_file(target_fn), 'here a blob')
def test_copy_undone_unshared(self):
if not support_blob_cache:
@@ -360,11 +360,11 @@
copied = [(1, 1), (11, 1)]
fn = obj.fshelper.getBlobFilename(test_oid, test_oid)
os.makedirs(os.path.dirname(fn))
- open(fn, 'wb').write('blob here')
+ write_file(fn, 'blob here')
obj.copy_undone(copied, test_tid)
self.assertTrue(obj.txn_has_blobs)
fn2 = obj.fshelper.getBlobFilename(test_oid, test_tid)
- self.assertEqual(open(fn2, 'rb').read(), 'blob here')
+ self.assertEqual(read_file(fn2), 'blob here')
def test_after_pack_unshared(self):
if not support_blob_cache:
@@ -377,7 +377,7 @@
obj = self._make_default()
fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
os.makedirs(os.path.dirname(fn))
- open(fn, 'wb').write('blob here')
+ write_file(fn, 'blob here')
obj.after_pack(1, 2)
self.assertFalse(os.path.exists(fn))
@@ -385,7 +385,7 @@
obj = self._make_default(keep_history=False)
fn = obj.fshelper.getBlobFilename(test_oid, test_tid)
os.makedirs(os.path.dirname(fn))
- open(fn, 'wb').write('blob here')
+ write_file(fn, 'blob here')
obj.after_pack(1, 2)
self.assertFalse(os.path.exists(fn))
@@ -393,17 +393,17 @@
obj = self._make_default()
d = obj.fshelper.getPathForOID(test_oid, create=True)
fn1 = os.path.join(d, 'newblob')
- open(fn1, 'wb').write('here a blob')
+ write_file(fn1, 'here a blob')
obj._txn_blobs = {test_oid: fn1}
obj.vote(test_tid)
fn2 = obj.fshelper.getBlobFilename(test_oid, test_tid)
- self.assertEqual(open(fn2, 'rb').read(), 'here a blob')
+ self.assertEqual(read_file(fn2), 'here a blob')
def test_abort(self):
obj = self._make_default()
d = obj.fshelper.getPathForOID(test_oid, create=True)
fn1 = os.path.join(d, 'newblob')
- open(fn1, 'wb').write('here a blob')
+ write_file(fn1, 'here a blob')
obj._txn_blobs = {test_oid: fn1}
obj.abort()
fn2 = obj.fshelper.getBlobFilename(test_oid, test_tid)
@@ -426,3 +426,19 @@
suite.addTest(unittest.makeSuite(klass, "test"))
return suite
+
+
+def write_file(fn, data):
+ f = open(fn, 'wb')
+ try:
+ f.write(data)
+ finally:
+ f.close()
+
+
+def read_file(fn):
+ f = open(fn, 'rb')
+ try:
+ return f.read()
+ finally:
+ f.close()
More information about the checkins
mailing list