[Checkins] SVN: Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/ avoid problem when ZPublisher tries to log conflict errors

Godefroid Chapelle gotcha at bubblenet.be
Wed Apr 14 06:59:20 EDT 2010


Log message for revision 110852:
  avoid problem when ZPublisher tries to log conflict errors

Changed:
  U   Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/processor.txt
  U   Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/test_doctests.py

-=-
Modified: Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/processor.txt
===================================================================
--- Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/processor.txt	2010-04-14 10:49:37 UTC (rev 110851)
+++ Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/processor.txt	2010-04-14 10:59:19 UTC (rev 110852)
@@ -292,6 +292,8 @@
   z3c.taskqueue INFO
     stopping service remotetasks.tasks.tasks
 
+  >>> print conflict_logger
+
 Note: Sometimes (about 20% of the time in this test) the log will contain a
 conflict error. As long as the error is *not* produced by ``processNext()``,
 they are harmless, even though they are logged on the error level. To avoid

Modified: Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/test_doctests.py
===================================================================
--- Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/test_doctests.py	2010-04-14 10:49:37 UTC (rev 110851)
+++ Sandbox/gotcha/five.taskqueue/src/five/taskqueue/tests/test_doctests.py	2010-04-14 10:59:19 UTC (rev 110852)
@@ -23,16 +23,32 @@
 import doctest
 import random
 import unittest
+import logging
 
 from five.taskqueue import service
 
 ZopeTestCase.installProduct('Five')
 
 
+def _configure_conflict_error_log_level():
+    import App.config
+    config = App.config.getConfiguration()
+    config.conflict_error_log_level = logging.INFO
+    App.config.setConfiguration(config)
+
+
 def setUp(test):
+    test.globs['root'] = ZopeTestCase.base.app()
+    # As task will be run in different threads, we cannot rely on print
+    # results. We need to log calls to prove correctness.
     log_info = InstalledHandler('z3c.taskqueue')
-    test.globs['root'] = ZopeTestCase.base.app()
     test.globs['log_info'] = log_info
+    # We pass the ZPublisher conflict logger to prove that no conflict
+    # happened.
+    conflict_logger = InstalledHandler('ZPublisher.Conflict')
+    test.globs['conflict_logger'] = conflict_logger
+    # Make sure ZPublisher conflict error log level is setup.
+    _configure_conflict_error_log_level()
     test.origArgs = service.TaskService.processorArguments
     service.TaskService.processorArguments = {'waitTime': 0.0}
     # Make tests predictable



More information about the checkins mailing list