[Checkins] SVN: zc.lockfile/trunk/src/zc/lockfile/ Fixed a small bug in the file locking error logging (originally

Jim Fulton jim at zope.com
Sat Oct 18 13:10:08 EDT 2008


Log message for revision 92354:
  Fixed a small bug in the file locking error logging (originally
  developed by Benji York in the ZODB project).
  

Changed:
  U   zc.lockfile/trunk/src/zc/lockfile/README.txt
  U   zc.lockfile/trunk/src/zc/lockfile/__init__.py
  U   zc.lockfile/trunk/src/zc/lockfile/tests.py

-=-
Modified: zc.lockfile/trunk/src/zc/lockfile/README.txt
===================================================================
--- zc.lockfile/trunk/src/zc/lockfile/README.txt	2008-10-18 15:04:04 UTC (rev 92353)
+++ zc.lockfile/trunk/src/zc/lockfile/README.txt	2008-10-18 17:10:07 UTC (rev 92354)
@@ -11,12 +11,18 @@
 
 If we try to lock the same name, we'll get a lock error:
 
+    >>> import zope.testing.loggingsupport
+    >>> handler = zope.testing.loggingsupport.InstalledHandler('zc.lockfile')
     >>> try:
     ...     zc.lockfile.LockFile('lock')
     ... except zc.lockfile.LockError:
-    ...     print "Can't lock"
-    Can't lock
+    ...     print "Can't lock file"
+    Can't lock file
 
+    >>> for record in handler.records:
+    ...     print record.levelname, record.getMessage()
+    ERROR Error locking file lock; pid=UNKNOWN
+
 To release the lock, use it's close method:
 
     >>> lock.close()
@@ -31,3 +37,9 @@
 
     >>> lock = zc.lockfile.LockFile('lock')
     >>> lock.close()
+
+.. Cleanup
+
+    >>> import os
+    >>> os.remove('lock')
+

Modified: zc.lockfile/trunk/src/zc/lockfile/__init__.py
===================================================================
--- zc.lockfile/trunk/src/zc/lockfile/__init__.py	2008-10-18 15:04:04 UTC (rev 92353)
+++ zc.lockfile/trunk/src/zc/lockfile/__init__.py	2008-10-18 17:10:07 UTC (rev 92354)
@@ -15,7 +15,7 @@
 import os
 import errno
 import logging
-logger = logging.getLogger("ZODB.lock_file")
+logger = logging.getLogger("zc.lockfile")
 
 class LockError(Exception):
     """Couldn't get a lock
@@ -78,7 +78,9 @@
             fp.seek(1)
             pid = fp.read().strip()[:20]
             fp.close()
-            logger.exception("Error locking file", path, pid)
+            if not pid:
+                pid = 'UNKNOWN'
+            logger.exception("Error locking file %s; pid=%s", path, pid)
             raise
 
         self._fp = fp

Modified: zc.lockfile/trunk/src/zc/lockfile/tests.py
===================================================================
--- zc.lockfile/trunk/src/zc/lockfile/tests.py	2008-10-18 15:04:04 UTC (rev 92353)
+++ zc.lockfile/trunk/src/zc/lockfile/tests.py	2008-10-18 17:10:07 UTC (rev 92354)
@@ -12,7 +12,7 @@
 #
 ##############################################################################
 import os, sys, unittest
-from zope.testing import doctest
+from zope.testing import doctest, setupstack
 
 import zc.lockfile, time, threading
     
@@ -53,6 +53,9 @@
 
 def test_suite():
     suite = unittest.TestSuite()
-    suite.addTest(doctest.DocFileSuite('README.txt'))
-    suite.addTest(doctest.DocTestSuite())
+    suite.addTest(doctest.DocFileSuite(
+        'README.txt',
+        setUp=setupstack.setUpDirectory, tearDown=setupstack.tearDown))
+    suite.addTest(doctest.DocTestSuite(
+        setUp=setupstack.setUpDirectory, tearDown=setupstack.tearDown))
     return suite



More information about the Checkins mailing list