[Dev] Getting ready for run_tests

Ted Leung twl at osafoundation.org
Tue Jun 7 10:28:17 PDT 2005


+1 to all the below...

Ted

On Jun 6, 2005, at 7:49 PM, Phillip J. Eby wrote:

> 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.
>
>

----
Ted Leung                 Open Source Applications Foundation (OSAF)
PGP Fingerprint: 1003 7870 251F FA71 A59A  CEE3 BEBA 2B87 F5FC 4B42




More information about the Dev mailing list