At 05:14 PM 6/6/2005 -0700, Ted Leung wrote:
For those of you that don't know, PJE has written 'run_tests', which
is a flexible driver for running the unit tests.   If you are
interested in using it, you can type
'RunPython -m run_tests' in $CHANDLERHOME and it will display its
manual.   We're not quite ready to switch over to run_tests as the
official method of running the tests (there are one or two issues
that need to be ironed out), but it's there if you are interested in
trying it.

I have a small patch to RepositoryTestCase that turns of the
repository commit log messages.  This makes running the unit tests
under 'run_tests' a much more pleasant experience.

I've attached the patch below, if no one objects, I'll commit it late
tomorrow (Tuesday)

May I suggest logger.WARNING instead of critical? The repository commit messages are at level INFO, so that will suppress purely-informational log messages without suppressing warnings or errors that might be useful for debugging. I did a quick search for uses of the warning and error level messages in the repository.* packages, and the only use that was even remotely questionable was a warning about notifications taking longer than a second, that I've never seen happen in practice.

I'm also not sure if there need to be three places where the log level gets set; I think it's reasonable for RepositoryTestCase to set its own repository's logger level to WARNING, but I'm not sure the module should be messing with the root logger level. Global log configuration seems more like a job for the test runner than the test cases.

By the way, I don't believe you need to have the 'stderr=False' change. All that the 'stderr' flag does in the repository is tell it whether to add a dummy handler to the root logger. It has no actual effect on the level of log suppression.

So, here's an alternative patch proposal. It changes less, but still succeeds in suppressing the commit messages, and also allows individual test case classes to set their own log levels, if they want to raise or lower it for some reason:


Index: repository/tests/RepositoryTestCase.py
===================================================================
--- repository/tests/RepositoryTestCase.py      (revision 5605)
+++ repository/tests/RepositoryTestCase.py      (working copy)
@@ -20,6 +20,8 @@

 class RepositoryTestCase(TestCase):

+    logLevel = logging.WARNING      # a nice quiet default
+
     def _setup(self, ramdb=True):
         schema.reset()
         self.rootdir = os.environ['CHANDLERHOME']
@@ -46,14 +48,13 @@
             self.ramdb = False
             self.rep.open(ramdb=False,
                           fromPath=preloadedRepositoryPath,
-                          stderr=True,
                           refcounted=True)
+            self.rep.logger.setLevel(self.logLevel)
             self.rep.logger.info('Using preloaded repository')
         else:
             self.rep.create(ramdb=self.ramdb,
-                            stderr=True,
                             refcounted=True)
-
+            self.rep.logger.setLevel(self.logLevel)
             self.rep.loadPack(self.schemaPack)
             self.rep.loadPack(self.chandlerPack)
             self.rep.commit()


Of course, this doesn't do anything about the 186 print statements currently in Chandler and its tests (not counting commented-out print statements), so they can still produce quite a bit of spew.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to