[Checkins] SVN: zope.component/tseaver-test_cleanup/ Coverage for z.c.zcml.subscriber.
Tres Seaver
cvs-admin at zope.org
Tue Jun 26 23:00:54 UTC 2012
Log message for revision 127112:
Coverage for z.c.zcml.subscriber.
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:47 UTC (rev 127111)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py 2012-06-26 23:00:50 UTC (rev 127112)
@@ -77,21 +77,12 @@
def _callFUT(self, *args, **kw):
from zope.component.zcml import adapter
return adapter(*args, **kw)
-
- def _makeConfigContext(self):
- class _Context(object):
- info = 'TESTING'
- def __init__(self):
- self._actions = []
- def action(self, *args, **kw):
- self._actions.append((args, kw))
- return _Context()
def test_empty_factory(self):
from zope.interface import Interface
class IFoo(Interface):
pass
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self.assertRaises(ValueError,
self._callFUT, _cfg_ctx, [], [Interface], IFoo)
@@ -105,7 +96,7 @@
pass
class Bar(object):
pass
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self.assertRaises(ValueError,
self._callFUT, _cfg_ctx, [Foo, Bar],
[Interface, IBar], IFoo)
@@ -115,7 +106,7 @@
class _Factory(object):
def __init__(self, context):
self.context = context
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self.assertRaises(TypeError, self._callFUT, _cfg_ctx, [_Factory])
def test_no_for__factory_adapts_no_provides_factory_not_implements(self):
@@ -125,7 +116,7 @@
class _Factory(object):
def __init__(self, context):
self.context = context
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self.assertRaises(TypeError, self._callFUT, _cfg_ctx, [_Factory])
def test_multiple_factory_single_for_(self):
@@ -138,7 +129,7 @@
pass
class Bar(object):
pass
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self._callFUT(_cfg_ctx, [Foo, Bar], IFoo, [Interface])
self.assertEqual(len(_cfg_ctx._actions), 3)
self.assertEqual(_cfg_ctx._actions[0][0], ())
@@ -174,7 +165,7 @@
pass
class Foo(object):
pass
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self._callFUT(_cfg_ctx, [Foo], IFoo, [Interface], permission='testing')
self.assertEqual(len(_cfg_ctx._actions), 3)
self.assertEqual(_cfg_ctx._actions[0][0], ())
@@ -203,7 +194,7 @@
pass
class Foo(object):
pass
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self._callFUT(_cfg_ctx, [Foo], IFoo, [Interface], locate=True)
self.assertEqual(len(_cfg_ctx._actions), 3)
self.assertEqual(_cfg_ctx._actions[0][0], ())
@@ -231,7 +222,7 @@
pass
class Foo(object):
pass
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self._callFUT(_cfg_ctx, [Foo], IFoo, [Interface], trusted=True)
self.assertEqual(len(_cfg_ctx._actions), 3)
self.assertEqual(_cfg_ctx._actions[0][0], ())
@@ -262,7 +253,7 @@
class _Factory(object):
def __init__(self, context):
self.context = context
- _cfg_ctx = self._makeConfigContext()
+ _cfg_ctx = _makeConfigContext()
self._callFUT(_cfg_ctx, [_Factory])
self.assertEqual(len(_cfg_ctx._actions), 3)
self.assertEqual(_cfg_ctx._actions[0][0], ())
@@ -276,6 +267,247 @@
'', 'TESTING'))
+class Test_subscriber(unittest.TestCase):
+
+ def _callFUT(self, *args, **kw):
+ from zope.component.zcml import subscriber
+ return subscriber(*args, **kw)
+
+ def test_no_factory_no_handler(self):
+ from zope.interface import Interface
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx, (Interface,))
+
+ def test_no_factory_w_handler_w_provides(self):
+ from zope.interface import Interface
+ class IFoo(Interface):
+ pass
+ def _handler(*args):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx, (Interface,),
+ handler=_handler, provides=IFoo)
+
+ def test_w_factory_w_handler(self):
+ from zope.interface import Interface
+ class Foo(object):
+ pass
+ def _handler(*args):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx, (Interface,), Foo,
+ handler=_handler)
+
+ def test_w_factory_no_provides(self):
+ from zope.interface import Interface
+ class Foo(object):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx, (Interface,), Foo)
+
+ def test_w_factory_w_provides_no_for_factory_wo_adapter(self):
+ from zope.interface import Interface
+ class IFoo(Interface):
+ pass
+ class Foo(object):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(TypeError,
+ self._callFUT, _cfg_ctx,
+ factory=Foo, provides=IFoo)
+
+ def test_no_factory_w_handler_no_provides(self):
+ from zope.interface import Interface
+ from zope.component.interface import provideInterface
+ from zope.component.zcml import handler
+ def _handler(*args):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, (Interface,), handler=_handler)
+ self.assertEqual(len(_cfg_ctx._actions), 2)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the adapter
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'][0], 'registerHandler')
+ self.assertEqual(action['args'][1], _handler)
+ self.assertEqual(action['args'][2], (Interface,))
+ self.assertEqual(action['args'][3], '')
+ self.assertEqual(action['args'][4], 'TESTING')
+ # Register the required interface(s)
+ 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'], ('', Interface))
+
+ 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
+ def _handler(*args):
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, (Interface,), Foo, provides=IFoo)
+ self.assertEqual(len(_cfg_ctx._actions), 3)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the adapter
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'][0], 'registerSubscriptionAdapter')
+ self.assertEqual(action['args'][1], Foo)
+ self.assertEqual(action['args'][2], (Interface,))
+ self.assertEqual(action['args'][3], IFoo)
+ self.assertEqual(action['args'][4], '')
+ self.assertEqual(action['args'][5], '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))
+ # Register the required interface(s)
+ self.assertEqual(_cfg_ctx._actions[2][0], ())
+ action =_cfg_ctx._actions[2][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', Interface))
+
+ def test_w_factory_w_provides_w_permission(self):
+ from zope.interface import Interface
+ from zope.security.adapter import LocatingUntrustedAdapterFactory
+ 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, (Interface,), Foo,
+ provides=IFoo, permission='testing')
+ self.assertEqual(len(_cfg_ctx._actions), 3)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the adapter
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'][0], 'registerSubscriptionAdapter')
+ factory_proxy = action['args'][1]
+ # Foo wraped by 'protected_factory' plus
+ # 'LocatingUntrustedAdapterFactory'
+ self.assertTrue(isinstance(factory_proxy,
+ LocatingUntrustedAdapterFactory))
+ self.assertTrue(factory_proxy.factory.factory is Foo)
+ self.assertEqual(action['args'][2], (Interface,))
+ self.assertEqual(action['args'][3], IFoo)
+ self.assertEqual(action['args'][4], '')
+ self.assertEqual(action['args'][5], '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))
+ # Register the required interface(s)
+ self.assertEqual(_cfg_ctx._actions[2][0], ())
+ action =_cfg_ctx._actions[2][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', Interface))
+
+ def test_w_factory_w_provides_wo_permission_w_locate(self):
+ from zope.interface import Interface
+ from zope.security.adapter import LocatingUntrustedAdapterFactory
+ 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, (Interface,), Foo, provides=IFoo, locate=True)
+ self.assertEqual(len(_cfg_ctx._actions), 3)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the adapter
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'][0], 'registerSubscriptionAdapter')
+ factory_proxy = action['args'][1]
+ # Foo wraped by 'protected_factory' plus
+ # 'LocatingUntrustedAdapterFactory'
+ self.assertTrue(isinstance(factory_proxy,
+ LocatingUntrustedAdapterFactory))
+ self.assertTrue(factory_proxy.factory is Foo)
+ self.assertEqual(action['args'][2], (Interface,))
+ self.assertEqual(action['args'][3], IFoo)
+ self.assertEqual(action['args'][4], '')
+ self.assertEqual(action['args'][5], '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))
+ # Register the required interface(s)
+ self.assertEqual(_cfg_ctx._actions[2][0], ())
+ action =_cfg_ctx._actions[2][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', Interface))
+
+ def test_w_factory_w_provides_wo_permission_w_trusted(self):
+ from zope.interface import Interface
+ from zope.security.adapter import TrustedAdapterFactory
+ 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, (Interface,), Foo, provides=IFoo, trusted=True)
+ self.assertEqual(len(_cfg_ctx._actions), 3)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the adapter
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'][0], 'registerSubscriptionAdapter')
+ factory_proxy = action['args'][1]
+ # Foo wraped by 'protected_factory' plus
+ # 'TrustedAdapterFactory'
+ self.assertTrue(isinstance(factory_proxy,
+ TrustedAdapterFactory))
+ self.assertTrue(factory_proxy.factory is Foo)
+ self.assertEqual(action['args'][2], (Interface,))
+ self.assertEqual(action['args'][3], IFoo)
+ self.assertEqual(action['args'][4], '')
+ self.assertEqual(action['args'][5], '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))
+ # Register the required interface(s)
+ self.assertEqual(_cfg_ctx._actions[2][0], ())
+ action =_cfg_ctx._actions[2][1]
+ self.assertEqual(action['callable'], provideInterface)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'], ('', Interface))
+
+
class ResourceViewTests(PlacelessSetup, unittest.TestCase):
def setUp(self):
@@ -721,10 +953,20 @@
</configure>"""
+def _makeConfigContext():
+ class _Context(object):
+ info = 'TESTING'
+ def __init__(self):
+ self._actions = []
+ def action(self, *args, **kw):
+ self._actions.append((args, kw))
+ return _Context()
+
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(Test_handler),
unittest.makeSuite(Test__rolledUpFactory),
unittest.makeSuite(Test_adapter),
+ unittest.makeSuite(Test_subscriber),
unittest.makeSuite(ResourceViewTests),
))
More information about the checkins
mailing list