[Checkins] SVN: zc.zodbdgc/trunk/s Fixed some stupid typos, one of which was harmless, but the other

jim cvs-admin at zope.org
Mon Oct 8 17:29:42 UTC 2012


Log message for revision 127940:
  Fixed some stupid typos, one of which was harmless, but the other
  caused GC to fail on a database.
  

Changed:
  U   zc.zodbdgc/trunk/setup.py
  U   zc.zodbdgc/trunk/src/zc/zodbdgc/__init__.py
  U   zc.zodbdgc/trunk/src/zc/zodbdgc/tests.py

-=-
Modified: zc.zodbdgc/trunk/setup.py
===================================================================
--- zc.zodbdgc/trunk/setup.py	2012-10-08 12:57:17 UTC (rev 127939)
+++ zc.zodbdgc/trunk/setup.py	2012-10-08 17:29:38 UTC (rev 127940)
@@ -34,7 +34,7 @@
         '--------\n'
         )
 
-tests_require = ['zope.testing']
+tests_require = ['zope.testing', 'mock']
 
 setup(
     name = name,

Modified: zc.zodbdgc/trunk/src/zc/zodbdgc/__init__.py
===================================================================
--- zc.zodbdgc/trunk/src/zc/zodbdgc/__init__.py	2012-10-08 12:57:17 UTC (rev 127939)
+++ zc.zodbdgc/trunk/src/zc/zodbdgc/__init__.py	2012-10-08 17:29:38 UTC (rev 127940)
@@ -128,7 +128,7 @@
     else:
         logger.info("Using secondary configuration, %s, for analysis", conf2)
         db2 = ZODB.config.databaseFromFile(open(conf2))
-        close.append(db1)
+        close.append(db2)
         if set(db1.databases) != set(db2.databases):
             raise ValueError("primary and secondary databases don't match.")
 
@@ -218,6 +218,7 @@
                     else:
                         bad.insert(name, oid, record.tid,
                                    getrefs(data, name, ignore))
+
                 else:
                     # deleted record
                     if good.has(name, oid):
@@ -392,7 +393,7 @@
         pos = db.get(oid)
         if pos is not None:
             f.seek(pos)
-            tid = f.read(8)
+            oldtid = f.read(8)
             oldrefs = set(marshal.load(f))
             refs = oldrefs.union(refs)
             tid = max(tid, oldtid)

Modified: zc.zodbdgc/trunk/src/zc/zodbdgc/tests.py
===================================================================
--- zc.zodbdgc/trunk/src/zc/zodbdgc/tests.py	2012-10-08 12:57:17 UTC (rev 127939)
+++ zc.zodbdgc/trunk/src/zc/zodbdgc/tests.py	2012-10-08 17:29:38 UTC (rev 127940)
@@ -18,6 +18,7 @@
 from zope.testing import setupstack, renormalizing
 import binascii
 import doctest
+import mock
 import re
 import time
 import unittest
@@ -113,6 +114,51 @@
     >>> db.close()
     """
 
+def stupid_typo_nameerror_not():
+    """
+
+    >>> open('config', 'w').write('''
+    ... <zodb db>
+    ...     <filestorage>
+    ...         pack-gc false
+    ...         pack-keep-old false
+    ...         path 1.fs
+    ...     </filestorage>
+    ... </zodb>
+    ... ''')
+    >>> import ZODB.config, persistent.mapping, time
+    >>> with mock.patch("time.time", return_value=1241458549.614022):
+    ...     db = ZODB.config.databaseFromFile(open('config'))
+    ...     conn = db.open()
+    ...     junk = persistent.mapping.PersistentMapping()
+    ...     conn.add(junk)
+    ...     conn.transaction_manager.commit()
+    ...     junk['a'] = 1
+    ...     conn.transaction_manager.commit()
+    ...     junk['a'] = 2
+    ...     conn.transaction_manager.commit()
+    ...     junk['a'] = 3
+    ...     conn.transaction_manager.commit()
+    ...     time.time.return_value += 86400*1.5
+    ...     conn.root.x = 1
+    ...     conn.transaction_manager.commit()
+    ...     db.close()
+    ...     import zc.zodbdgc, time
+    ...     from ZODB.utils import u64
+    ...     bad = zc.zodbdgc.gc('config', days=1)
+    ...     for name, oid in sorted(bad.iterator()):
+    ...         print name, u64(oid)
+    ...     time.time.return_value += 86400*1.5
+    ...     db = ZODB.config.databaseFromFile(open('config'))
+    ...     len(db.storage)
+    ...     db.pack()
+    ...     len(db.storage)
+    db 1
+    2
+    1
+    >>> db.close()
+    """
+
 def test_suite():
     suite = unittest.TestSuite((
         doctest.DocFileSuite(



More information about the checkins mailing list