[Zope3-checkins] Re: [Checkins] SVN: Zope3/trunk/src/zope/app/testing/functional.py Implement ZCMLLayer.tearDown.

Jim Fulton jim at zope.com
Wed Jan 24 10:27:13 EST 2007


On Jan 20, 2007, at 9:16 AM, Marius Gedminas wrote:

> Log message for revision 72143:
>   Implement ZCMLLayer.tearDown.
>
>   As a result, the test runner no longer needs to run functional  
> tests of all but
>   the first layer in a subprocess, and you get progress indication  
> and also can
>   use pdb there.
>
>   All tests (test.py --all) pass with this change.  I've also  
> checked the
>   contents of the adapter registry, the logging module  
> configuration, the
>   contents of the transaction, and the list of loggers registered  
> with the Python
>   logging framework.  All these are not changed by setting up and  
> tearing down
>   test layers.

This doesn't work.  Unfortunately, there are side effects of ZCML  
that you aren't undoing.  In particular, for better or worse, ZCML  
often makes changes to module globals that are not cleaned up by the  
testing cleanup machinery.

This change caused several test failures in a large application of ours.

Please revert this change.

Jim

>
>
>
> Changed:
>   U   Zope3/trunk/src/zope/app/testing/functional.py
>
> -=-
> Modified: Zope3/trunk/src/zope/app/testing/functional.py
> ===================================================================
> --- Zope3/trunk/src/zope/app/testing/functional.py	2007-01-20  
> 13:53:49 UTC (rev 72142)
> +++ Zope3/trunk/src/zope/app/testing/functional.py	2007-01-20  
> 14:16:24 UTC (rev 72143)
> @@ -171,6 +171,12 @@
>          self.db.close()
>          setSite(None)
>
> +    def tearDownCompletely(self):
> +        """Cleans up the setup done by the constructor."""
> +        zope.app.testing.setup.placefulTearDown()
> +        self._config_file = False
> +        self._init = False
> +
>      def getRootFolder(self):
>          """Returns the Zope root folder."""
>          if not self.connection:
> @@ -182,6 +188,7 @@
>          """Returns the Zope application instance."""
>          return self.app
>
> +
>  class ZCMLLayer:
>      """ZCML-defined test layer
>      """
> @@ -194,11 +201,12 @@
>          self.__name__ = name
>
>      def setUp(self):
> -        FunctionalTestSetup(self.config_file)
> +        self.setup = FunctionalTestSetup(self.config_file)
>
>      def tearDown(self):
> -        raise NotImplementedError
> +        self.setup.tearDownCompletely()
>
> +
>  def defineLayer(name, zcml='test.zcml'):
>      """Helper function for defining layers.
>
>
> _______________________________________________
> Checkins mailing list
> Checkins at zope.org
> http://mail.zope.org/mailman/listinfo/checkins

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the Zope3-Checkins mailing list