[Zodb-checkins] SVN: ZODB/trunk/src/ZODB/tests/util.py Added a number of helpers.

Jim Fulton jim at zope.com
Sat Jul 10 15:10:51 EDT 2010


Log message for revision 114539:
  Added a number of helpers.
  

Changed:
  U   ZODB/trunk/src/ZODB/tests/util.py

-=-
Modified: ZODB/trunk/src/ZODB/tests/util.py
===================================================================
--- ZODB/trunk/src/ZODB/tests/util.py	2010-07-10 17:53:50 UTC (rev 114538)
+++ ZODB/trunk/src/ZODB/tests/util.py	2010-07-10 19:10:51 UTC (rev 114539)
@@ -12,10 +12,10 @@
 #
 ##############################################################################
 """Conventience function for creating test databases
-
-$Id$
 """
 
+from __future__ import with_statement
+
 from ZODB.MappingStorage import DB
 
 import atexit
@@ -24,8 +24,12 @@
 import time
 import unittest
 import persistent
+import sys
+import time
 import transaction
+import warnings
 import zope.testing.setupstack
+import ZODB.utils
 
 def setUp(test, name='test'):
     transaction.abort()
@@ -99,3 +103,38 @@
     def testNothing(self):
         pass
 
+def assert_warning(category, func, warning_text=''):
+    if sys.version_info < (2, 6):
+        return func() # Can't use catch_warnings :(
+
+    with warnings.catch_warnings(record=True) as w:
+        warnings.simplefilter('default')
+        result = func()
+        for warning in w:
+            if ((warning.category is category)
+                and (warning_text in str(warning.message))):
+                return result
+        raise AssertionError(w)
+
+def assert_deprecated(func, warning_text=''):
+    return assert_warning(DeprecationWarning, func, warning_text)
+
+def wait(func=None, timeout=30):
+    if func is None:
+        return lambda f: wait(f, timeout)
+    for i in xrange(int(timeout*100)):
+        if func():
+            return
+        time.sleep(.01)
+    raise AssertionError
+
+def store(storage, oid, value='x', serial=ZODB.utils.z64):
+    if not isinstance(oid, str):
+        oid = ZODB.utils.p64(oid)
+    if not isinstance(serial, str):
+        serial = ZODB.utils.p64(serial)
+    t = transaction.get()
+    storage.tpc_begin(t)
+    storage.store(oid, serial, value, '', t)
+    storage.tpc_vote(t)
+    storage.tpc_finish(t)



More information about the Zodb-checkins mailing list