[Checkins] SVN: zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/ Full coverage for z.c.xmlconfig.XMLConfig.

Tres Seaver cvs-admin at zope.org
Thu May 10 23:26:44 UTC 2012


Log message for revision 125833:
  Full coverage for z.c.xmlconfig.XMLConfig.

Changed:
  U   zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/tests/test_xmlconfig.py
  U   zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/xmlconfig.py

-=-
Modified: zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/tests/test_xmlconfig.py
===================================================================
--- zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/tests/test_xmlconfig.py	2012-05-10 23:26:36 UTC (rev 125832)
+++ zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/tests/test_xmlconfig.py	2012-05-10 23:26:41 UTC (rev 125833)
@@ -824,11 +824,15 @@
 
     def setUp(self):
         from zope.configuration.xmlconfig import _clearContext
+        from zope.configuration.tests.samplepackage.foo import data
         _clearContext()
+        del data[:]
 
     def tearDown(self):
         from zope.configuration.xmlconfig import _clearContext
+        from zope.configuration.tests.samplepackage.foo import data
         _clearContext()
+        del data[:]
 
     def _getTargetClass(self):
         from zope.configuration.xmlconfig import XMLConfig
@@ -837,55 +841,84 @@
     def _makeOne(self, *args, **kw):
         return self._getTargetClass()(*args, **kw)
 
-    def test_XMLConfig(self):
+    def test_ctor_w_global_context_missing(self):
         import os
+        from zope.configuration import xmlconfig
         from zope.configuration._compat import b
         from zope.configuration.tests.samplepackage import foo
         here = os.path.dirname(__file__)
-        path = os.path.join(here, "samplepackage", "baro.zcml")
-        x = self._makeOne(path)
-        x() # call to process the actions
-        self.assertEqual(len(foo.data), 3)
+        path = os.path.join(here, "samplepackage", "configure.zcml")
+        logger = LoggerStub()
+        xmlconfig._context = None
+        with _Monkey(xmlconfig, logger=logger):
+            xc = self._makeOne(path)
+        self.assertEqual(len(logger.debugs), 1)
+        self.assertEqual(logger.debugs[0], ('include %s' % path, (), {}))
+        self.assertEqual(len(foo.data), 0) # no execut_actions
+        self.assertEqual(len(xc.context.actions), 1)
+        action = xc.context.actions[0]
+        self.assertEqual(action['discriminator'], (('x', b('blah')), ('y', 0)))
+        self.assertEqual(action['callable'], foo.data.append)
 
-        data = foo.data.pop(0)
-        self.assertEqual(data.args, (('x', b('blah')), ('y', 0)))
-        self.assertEqual(clean_info_path(repr(data.info)),
-                        'File "tests/samplepackage/bar21.zcml", line 3.2-3.24')
+    def test_ctor(self):
+        from zope.configuration import xmlconfig
+        from zope.configuration._compat import b
+        from zope.configuration.tests import samplepackage
+        from zope.configuration.tests.samplepackage import foo
+        fqn = _packageFile(samplepackage, 'configure.zcml')
+        logger = LoggerStub()
+        with _Monkey(xmlconfig, logger=logger):
+            xc = self._makeOne(fqn)
+        self.assertEqual(len(logger.debugs), 1)
+        self.assertEqual(logger.debugs[0], ('include %s' % fqn, (), {}))
+        self.assertEqual(len(foo.data), 0) # no execut_actions
+        self.assertEqual(len(xc.context.actions), 1)
+        action = xc.context.actions[0]
+        self.assertEqual(action['discriminator'], (('x', b('blah')), ('y', 0)))
+        self.assertEqual(action['callable'], foo.data.append)
 
-        data = foo.data.pop(0)
-        self.assertEqual(data.args, (('x', b('blah')), ('y', 2)))
-        self.assertEqual(clean_info_path(repr(data.info)),
-                        'File "tests/samplepackage/bar2.zcml", line 5.2-5.24')
+    def test_ctor_w_module(self):
+        from zope.configuration import xmlconfig
+        from zope.configuration._compat import b
+        from zope.configuration.tests.samplepackage import foo
+        from zope.configuration.tests import samplepackage
+        fqn = _packageFile(samplepackage, 'configure.zcml')
+        logger = LoggerStub()
+        with _Monkey(xmlconfig, logger=logger):
+            xc = self._makeOne("configure.zcml", samplepackage)
+        self.assertEqual(len(logger.debugs), 1)
+        self.assertEqual(logger.debugs[0], ('include %s' % fqn, (), {}))
+        self.assertEqual(len(foo.data), 0) # no execut_actions
+        self.assertEqual(len(xc.context.actions), 1)
+        action = xc.context.actions[0]
+        self.assertEqual(action['discriminator'], (('x', b('blah')), ('y', 0)))
+        self.assertEqual(action['callable'], foo.data.append)
 
-        data = foo.data.pop(0)
-        self.assertEqual(data.args, (('x', b('blah')), ('y', 1)))
-        self.assertEqual(clean_info_path(repr(data.info)),
-                         'File "tests/samplepackage/bar2.zcml", line 6.2-6.24')
-
-    def test_XMLConfig_w_module(self):
+    def test___call__(self):
+        from zope.configuration import xmlconfig
         from zope.configuration._compat import b
+        from zope.configuration.tests import samplepackage
         from zope.configuration.tests.samplepackage import foo
-        from zope.configuration.tests import samplepackage as module
-        x = self._makeOne("baro.zcml", module)
+        fqn = _packageFile(samplepackage, 'configure.zcml')
+        logger = LoggerStub()
+        with _Monkey(xmlconfig, logger=logger):
+            x = self._makeOne(fqn)
+        self.assertEqual(len(logger.debugs), 1)
+        self.assertEqual(logger.debugs[0], ('include %s' % fqn, (), {}))
+        self.assertEqual(len(foo.data), 0)
         x() # call to process the actions
-        self.assertEqual(len(foo.data), 3)
-
+        self.assertEqual(len(foo.data), 1)
         data = foo.data.pop(0)
         self.assertEqual(data.args, (('x', b('blah')), ('y', 0)))
-        self.assertEqual(clean_info_path(repr(data.info)),
-                        'File "tests/samplepackage/bar21.zcml", line 3.2-3.24')
+        self.assertTrue(data.info.file.endswith(
+                'tests/samplepackage/configure.zcml'))
+        self.assertEqual(data.info.line, 12)
+        self.assertEqual(data.info.column, 2)
+        self.assertEqual(data.info.eline, 12)
+        self.assertEqual(data.info.ecolumn, 29)
 
-        data = foo.data.pop(0)
-        self.assertEqual(data.args, (('x', b('blah')), ('y', 2)))
-        self.assertEqual(clean_info_path(repr(data.info)),
-                        'File "tests/samplepackage/bar2.zcml", line 5.2-5.24')
 
-        data = foo.data.pop(0)
-        self.assertEqual(data.args, (('x', b('blah')), ('y', 1)))
-        self.assertEqual(clean_info_path(repr(data.info)),
-                         'File "tests/samplepackage/bar2.zcml", line 6.2-6.24')
 
-
 class Test_xmlconfig(unittest.TestCase):
 
     def _callFUT(self, *args, **kw):

Modified: zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/xmlconfig.py
===================================================================
--- zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/xmlconfig.py	2012-05-10 23:26:36 UTC (rev 125832)
+++ zope.configuration/branches/tseaver-test_cleanup/src/zope/configuration/xmlconfig.py	2012-05-10 23:26:41 UTC (rev 125833)
@@ -537,9 +537,9 @@
         _clearContext()
         try:
             from zope.testing.cleanup import addCleanUp
-        except ImportError:
+        except ImportError: #pragma NO COVER
             pass
-        else:
+        else: #pragma NO COVER
             addCleanUp(_clearContext)
             del addCleanUp
     return _context



More information about the checkins mailing list