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