[Checkins] SVN: zope.component/tseaver-test_cleanup/ Coverage for z.c.zcml.resource.
Tres Seaver
cvs-admin at zope.org
Tue Jun 26 23:01:33 UTC 2012
Log message for revision 127122:
Coverage for z.c.zcml.resource.
Changed:
_U zope.component/tseaver-test_cleanup/
U zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py
U zope.component/tseaver-test_cleanup/src/zope/component/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:01:26 UTC (rev 127121)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_zcml.py 2012-06-26 23:01:30 UTC (rev 127122)
@@ -977,6 +977,131 @@
checker = factory.checker
self.assertEqual(checker.get_permissions, {'bar': 'testing'})
+
+class Test_resource(unittest.TestCase):
+
+ def _callFUT(self, *args, **kw):
+ from zope.component.zcml import resource
+ return resource(*args, **kw)
+
+ def test_w_allowed_interface_wo_permission(self):
+ from zope.interface import Interface
+ from zope.component.zcml import ComponentConfigurationError
+ class IResourceType(Interface):
+ pass
+ class IView(Interface):
+ def foo():
+ pass
+ def bar():
+ pass
+ class _Resource(object):
+ def __init__(self, context):
+ self.context = context
+ def foo():
+ pass
+ def bar():
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(ComponentConfigurationError,
+ self._callFUT,
+ _cfg_ctx, (_Resource,), IResourceType, '',
+ allowed_interface=IView)
+
+ def test_w_allowed_attributes_wo_permission(self):
+ from zope.interface import Interface
+ from zope.component.zcml import ComponentConfigurationError
+ class IResourceType(Interface):
+ pass
+ class _Resource(object):
+ def __init__(self, context):
+ self.context = context
+ def foo():
+ pass
+ def bar():
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self.assertRaises(ComponentConfigurationError,
+ self._callFUT,
+ _cfg_ctx, (_Resource,), IResourceType, '',
+ allowed_attributes=('foo', 'bar'))
+
+ def test_wo_permission_w_name(self):
+ from zope.interface import Interface
+ from zope.component.interface import provideInterface
+ from zope.component.zcml import handler
+ class IResourceType(Interface):
+ pass
+ class _Resource(object):
+ def __init__(self, context):
+ self.context = context
+ def foo():
+ pass
+ def bar():
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, _Resource, IResourceType, 'test')
+ self.assertEqual(len(_cfg_ctx._actions), 3)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the resource
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'],
+ ('resource', 'test', IResourceType, Interface))
+ self.assertEqual(action['args'][0], 'registerAdapter')
+ self.assertEqual(action['args'][1], _Resource)
+ self.assertEqual(action['args'][2], (IResourceType,))
+ self.assertEqual(action['args'][3], Interface)
+ self.assertEqual(action['args'][4], 'test')
+ self.assertEqual(action['args'][5], 'TESTING')
+ # Register the 'type' 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'], ('', IResourceType))
+ # 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_permission(self):
+ from zope.interface import Interface
+ from zope.component.zcml import handler
+ class IResourceType(Interface):
+ pass
+ class _Resource(object):
+ def __init__(self, context):
+ self.context = context
+ def foo():
+ pass
+ def bar():
+ pass
+ _cfg_ctx = _makeConfigContext()
+ self._callFUT(_cfg_ctx, _Resource, IResourceType, 'test',
+ permission='testing', allowed_attributes=('foo',))
+ self.assertEqual(len(_cfg_ctx._actions), 3)
+ self.assertEqual(_cfg_ctx._actions[0][0], ())
+ # Register the resource
+ action =_cfg_ctx._actions[0][1]
+ self.assertEqual(action['callable'], handler)
+ self.assertEqual(action['discriminator'],
+ ('resource', 'test', IResourceType, Interface))
+ self.assertEqual(action['args'][0], 'registerAdapter')
+ factory = action['args'][1]
+ self.assertTrue(factory.factory is _Resource)
+ context = object()
+ resource = factory(context)
+ checker = resource.__Security_checker__
+ self.assertEqual(checker.get_permissions, {'foo': 'testing'})
+ self.assertTrue(resource.context is context)
+ self.assertEqual(action['args'][2], (IResourceType,))
+ self.assertEqual(action['args'][3], Interface)
+ self.assertEqual(action['args'][4], 'test')
+ self.assertEqual(action['args'][5], 'TESTING')
+
+
if 0: #these tests suck: get coverage to 100% without them
class ResourceViewTests(PlacelessSetup, unittest.TestCase):
@@ -1446,5 +1571,6 @@
unittest.makeSuite(Test_utility),
unittest.makeSuite(Test_interface),
unittest.makeSuite(Test_view),
+ unittest.makeSuite(Test_resource),
#unittest.makeSuite(ResourceViewTests),
))
Modified: zope.component/tseaver-test_cleanup/src/zope/component/zcml.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/zcml.py 2012-06-26 23:01:26 UTC (rev 127121)
+++ zope.component/tseaver-test_cleanup/src/zope/component/zcml.py 2012-06-26 23:01:30 UTC (rev 127122)
@@ -620,6 +620,7 @@
def proxyResource(request, factory=factory, checker=checker):
return proxify(factory(request), checker)
+ proxyResource.factory = factory
factory = proxyResource
More information about the checkins
mailing list