[Zodb-checkins] CVS: Packages/bsddb3Storage - test_commitlog.py:1.3
barry@digicool.com
barry@digicool.com
Thu, 5 Apr 2001 17:37:31 -0400 (EDT)
Update of /cvs-repository/Packages/bsddb3Storage/test
In directory korak:/tmp/cvs-serv5977
Modified Files:
test_commitlog.py
Log Message:
Changes to make the tests more robust under Windows.
checkCreateNoFile(), checkCreateWithFilename(),
checkCreateWithFileobj(): Make sure these tests close the file object
before they attempt to unlink the underlying file.y
checkCloseNoUnlink(), checkDel(): New tests in the CreateCommitLogTest
class.
CloseCommitLogTest: removed this class; its tests are folded into
CreateCommitLogTest.
--- Updated File test_commitlog.py in package Packages/bsddb3Storage --
--- test_commitlog.py 2001/03/30 19:40:32 1.2
+++ test_commitlog.py 2001/04/05 21:37:29 1.3
@@ -15,53 +15,52 @@
class CreateCommitLogTest(unittest.TestCase):
def checkCreateNoFile(self):
- """Commit log creation with auto-generation of log file"""
log = CommitLog.CommitLog()
filename = log.get_filename()
- assert os.path.exists(filename)
- os.unlink(filename)
+ try:
+ assert os.path.exists(filename)
+ finally:
+ log.close(unlink=1)
+ assert not os.path.exists(filename)
def checkCreateWithFilename(self):
- """Commit log creation with named file"""
filename = 'commit.log'
log = CommitLog.CommitLog(filename)
- assert os.path.exists(filename)
- os.unlink(filename)
+ try:
+ assert os.path.exists(filename)
+ finally:
+ log.close(unlink=1)
+ assert not os.path.exists(filename)
def checkCreateWithFileobj(self):
- """Commit log use of existing file object"""
filename = 'commit.log'
fp = open(filename, 'w+b')
- self.assertRaises(CommitLog.TruncationError,
- CommitLog.CommitLog, fp)
- os.unlink(filename)
-
-
-
-class CloseCommitLogTest(unittest.TestCase):
- def setUp(self):
- self._log = CommitLog.CommitLog()
- self._filename = self._log.get_filename()
+ try:
+ self.assertRaises(CommitLog.TruncationError,
+ CommitLog.CommitLog, fp)
+ finally:
+ fp.close()
+ os.unlink(filename)
- def tearDown(self):
- if self._filename:
- os.unlink(self._filename)
+ def checkCloseNoUnlink(self):
+ log = CommitLog.CommitLog()
+ filename = log.get_filename()
+ log.close()
+ try:
+ assert os.path.exists(filename)
+ finally:
+ os.unlink(filename)
+ assert not os.path.exists(filename)
def checkDel(self):
- """CommitLog.__del__()"""
- del self._log
- assert os.path.exists(self._filename)
-
- def checkCloseDefaults(self):
- """CommitLog.close(), same as CommitLog.__del__()"""
- self._log.close()
- assert os.path.exists(self._filename)
-
- def checkCloseWithUnlink(self):
- """CommitLog.close(unlink=1)"""
- self._log.close(unlink=1)
- assert not os.path.exists(self._filename)
- self._filename = None
+ log = CommitLog.CommitLog()
+ filename = log.get_filename()
+ del log
+ try:
+ assert os.path.exists(filename)
+ finally:
+ os.unlink(filename)
+ assert not os.path.exists(filename)
@@ -76,29 +75,24 @@
class CommitLogStateTransitionTest(BaseSetupTearDown):
def checkProperStart(self):
- """Newly created log file initializes state to START"""
# BAW: best we can do is make sure we can start a new commit log
self._log.start()
def checkAppendSetsOpen(self):
- """First append sets log file state to OPEN"""
# BAW: Best we can do is assert that the state isn't START
self._log._append('x', 'ignore')
self.assertRaises(CommitLog.StateTransitionError, self._log.start)
def checkPromiseSetsPromise(self):
- """Promising from START or OPEN sets state to PROMISE"""
# BAW: Best we can do is assert that state isn't START
self._log.promise()
self.assertRaises(CommitLog.StateTransitionError, self._log.start)
def checkBadDoublePromise(self):
- """Promising an already promised transaction fails"""
self._log.promise()
self.assertRaises(CommitLog.StateTransitionError, self._log.promise)
def checkFinishSetsStart(self):
- """Finishing sets state to START"""
self._log.finish()
# BAW: best we can do is make sure we can start a new commit log
self._log.start()
@@ -125,7 +119,6 @@
class LowLevelStoreAndLoadTest(BaseSetupTearDown):
def checkOneStoreAndLoad(self):
- """Low-level storing one record and reading it back"""
self._log.start()
self._log._append('x', 'ignore')
self._log.promise()
@@ -134,7 +127,6 @@
assert None == self._log._next()
def checkTenStoresAndLoads(self):
- """Low-level storing ten records and reading them back"""
self._log.start()
for k, v in Gen():
self._log._append(k, v)
@@ -156,7 +148,6 @@
self._log.start()
def checkOneStoreAndLoad(self):
- """PacklessLog: API for one object"""
self._log.write_object(oid=10, pickle='ignore')
self._log.promise()
oid, pickle = self._log.next()
@@ -164,7 +155,6 @@
assert None == self._log.next()
def checkTenStoresAndLoads(self):
- """PacklessLog: API storing ten objects and reading them back"""
for k, v in Gen():
self._log.write_object(v, k*10)
self._log.promise()
@@ -186,7 +176,6 @@
self._log.start()
def checkOneStoreAndLoad(self):
- """FullLog: API for one object"""
oid = 10
vid = 8
nvrevid = 0
@@ -203,7 +192,6 @@
assert None == self._log.next()
def checkOtherWriteMethods(self):
- """FullLog: check other write_*() methods"""
oid = 10
vid = 1
nvrevid = 0
@@ -244,14 +232,12 @@
def suite():
suite = unittest.TestSuite()
- # Creation
+ # Creation and closing
suite.addTest(CreateCommitLogTest('checkCreateNoFile'))
suite.addTest(CreateCommitLogTest('checkCreateWithFilename'))
suite.addTest(CreateCommitLogTest('checkCreateWithFileobj'))
- # Closing
- suite.addTest(CloseCommitLogTest('checkDel'))
- suite.addTest(CloseCommitLogTest('checkCloseDefaults'))
- suite.addTest(CloseCommitLogTest('checkCloseWithUnlink'))
+ suite.addTest(CreateCommitLogTest('checkCloseNoUnlink'))
+ suite.addTest(CreateCommitLogTest('checkDel'))
# State transitions
suite.addTest(CommitLogStateTransitionTest('checkProperStart'))
suite.addTest(CommitLogStateTransitionTest('checkAppendSetsOpen'))