[Checkins] SVN: zope.component/tseaver-test_cleanup/ Coverage for z.c.zcml.utility.
Tres Seaver
cvs-admin at zope.org
Tue Jun 26 23:01:01 UTC 2012
Log message for revision 127114:
Coverage for z.c.zcml.utility.
Changed:
_U zope.component/tseaver-test_cleanup/
U zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py
-=-
Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py 2012-06-26 23:00:54 UTC (rev 127113)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py 2012-06-26 23:00:58 UTC (rev 127114)
@@ -508,6 +508,191 @@
self.assertEqual(action['args'], ('', Interface))
+class Test_utility(unittest.TestCase):
+
+ def _callFUT(self, *args, **kw):
+ from zope.component.zcml import utility
+ return utility(*args, **kw)
+
+ def test_w_factory_w_component(self):
+ class _Factory(object):
+ pass
+ _COMPONENT = object
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError, self._callFUT, _cfg_ctx,
+ factory=_Factory,
+ component=_COMPONENT)
+
+ def test_w_factory_wo_provides_factory_no_implements(self):
+ class _Factory(object):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx, factory=_Factory)
+
+ def test_w_component_wo_provides_component_no_provides(self):
+ _COMPONENT = object
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx, component=_COMPONENT)
+
+ def test_w_factory_w_provides(self):
+ from zope.interface import Interface
+ from zope.component.interface import provideInterface
+ from zope.component.zcml import handler
+ class IFoo(Interface):
+ pass
+ class Foo(object):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, factory=Foo, provides=IFoo)
+ self.assertEqual(len(_cfg_ctx._actions), 2)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the utility
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], ('utility', IFoo, ''))
+ self.assertEqual(action['args'][0], 'registerUtility')
+ self.assertEqual(action['args'][1], None)
+ self.assertEqual(action['args'][2], IFoo)
+ self.assertEqual(action['args'][3], '')
+ self.assertEqual(action['args'][4], 'TESTING')
+ self.assertEqual(action['kw'], {'factory': Foo})
+ # Register the provided interface
+ self.assertEqual(_cfg_ctx._actions[1][0], ())
+ action =_cfg_ctx._actions[1][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', IFoo))
+
+ def test_w_factory_wo_provides_factory_implements(self):
+ from zope.interface import Interface
+ from zope.interface import implementer
+ from zope.component.interface import provideInterface
+ from zope.component.zcml import handler
+ class IFoo(Interface):
+ pass
+ @implementer(IFoo)
+ class Foo(object):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, factory=Foo)
+ self.assertEqual(len(_cfg_ctx._actions), 2)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the utility
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], ('utility', IFoo, ''))
+ self.assertEqual(action['args'][0], 'registerUtility')
+ self.assertEqual(action['args'][1], None)
+ self.assertEqual(action['args'][2], IFoo)
+ self.assertEqual(action['args'][3], '')
+ self.assertEqual(action['args'][4], 'TESTING')
+ self.assertEqual(action['kw'], {'factory': Foo})
+ # Register the provided interface
+ self.assertEqual(_cfg_ctx._actions[1][0], ())
+ action =_cfg_ctx._actions[1][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', IFoo))
+
+ def test_w_component_w_provides(self):
+ from zope.interface import Interface
+ from zope.component.interface import provideInterface
+ from zope.component.zcml import handler
+ class IFoo(Interface):
+ pass
+ _COMPONENT = object()
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, component=_COMPONENT, provides=IFoo)
+ self.assertEqual(len(_cfg_ctx._actions), 2)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the utility
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], ('utility', IFoo, ''))
+ self.assertEqual(action['args'][0], 'registerUtility')
+ self.assertEqual(action['args'][1], _COMPONENT)
+ self.assertEqual(action['args'][2], IFoo)
+ self.assertEqual(action['args'][3], '')
+ self.assertEqual(action['args'][4], 'TESTING')
+ # Register the provided interface
+ self.assertEqual(_cfg_ctx._actions[1][0], ())
+ action =_cfg_ctx._actions[1][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', IFoo))
+
+ def test_w_component_wo_provides_component_provides(self):
+ from zope.interface import Interface
+ from zope.interface import directlyProvides
+ from zope.component.interface import provideInterface
+ from zope.component.zcml import handler
+ class IFoo(Interface):
+ pass
+ class Foo(object):
+ pass
+ _COMPONENT = Foo()
+ directlyProvides(_COMPONENT, IFoo)
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, component=_COMPONENT)
+ self.assertEqual(len(_cfg_ctx._actions), 2)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the utility
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], ('utility', IFoo, ''))
+ self.assertEqual(action['args'][0], 'registerUtility')
+ self.assertEqual(action['args'][1], _COMPONENT)
+ self.assertEqual(action['args'][2], IFoo)
+ self.assertEqual(action['args'][3], '')
+ self.assertEqual(action['args'][4], 'TESTING')
+ # Register the provided interface
+ self.assertEqual(_cfg_ctx._actions[1][0], ())
+ action =_cfg_ctx._actions[1][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', IFoo))
+
+ def test_w_component_w_provides_w_permission(self):
+ from zope.interface import Interface
+ from zope.proxy import removeAllProxies
+ from zope.component.interface import provideInterface
+ from zope.component.security import PermissionProxy
+ from zope.component.zcml import handler
+ class IFoo(Interface):
+ def bar(self):
+ pass
+ class Foo(object):
+ def bar(self):
+ pass
+ _COMPONENT = Foo()
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, component=_COMPONENT,
+ provides=IFoo, permission='testing')
+ self.assertEqual(len(_cfg_ctx._actions), 2)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the utility
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], ('utility', IFoo, ''))
+ self.assertEqual(action['args'][0], 'registerUtility')
+ component_proxy = action['args'][1]
+ self.assertTrue(isinstance(component_proxy, PermissionProxy))
+ self.assertTrue(removeAllProxies(component_proxy) is _COMPONENT)
+ self.assertEqual(component_proxy.__Security_checker__.get_permissions,
+ {'bar': 'testing'})
+ self.assertEqual(action['args'][2], IFoo)
+ self.assertEqual(action['args'][3], '')
+ self.assertEqual(action['args'][4], 'TESTING')
+ # Register the provided interface
+ self.assertEqual(_cfg_ctx._actions[1][0], ())
+ action =_cfg_ctx._actions[1][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', IFoo))
+
+
class ResourceViewTests(PlacelessSetup, unittest.TestCase):
def setUp(self):
@@ -968,5 +1153,6 @@
unittest.makeSuite(Test__rolledUpFactory),
unittest.makeSuite(Test_adapter),
unittest.makeSuite(Test_subscriber),
+ unittest.makeSuite(Test_utility),
unittest.makeSuite(ResourceViewTests),
))
More information about the checkins
mailing list