[Checkins] SVN: zope.component/tseaver-test_cleanup/ Split out tests for z.c._api and z.c.globalregistry.

Tres Seaver cvs-admin at zope.org
Fri Jun 22 17:08:00 UTC 2012


Log message for revision 127019:
  Split out tests for z.c._api and z.c.globalregistry.

Changed:
  _U  zope.component/tseaver-test_cleanup/
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py
  A   zope.component/tseaver-test_cleanup/src/zope/component/tests/test__api.py
  A   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_globalregistry.py

-=-
Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py	2012-06-22 15:28:01 UTC (rev 127018)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py	2012-06-22 17:07:56 UTC (rev 127019)
@@ -14,10 +14,8 @@
 
 import unittest
 
-class PackageAPITests(unittest.TestCase):
+class Test_package(unittest.TestCase):
 
-    from zope.component.testing import setUp, tearDown
-
     def test_module_conforms_to_IComponentArchitecture(self):
         from zope.interface.verify import verifyObject
         from zope.component.interfaces import IComponentArchitecture
@@ -30,888 +28,9 @@
         import zope.component as zc
         verifyObject(IComponentRegistrationConvenience, zc)
 
-    def test_getGlobalSiteManager(self):
-        from zope.component.globalregistry import base
-        from zope.component.interfaces import IComponentLookup
-        from zope.component import getGlobalSiteManager
-        gsm = getGlobalSiteManager()
-        self.assertTrue(gsm is base)
-        self.assertTrue(IComponentLookup.providedBy(gsm))
-        self.assertTrue(getGlobalSiteManager() is gsm)
 
-    def test_getGlobalSiteManager_pickling(self):
-        import cPickle
-        from zope.component import getGlobalSiteManager
-        gsm = getGlobalSiteManager()
-        dumped = cPickle.dumps(gsm)
-        loaded = cPickle.loads(dumped)
-        self.assertTrue(loaded is gsm)
 
-        dumped_utilities = cPickle.dumps(gsm.utilities)
-        loaded_utilities = cPickle.loads(dumped_utilities)
-        self.assertTrue(loaded_utilities is gsm.utilities)
-
-        dumped_adapters = cPickle.dumps(gsm.adapters)
-        loaded_adapters = cPickle.loads(dumped_adapters)
-        self.assertTrue(loaded_adapters is gsm.adapters)
-
-    def test_getSiteManager_no_args(self):
-        from zope.component.globalregistry import base
-        from zope.component.interfaces import IComponentLookup
-        from zope.component import getSiteManager
-        sm = getSiteManager()
-        self.assertTrue(sm is base)
-        self.assertTrue(IComponentLookup.providedBy(sm))
-        self.assertTrue(getSiteManager() is sm)
-
-    def test_getSiteManager_w_None(self):
-        from zope.component import getSiteManager
-        self.assertTrue(getSiteManager(None) is getSiteManager())
-
-    def test_getSiteManager_w_conforming_context(self):
-        from zope.component import getSiteManager
-        from zope.component.tests.examples import ConformsToIComponentLookup
-        sitemanager = object()
-        context = ConformsToIComponentLookup(sitemanager)
-        self.assertTrue(getSiteManager(context) is sitemanager)
-
-    def test_getSiteManager_w_invalid_context(self):
-        from zope.component import getSiteManager
-        from zope.component.interfaces import ComponentLookupError
-        self.assertRaises(ComponentLookupError, getSiteManager, object())
-
-    def test_getUtility_anonymous_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getUtility
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError, getUtility, IFoo)
-
-    def test_getUtility_named_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getUtility
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError, getUtility, IFoo, name='bar')
-
-    def test_getUtility_anonymous_hit(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import getUtility
-        class IFoo(Interface):
-            pass
-        obj = object()
-        getGlobalSiteManager().registerUtility(obj, IFoo)
-        self.assertTrue(getUtility(IFoo) is obj)
-
-    def test_getUtility_named_hit(self):
-        from zope.interface import Interface
-        from zope.component import getUtility
-        from zope.component import getGlobalSiteManager
-        class IFoo(Interface):
-            pass
-        obj = object()
-        getGlobalSiteManager().registerUtility(obj, IFoo, name='bar')
-        self.assertTrue(getUtility(IFoo, name='bar') is obj)
-
-    def test_getUtility_w_conforming_context(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import getUtility
-        from zope.component.tests.examples import ConformsToIComponentLookup
-        class SM(object):
-            def __init__(self, obj):
-                self._obj = obj
-            def queryUtility(self, interface, name, default):
-                return self._obj
-        class IFoo(Interface):
-            pass
-        obj1 = object()
-        obj2 = object()
-        sm = SM(obj2)
-        context = ConformsToIComponentLookup(sm)
-        getGlobalSiteManager().registerUtility(obj1, IFoo)
-        self.assertTrue(getUtility(IFoo, context=context) is obj2)
-
-    def test_queryUtility_anonymous_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import queryUtility
-        class IFoo(Interface):
-            pass
-        self.assertEqual(queryUtility(IFoo), None)
-
-    def test_queryUtility_anonymous_nonesuch_w_default(self):
-        from zope.interface import Interface
-        from zope.component import queryUtility
-        class IFoo(Interface):
-            pass
-        obj = object()
-        self.assertTrue(queryUtility(IFoo, default=obj) is obj)
-
-    def test_queryUtility_named_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import queryUtility
-        class IFoo(Interface):
-            pass
-        self.assertEqual(queryUtility(IFoo, name='bar'), None)
-
-    def test_queryUtility_named_nonesuch_w_default(self):
-        from zope.interface import Interface
-        from zope.component import queryUtility
-        class IFoo(Interface):
-            pass
-        obj = object()
-        self.assertTrue(queryUtility(IFoo, name='bar', default=obj) is obj)
-
-    def test_queryUtility_anonymous_hit(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryUtility
-        class IFoo(Interface):
-            pass
-        obj = object()
-        getGlobalSiteManager().registerUtility(obj, IFoo)
-        self.assertTrue(queryUtility(IFoo) is obj)
-
-    def test_queryUtility_named_hit(self):
-        from zope.interface import Interface
-        from zope.component import queryUtility
-        from zope.component import getGlobalSiteManager
-        class IFoo(Interface):
-            pass
-        obj = object()
-        getGlobalSiteManager().registerUtility(obj, IFoo, name='bar')
-        self.assertTrue(queryUtility(IFoo, name='bar') is obj)
-
-    def test_queryUtility_w_conforming_context(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryUtility
-        from zope.component.tests.examples import ConformsToIComponentLookup
-        class SM(object):
-            def __init__(self, obj):
-                self._obj = obj
-            def queryUtility(self, interface, name, default):
-                return self._obj
-        class IFoo(Interface):
-            pass
-        obj1 = object()
-        obj2 = object()
-        sm = SM(obj2)
-        context = ConformsToIComponentLookup(sm)
-        getGlobalSiteManager().registerUtility(obj1, IFoo)
-        self.assertTrue(queryUtility(IFoo, context=context) is obj2)
-
-    def test_getUtilitiesFor_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getUtilitiesFor
-        class IFoo(Interface):
-            pass
-        self.assertEqual(list(getUtilitiesFor(IFoo)), [])
-
-    def test_getUtilitiesFor_hit(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import getUtilitiesFor
-        class IFoo(Interface):
-            pass
-        obj = object()
-        obj1 = object()
-        getGlobalSiteManager().registerUtility(obj, IFoo)
-        getGlobalSiteManager().registerUtility(obj1, IFoo, name='bar')
-        tuples = list(getUtilitiesFor(IFoo))
-        self.assertEqual(len(tuples), 2)
-        self.assertTrue(('', obj) in tuples)
-        self.assertTrue(('bar', obj1) in tuples)
-
-    def test_getAllUtilitiesRegisteredFor_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getAllUtilitiesRegisteredFor
-        class IFoo(Interface):
-            pass
-        self.assertEqual(list(getAllUtilitiesRegisteredFor(IFoo)), [])
-
-    def test_getAllUtilitiesRegisteredFor_hit(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import getAllUtilitiesRegisteredFor
-        class IFoo(Interface):
-            pass
-        class IBar(IFoo):
-            pass
-        obj = object()
-        obj1 = object()
-        obj2 = object()
-        getGlobalSiteManager().registerUtility(obj, IFoo)
-        getGlobalSiteManager().registerUtility(obj1, IFoo, name='bar')
-        getGlobalSiteManager().registerUtility(obj2, IBar)
-        uts = list(getAllUtilitiesRegisteredFor(IFoo))
-        self.assertEqual(len(uts), 3)
-        self.assertTrue(obj in uts)
-        self.assertTrue(obj1 in uts)
-        self.assertTrue(obj2 in uts)
-
-    def test_getNextUtility_global(self):
-        from zope.component import getGlobalSiteManager
-        from zope.component import getNextUtility
-        from zope.component.interface import ComponentLookupError
-        gsm = getGlobalSiteManager()
-        gutil = _makeMyUtility('global', gsm)
-        gsm.registerUtility(gutil, IMyUtility, 'myutil')
-        self.assertRaises(ComponentLookupError,
-                          getNextUtility, gutil, IMyUtility, 'myutil')
-
-    def test_queryNextUtility_global(self):
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryNextUtility
-        gsm = getGlobalSiteManager()
-        gutil = _makeMyUtility('global', gsm)
-        gsm.registerUtility(gutil, IMyUtility, 'myutil')
-        self.assertEqual(queryNextUtility(gutil, IMyUtility, 'myutil'), None)
-
-    def test_getNextUtility_nested(self):
-        from zope.component import getGlobalSiteManager
-        from zope.component import getNextUtility
-        from zope.component.interfaces import IComponentLookup
-        from zope.interface.registry import Components
-        gsm = getGlobalSiteManager()
-        gutil = _makeMyUtility('global', gsm)
-        gsm.registerUtility(gutil, IMyUtility, 'myutil')
-        sm1 = Components('sm1', bases=(gsm, ))
-        sm1_1 = Components('sm1_1', bases=(sm1, ))
-        util1 = _makeMyUtility('one', sm1)
-        sm1.registerUtility(util1, IMyUtility, 'myutil')
-        self.assertTrue(IComponentLookup(util1) is sm1)
-        self.assertTrue(getNextUtility(util1, IMyUtility, 'myutil') is gutil)
-        util1_1 = _makeMyUtility('one-one', sm1_1)
-        sm1_1.registerUtility(util1_1, IMyUtility, 'myutil')
-        self.assertTrue(IComponentLookup(util1_1) is sm1_1)
-        self.assertTrue(getNextUtility(util1_1, IMyUtility, 'myutil') is util1)
-
-    def test_queryNextUtility_nested(self):
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryNextUtility
-        from zope.interface.registry import Components
-        gsm = getGlobalSiteManager()
-        gutil = _makeMyUtility('global', gsm)
-        gsm.registerUtility(gutil, IMyUtility, 'myutil')
-        sm1 = Components('sm1', bases=(gsm, ))
-        sm1_1 = Components('sm1_1', bases=(sm1, ))
-        util1 = _makeMyUtility('one', sm1)
-        sm1.registerUtility(util1, IMyUtility, 'myutil')
-        util1_1 = _makeMyUtility('one-one', sm1_1)
-        sm1_1.registerUtility(util1_1, IMyUtility, 'myutil')
-        myregistry = Components()
-        custom_util = _makeMyUtility('my_custom_util', myregistry)
-        myregistry.registerUtility(custom_util, IMyUtility, 'my_custom_util')
-        sm1.__bases__ = (myregistry,) + sm1.__bases__
-        # Both the ``myregistry`` and global utilities should be available:
-        self.assertTrue(queryNextUtility(sm1, IMyUtility, 'my_custom_util')
-                                            is custom_util)
-        self.assertTrue(queryNextUtility(sm1, IMyUtility, 'myutil')
-                                            is gutil)
-
-    def test_getAdapterInContext_miss(self):
-        from zope.interface import Interface
-        from zope.component import getAdapterInContext
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError,
-                          getAdapterInContext, object(), IFoo, context=None)
-
-    def test_getAdapterInContext_hit_via_sm(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.interface.registry import Components
-        from zope.component import getGlobalSiteManager
-        from zope.component import getAdapterInContext
-        from zope.component.tests.examples import ConformsToIComponentLookup
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IFoo)
-        class Global(object):
-            def __init__(self, context):
-                self.context = context
-        @implementer(IFoo)
-        class Local(object):
-            def __init__(self, context):
-                self.context = context
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        class Context(ConformsToIComponentLookup):
-            def __init__(self, sm):
-                self.sitemanager = sm
-        gsm = getGlobalSiteManager()
-        gsm.registerAdapter(Global, (IBar,), IFoo, '')
-        sm1 = Components('sm1', bases=(gsm, ))
-        sm1.registerAdapter(Local, (IBar,), IFoo, '')
-        bar = Bar()
-        adapted = getAdapterInContext(bar, IFoo, context=Context(sm1))
-        self.assertTrue(adapted.__class__ is Local)
-        self.assertTrue(adapted.context is bar)
-
-    def test_queryAdapterInContext_miss(self):
-        from zope.interface import Interface
-        from zope.component import queryAdapterInContext
-        class IFoo(Interface):
-            pass
-        self.assertEqual(
-            queryAdapterInContext(object(), IFoo, context=None), None)
-
-    def test_queryAdapterInContext_w_object_conforming(self):
-        from zope.interface import Interface
-        from zope.component import queryAdapterInContext
-        class IFoo(Interface):
-            pass
-        _adapted = object()
-        class Foo(object):
-            def __conform__(self, iface, default=None):
-                if iface is IFoo:
-                    return _adapted
-                return default
-        self.assertTrue(
-                queryAdapterInContext(Foo(), IFoo, context=None) is _adapted)
-
-    def test_queryAdapterInContext___conform___raises_TypeError_via_class(self):
-        from zope.interface import Interface
-        from zope.component import queryAdapterInContext
-        class IFoo(Interface):
-            pass
-        _adapted = object()
-        class Foo(object):
-            def __conform__(self, iface, default=None):
-                if iface is IFoo:
-                    return _adapted
-                return default
-        # call via class, triggering TypeError
-        self.assertEqual(queryAdapterInContext(Foo, IFoo, context=None), None)
-
-    def test_queryAdapterInContext___conform___raises_TypeError_via_inst(self):
-        from zope.interface import Interface
-        from zope.component import queryAdapterInContext
-        class IFoo(Interface):
-            pass
-        _adapted = object()
-        class Foo(object):
-            def __conform__(self, iface, default=None):
-                raise TypeError
-        self.assertRaises(TypeError,
-                         queryAdapterInContext, Foo(), IFoo, context=None)
-
-    def test_queryAdapterInContext_w_object_implementing(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import queryAdapterInContext
-        class IFoo(Interface):
-            pass
-        @implementer(IFoo)
-        class Foo(object):
-              pass
-        foo = Foo()
-        self.assertTrue(
-                queryAdapterInContext(foo, IFoo, context=None) is foo)
-
-    def test_getAdapter_anonymous_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getAdapter
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError,
-                          getAdapter, object(), IFoo, '')
-
-    def test_getAdapter_named_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getAdapter
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError,
-                          getAdapter, object(), IFoo, 'bar')
-
-    def test_getAdapter_anonymous_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import getAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, '')
-        bar = Bar()
-        adapted = getAdapter(bar, IFoo, '')
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is bar)
-
-    def test_getAdapter_anonymous_hit_registered_for_None(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import getAdapter
-        class IFoo(Interface):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (None,), IFoo, '')
-        ctx = object()
-        adapted = getAdapter(ctx, IFoo, '')
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is ctx)
-
-    def test_getAdapter_named_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getAdapter
-        from zope.component import getGlobalSiteManager
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, 'named')
-        bar = Bar()
-        adapted = getAdapter(bar, IFoo, 'named')
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is bar)
-
-    def test_queryAdapter_anonymous_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import queryAdapter
-        class IFoo(Interface):
-            pass
-        self.assertEqual(queryAdapter(object(), IFoo, '', '<default>'),
-                         '<default>')
-
-    def test_queryAdapter_named_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import queryAdapter
-        class IFoo(Interface):
-            pass
-        self.assertEqual(queryAdapter(object(), IFoo, 'bar'), None)
-
-    def test_queryAdapter_anonymous_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, '')
-        bar = Bar()
-        adapted = queryAdapter(bar, IFoo, '')
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is bar)
-
-    def test_queryAdapter_named_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, 'named')
-        bar = Bar()
-        adapted = queryAdapter(bar, IFoo, 'named')
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is bar)
-
-    def test_queryAdapter_nested(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.interface.registry import Components
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryAdapter
-        from zope.component.tests.examples import ConformsToIComponentLookup
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IFoo)
-        class Global(object):
-            def __init__(self, context):
-                self.context = context
-        @implementer(IFoo)
-        class Local(object):
-            def __init__(self, context):
-                self.context = context
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        class Context(ConformsToIComponentLookup):
-            def __init__(self, sm):
-                self.sitemanager = sm
-        gsm = getGlobalSiteManager()
-        gsm.registerAdapter(Global, (IBar,), IFoo, '')
-        sm1 = Components('sm1', bases=(gsm, ))
-        sm1.registerAdapter(Local, (IBar,), IFoo, '')
-        bar = Bar()
-        adapted = queryAdapter(bar, IFoo, '', context=Context(sm1))
-        self.assertTrue(adapted.__class__ is Local)
-        self.assertTrue(adapted.context is bar)
-
-    def test_interface_call_miss(self):
-        from zope.interface import Interface
-        class IFoo(Interface):
-            pass
-        self.assertRaises(TypeError, IFoo, object())
-
-    def test_interface_call_miss_w_default(self):
-        from zope.interface import Interface
-        class IFoo(Interface):
-            pass
-        marker = object()
-        self.assertTrue(IFoo(object(), marker) is marker)
-
-    def test_interface_call_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, '')
-        bar = Bar()
-        adapted = IFoo(bar)
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is bar)
-
-    def test_interface_call_hit_registered_for_None(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        class IFoo(Interface):
-            pass
-        @implementer(IFoo)
-        class Baz(object):
-            def __init__(self, context):
-                self.context = context
-        getGlobalSiteManager().registerAdapter(Baz, (None,), IFoo, '')
-        ctx = object()
-        adapted = IFoo(ctx)
-        self.assertTrue(adapted.__class__ is Baz)
-        self.assertTrue(adapted.context is ctx)
-
-    def test_getMultiAdapter_anonymous_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getMultiAdapter
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError,
-                          getMultiAdapter, (object(), object()), IFoo, '')
-
-    def test_getMultiAdapter_named_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getMultiAdapter
-        from zope.component.interfaces import ComponentLookupError
-        class IFoo(Interface):
-            pass
-        self.assertRaises(ComponentLookupError,
-                          getMultiAdapter, (object(), object()), IFoo, 'bar')
-
-    def test_getMultiAdapter_anonymous_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import getMultiAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        class IBaz(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IBaz)
-        class Baz(object):
-            pass
-        @implementer(IFoo)
-        class FooAdapter(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        getGlobalSiteManager().registerAdapter(
-                                FooAdapter, (IBar, IBaz), IFoo, '')
-        bar = Bar()
-        baz = Baz()
-        adapted = getMultiAdapter((bar, baz), IFoo, '')
-        self.assertTrue(adapted.__class__ is FooAdapter)
-        self.assertTrue(adapted.first is bar)
-        self.assertTrue(adapted.second is baz)
-
-    def test_getMultiAdapter_anonymous_hit_registered_for_None(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import getMultiAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        class IBaz(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IFoo)
-        class FooAdapter(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        getGlobalSiteManager().registerAdapter(
-                                FooAdapter, (IBar, None), IFoo, '')
-        bar = Bar()
-        baz = object()
-        adapted = getMultiAdapter((bar, baz), IFoo, '')
-        self.assertTrue(adapted.__class__ is FooAdapter)
-        self.assertTrue(adapted.first is bar)
-        self.assertTrue(adapted.second is baz)
-
-    def test_getMultiAdapter_named_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getMultiAdapter
-        from zope.component import getGlobalSiteManager
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        class IBaz(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IBaz)
-        class Baz(object):
-            pass
-        @implementer(IFoo)
-        class FooAdapter(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        getGlobalSiteManager().registerAdapter(
-                                    FooAdapter, (IBar, IBaz), IFoo, 'named')
-        bar = Bar()
-        baz = Baz()
-        adapted = getMultiAdapter((bar, baz), IFoo, 'named')
-        self.assertTrue(adapted.__class__ is FooAdapter)
-        self.assertTrue(adapted.first is bar)
-        self.assertTrue(adapted.second is baz)
-
-    def test_queryMultiAdapter_anonymous_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import queryMultiAdapter
-        class IFoo(Interface):
-            pass
-        self.assertEqual(queryMultiAdapter((object(), object()), IFoo, '',
-                                            '<default>'),
-                         '<default>')
-
-    def test_queryMultiAdapter_named_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import queryMultiAdapter
-        class IFoo(Interface):
-            pass
-        self.assertEqual(queryMultiAdapter((object(), object()), IFoo, 'bar'),
-                         None)
-
-    def test_queryMultiAdapter_anonymous_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryMultiAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        class IBaz(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IBaz)
-        class Baz(object):
-            pass
-        @implementer(IFoo)
-        class FooAdapter(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        getGlobalSiteManager().registerAdapter(
-                                    FooAdapter, (IBar, IBaz), IFoo, '')
-        bar = Bar()
-        baz = Baz()
-        adapted = queryMultiAdapter((bar, baz), IFoo, '')
-        self.assertTrue(adapted.__class__ is FooAdapter)
-        self.assertTrue(adapted.first is bar)
-        self.assertTrue(adapted.second is baz)
-
-    def test_queryMultiAdapter_named_hit(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryMultiAdapter
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        class IBaz(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IBaz)
-        class Baz(object):
-            pass
-        @implementer(IFoo)
-        class FooAdapter(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        getGlobalSiteManager().registerAdapter(
-                                    FooAdapter, (IBar, IBaz), IFoo, 'named')
-        bar = Bar()
-        baz = Baz()
-        adapted = queryMultiAdapter((bar, baz), IFoo, 'named')
-        self.assertTrue(adapted.__class__ is FooAdapter)
-        self.assertTrue(adapted.first is bar)
-        self.assertTrue(adapted.second is baz)
-
-    def test_queryMultiAdapter_nested(self):
-        from zope.interface import Interface
-        from zope.interface import implementer
-        from zope.interface.registry import Components
-        from zope.component import getGlobalSiteManager
-        from zope.component import queryMultiAdapter
-        from zope.component.tests.examples import ConformsToIComponentLookup
-        class IFoo(Interface):
-            pass
-        class IBar(Interface):
-            pass
-        class IBaz(Interface):
-            pass
-        @implementer(IBar)
-        class Bar(object):
-            pass
-        @implementer(IBaz)
-        class Baz(object):
-            pass
-        @implementer(IFoo)
-        class Global(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        @implementer(IFoo)
-        class Local(object):
-            def __init__(self, first, second):
-                self.first, self.second = first, second
-        class Context(ConformsToIComponentLookup):
-            def __init__(self, sm):
-                self.sitemanager = sm
-        gsm = getGlobalSiteManager()
-        gsm.registerAdapter(Global, (IBar, IBaz), IFoo, '')
-        sm1 = Components('sm1', bases=(gsm, ))
-        sm1.registerAdapter(Local, (IBar, IBaz), IFoo, '')
-        bar = Bar()
-        baz = Baz()
-        adapted = queryMultiAdapter((bar, baz), IFoo, '', context=Context(sm1))
-        self.assertTrue(adapted.__class__ is Local)
-        self.assertTrue(adapted.first is bar)
-        self.assertTrue(adapted.second is baz)
-
-    def test_getAdapters_nonesuch(self):
-        from zope.interface import Interface
-        from zope.component import getAdapters
-        class IFoo(Interface):
-            pass
-        self.assertEqual(list(getAdapters((object(),), IFoo)), [])
-
-    def test_getAdapters_hit(self):
-        from zope.interface import Interface
-        from zope.component import getGlobalSiteManager
-        from zope.component import getAdapters
-        class IFoo(Interface):
-            pass
-        class BarAdapter(object):
-            def __init__(self, context):
-                self.context = context
-        class BazAdapter(object):
-            def __init__(self, context):
-                self.context = context
-        gsm = getGlobalSiteManager()
-        gsm.registerAdapter(BarAdapter, (None,), IFoo)
-        gsm.registerAdapter(BazAdapter, (None,), IFoo, name='bar')
-        tuples = list(getAdapters((object(),), IFoo))
-        self.assertEqual(len(tuples), 2)
-        names = [(x, y.__class__.__name__) for x, y in tuples]
-        self.assertTrue(('', 'BarAdapter') in names)
-        self.assertTrue(('bar', 'BazAdapter') in names)
-
-
-IMyUtility = None
-def _makeMyUtility(name, sm):
-    global IMyUtility
-    from zope.interface import Interface
-    from zope.interface import implementer
-    from zope.component.tests.examples import ConformsToIComponentLookup
-
-    if IMyUtility is None:
-        class IMyUtility(Interface):
-            pass
-
-    @implementer(IMyUtility)
-    class MyUtility(ConformsToIComponentLookup):
-        def __init__(self, id, sm):
-            self.id = id
-            self.sitemanager = sm
-
-    return MyUtility(name, sm)
-
-
 def test_suite():
     return unittest.TestSuite((
-        unittest.makeSuite(PackageAPITests),
+        unittest.makeSuite(Test_package),
     ))

Added: zope.component/tseaver-test_cleanup/src/zope/component/tests/test__api.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test__api.py	                        (rev 0)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test__api.py	2012-06-22 17:07:56 UTC (rev 127019)
@@ -0,0 +1,883 @@
+##############################################################################
+#
+# Copyright (c) 2012 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" Tests for z.c._api
+"""
+import unittest
+
+
+class PackageAPITests(unittest.TestCase):
+
+    from zope.component.testing import setUp, tearDown
+
+    def test_getSiteManager_no_args(self):
+        from zope.component.globalregistry import base
+        from zope.component.interfaces import IComponentLookup
+        from zope.component import getSiteManager
+        sm = getSiteManager()
+        self.assertTrue(sm is base)
+        self.assertTrue(IComponentLookup.providedBy(sm))
+        self.assertTrue(getSiteManager() is sm)
+
+    def test_getSiteManager_w_None(self):
+        from zope.component import getSiteManager
+        self.assertTrue(getSiteManager(None) is getSiteManager())
+
+    def test_getSiteManager_w_conforming_context(self):
+        from zope.component import getSiteManager
+        from zope.component.tests.examples import ConformsToIComponentLookup
+        sitemanager = object()
+        context = ConformsToIComponentLookup(sitemanager)
+        self.assertTrue(getSiteManager(context) is sitemanager)
+
+    def test_getSiteManager_w_invalid_context(self):
+        from zope.component import getSiteManager
+        from zope.component.interfaces import ComponentLookupError
+        self.assertRaises(ComponentLookupError, getSiteManager, object())
+
+    def test_getUtility_anonymous_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getUtility
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError, getUtility, IFoo)
+
+    def test_getUtility_named_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getUtility
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError, getUtility, IFoo, name='bar')
+
+    def test_getUtility_anonymous_hit(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import getUtility
+        class IFoo(Interface):
+            pass
+        obj = object()
+        getGlobalSiteManager().registerUtility(obj, IFoo)
+        self.assertTrue(getUtility(IFoo) is obj)
+
+    def test_getUtility_named_hit(self):
+        from zope.interface import Interface
+        from zope.component import getUtility
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        obj = object()
+        getGlobalSiteManager().registerUtility(obj, IFoo, name='bar')
+        self.assertTrue(getUtility(IFoo, name='bar') is obj)
+
+    def test_getUtility_w_conforming_context(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import getUtility
+        from zope.component.tests.examples import ConformsToIComponentLookup
+        class SM(object):
+            def __init__(self, obj):
+                self._obj = obj
+            def queryUtility(self, interface, name, default):
+                return self._obj
+        class IFoo(Interface):
+            pass
+        obj1 = object()
+        obj2 = object()
+        sm = SM(obj2)
+        context = ConformsToIComponentLookup(sm)
+        getGlobalSiteManager().registerUtility(obj1, IFoo)
+        self.assertTrue(getUtility(IFoo, context=context) is obj2)
+
+    def test_queryUtility_anonymous_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import queryUtility
+        class IFoo(Interface):
+            pass
+        self.assertEqual(queryUtility(IFoo), None)
+
+    def test_queryUtility_anonymous_nonesuch_w_default(self):
+        from zope.interface import Interface
+        from zope.component import queryUtility
+        class IFoo(Interface):
+            pass
+        obj = object()
+        self.assertTrue(queryUtility(IFoo, default=obj) is obj)
+
+    def test_queryUtility_named_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import queryUtility
+        class IFoo(Interface):
+            pass
+        self.assertEqual(queryUtility(IFoo, name='bar'), None)
+
+    def test_queryUtility_named_nonesuch_w_default(self):
+        from zope.interface import Interface
+        from zope.component import queryUtility
+        class IFoo(Interface):
+            pass
+        obj = object()
+        self.assertTrue(queryUtility(IFoo, name='bar', default=obj) is obj)
+
+    def test_queryUtility_anonymous_hit(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryUtility
+        class IFoo(Interface):
+            pass
+        obj = object()
+        getGlobalSiteManager().registerUtility(obj, IFoo)
+        self.assertTrue(queryUtility(IFoo) is obj)
+
+    def test_queryUtility_named_hit(self):
+        from zope.interface import Interface
+        from zope.component import queryUtility
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        obj = object()
+        getGlobalSiteManager().registerUtility(obj, IFoo, name='bar')
+        self.assertTrue(queryUtility(IFoo, name='bar') is obj)
+
+    def test_queryUtility_w_conforming_context(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryUtility
+        from zope.component.tests.examples import ConformsToIComponentLookup
+        class SM(object):
+            def __init__(self, obj):
+                self._obj = obj
+            def queryUtility(self, interface, name, default):
+                return self._obj
+        class IFoo(Interface):
+            pass
+        obj1 = object()
+        obj2 = object()
+        sm = SM(obj2)
+        context = ConformsToIComponentLookup(sm)
+        getGlobalSiteManager().registerUtility(obj1, IFoo)
+        self.assertTrue(queryUtility(IFoo, context=context) is obj2)
+
+    def test_getUtilitiesFor_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getUtilitiesFor
+        class IFoo(Interface):
+            pass
+        self.assertEqual(list(getUtilitiesFor(IFoo)), [])
+
+    def test_getUtilitiesFor_hit(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import getUtilitiesFor
+        class IFoo(Interface):
+            pass
+        obj = object()
+        obj1 = object()
+        getGlobalSiteManager().registerUtility(obj, IFoo)
+        getGlobalSiteManager().registerUtility(obj1, IFoo, name='bar')
+        tuples = list(getUtilitiesFor(IFoo))
+        self.assertEqual(len(tuples), 2)
+        self.assertTrue(('', obj) in tuples)
+        self.assertTrue(('bar', obj1) in tuples)
+
+    def test_getAllUtilitiesRegisteredFor_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getAllUtilitiesRegisteredFor
+        class IFoo(Interface):
+            pass
+        self.assertEqual(list(getAllUtilitiesRegisteredFor(IFoo)), [])
+
+    def test_getAllUtilitiesRegisteredFor_hit(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import getAllUtilitiesRegisteredFor
+        class IFoo(Interface):
+            pass
+        class IBar(IFoo):
+            pass
+        obj = object()
+        obj1 = object()
+        obj2 = object()
+        getGlobalSiteManager().registerUtility(obj, IFoo)
+        getGlobalSiteManager().registerUtility(obj1, IFoo, name='bar')
+        getGlobalSiteManager().registerUtility(obj2, IBar)
+        uts = list(getAllUtilitiesRegisteredFor(IFoo))
+        self.assertEqual(len(uts), 3)
+        self.assertTrue(obj in uts)
+        self.assertTrue(obj1 in uts)
+        self.assertTrue(obj2 in uts)
+
+    def test_getNextUtility_global(self):
+        from zope.component import getGlobalSiteManager
+        from zope.component import getNextUtility
+        from zope.component.interface import ComponentLookupError
+        gsm = getGlobalSiteManager()
+        gutil = _makeMyUtility('global', gsm)
+        gsm.registerUtility(gutil, IMyUtility, 'myutil')
+        self.assertRaises(ComponentLookupError,
+                          getNextUtility, gutil, IMyUtility, 'myutil')
+
+    def test_queryNextUtility_global(self):
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryNextUtility
+        gsm = getGlobalSiteManager()
+        gutil = _makeMyUtility('global', gsm)
+        gsm.registerUtility(gutil, IMyUtility, 'myutil')
+        self.assertEqual(queryNextUtility(gutil, IMyUtility, 'myutil'), None)
+
+    def test_getNextUtility_nested(self):
+        from zope.component import getGlobalSiteManager
+        from zope.component import getNextUtility
+        from zope.component.interfaces import IComponentLookup
+        from zope.interface.registry import Components
+        gsm = getGlobalSiteManager()
+        gutil = _makeMyUtility('global', gsm)
+        gsm.registerUtility(gutil, IMyUtility, 'myutil')
+        sm1 = Components('sm1', bases=(gsm, ))
+        sm1_1 = Components('sm1_1', bases=(sm1, ))
+        util1 = _makeMyUtility('one', sm1)
+        sm1.registerUtility(util1, IMyUtility, 'myutil')
+        self.assertTrue(IComponentLookup(util1) is sm1)
+        self.assertTrue(getNextUtility(util1, IMyUtility, 'myutil') is gutil)
+        util1_1 = _makeMyUtility('one-one', sm1_1)
+        sm1_1.registerUtility(util1_1, IMyUtility, 'myutil')
+        self.assertTrue(IComponentLookup(util1_1) is sm1_1)
+        self.assertTrue(getNextUtility(util1_1, IMyUtility, 'myutil') is util1)
+
+    def test_queryNextUtility_nested(self):
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryNextUtility
+        from zope.interface.registry import Components
+        gsm = getGlobalSiteManager()
+        gutil = _makeMyUtility('global', gsm)
+        gsm.registerUtility(gutil, IMyUtility, 'myutil')
+        sm1 = Components('sm1', bases=(gsm, ))
+        sm1_1 = Components('sm1_1', bases=(sm1, ))
+        util1 = _makeMyUtility('one', sm1)
+        sm1.registerUtility(util1, IMyUtility, 'myutil')
+        util1_1 = _makeMyUtility('one-one', sm1_1)
+        sm1_1.registerUtility(util1_1, IMyUtility, 'myutil')
+        myregistry = Components()
+        custom_util = _makeMyUtility('my_custom_util', myregistry)
+        myregistry.registerUtility(custom_util, IMyUtility, 'my_custom_util')
+        sm1.__bases__ = (myregistry,) + sm1.__bases__
+        # Both the ``myregistry`` and global utilities should be available:
+        self.assertTrue(queryNextUtility(sm1, IMyUtility, 'my_custom_util')
+                                            is custom_util)
+        self.assertTrue(queryNextUtility(sm1, IMyUtility, 'myutil')
+                                            is gutil)
+
+    def test_getAdapterInContext_miss(self):
+        from zope.interface import Interface
+        from zope.component import getAdapterInContext
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError,
+                          getAdapterInContext, object(), IFoo, context=None)
+
+    def test_getAdapterInContext_hit_via_sm(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.interface.registry import Components
+        from zope.component import getGlobalSiteManager
+        from zope.component import getAdapterInContext
+        from zope.component.tests.examples import ConformsToIComponentLookup
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IFoo)
+        class Global(object):
+            def __init__(self, context):
+                self.context = context
+        @implementer(IFoo)
+        class Local(object):
+            def __init__(self, context):
+                self.context = context
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        class Context(ConformsToIComponentLookup):
+            def __init__(self, sm):
+                self.sitemanager = sm
+        gsm = getGlobalSiteManager()
+        gsm.registerAdapter(Global, (IBar,), IFoo, '')
+        sm1 = Components('sm1', bases=(gsm, ))
+        sm1.registerAdapter(Local, (IBar,), IFoo, '')
+        bar = Bar()
+        adapted = getAdapterInContext(bar, IFoo, context=Context(sm1))
+        self.assertTrue(adapted.__class__ is Local)
+        self.assertTrue(adapted.context is bar)
+
+    def test_queryAdapterInContext_miss(self):
+        from zope.interface import Interface
+        from zope.component import queryAdapterInContext
+        class IFoo(Interface):
+            pass
+        self.assertEqual(
+            queryAdapterInContext(object(), IFoo, context=None), None)
+
+    def test_queryAdapterInContext_w_object_conforming(self):
+        from zope.interface import Interface
+        from zope.component import queryAdapterInContext
+        class IFoo(Interface):
+            pass
+        _adapted = object()
+        class Foo(object):
+            def __conform__(self, iface, default=None):
+                if iface is IFoo:
+                    return _adapted
+                return default
+        self.assertTrue(
+                queryAdapterInContext(Foo(), IFoo, context=None) is _adapted)
+
+    def test_queryAdapterInContext___conform___raises_TypeError_via_class(self):
+        from zope.interface import Interface
+        from zope.component import queryAdapterInContext
+        class IFoo(Interface):
+            pass
+        _adapted = object()
+        class Foo(object):
+            def __conform__(self, iface, default=None):
+                if iface is IFoo:
+                    return _adapted
+                return default
+        # call via class, triggering TypeError
+        self.assertEqual(queryAdapterInContext(Foo, IFoo, context=None), None)
+
+    def test_queryAdapterInContext___conform___raises_TypeError_via_inst(self):
+        from zope.interface import Interface
+        from zope.component import queryAdapterInContext
+        class IFoo(Interface):
+            pass
+        _adapted = object()
+        class Foo(object):
+            def __conform__(self, iface, default=None):
+                raise TypeError
+        self.assertRaises(TypeError,
+                         queryAdapterInContext, Foo(), IFoo, context=None)
+
+    def test_queryAdapterInContext_w_object_implementing(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import queryAdapterInContext
+        class IFoo(Interface):
+            pass
+        @implementer(IFoo)
+        class Foo(object):
+              pass
+        foo = Foo()
+        self.assertTrue(
+                queryAdapterInContext(foo, IFoo, context=None) is foo)
+
+    def test_getAdapter_anonymous_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getAdapter
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError,
+                          getAdapter, object(), IFoo, '')
+
+    def test_getAdapter_named_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getAdapter
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError,
+                          getAdapter, object(), IFoo, 'bar')
+
+    def test_getAdapter_anonymous_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import getAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, '')
+        bar = Bar()
+        adapted = getAdapter(bar, IFoo, '')
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is bar)
+
+    def test_getAdapter_anonymous_hit_registered_for_None(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import getAdapter
+        class IFoo(Interface):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (None,), IFoo, '')
+        ctx = object()
+        adapted = getAdapter(ctx, IFoo, '')
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is ctx)
+
+    def test_getAdapter_named_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getAdapter
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, 'named')
+        bar = Bar()
+        adapted = getAdapter(bar, IFoo, 'named')
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is bar)
+
+    def test_queryAdapter_anonymous_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import queryAdapter
+        class IFoo(Interface):
+            pass
+        self.assertEqual(queryAdapter(object(), IFoo, '', '<default>'),
+                         '<default>')
+
+    def test_queryAdapter_named_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import queryAdapter
+        class IFoo(Interface):
+            pass
+        self.assertEqual(queryAdapter(object(), IFoo, 'bar'), None)
+
+    def test_queryAdapter_anonymous_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, '')
+        bar = Bar()
+        adapted = queryAdapter(bar, IFoo, '')
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is bar)
+
+    def test_queryAdapter_named_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, 'named')
+        bar = Bar()
+        adapted = queryAdapter(bar, IFoo, 'named')
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is bar)
+
+    def test_queryAdapter_nested(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.interface.registry import Components
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryAdapter
+        from zope.component.tests.examples import ConformsToIComponentLookup
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IFoo)
+        class Global(object):
+            def __init__(self, context):
+                self.context = context
+        @implementer(IFoo)
+        class Local(object):
+            def __init__(self, context):
+                self.context = context
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        class Context(ConformsToIComponentLookup):
+            def __init__(self, sm):
+                self.sitemanager = sm
+        gsm = getGlobalSiteManager()
+        gsm.registerAdapter(Global, (IBar,), IFoo, '')
+        sm1 = Components('sm1', bases=(gsm, ))
+        sm1.registerAdapter(Local, (IBar,), IFoo, '')
+        bar = Bar()
+        adapted = queryAdapter(bar, IFoo, '', context=Context(sm1))
+        self.assertTrue(adapted.__class__ is Local)
+        self.assertTrue(adapted.context is bar)
+
+    def test_interface_call_miss(self):
+        from zope.interface import Interface
+        class IFoo(Interface):
+            pass
+        self.assertRaises(TypeError, IFoo, object())
+
+    def test_interface_call_miss_w_default(self):
+        from zope.interface import Interface
+        class IFoo(Interface):
+            pass
+        marker = object()
+        self.assertTrue(IFoo(object(), marker) is marker)
+
+    def test_interface_call_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (IBar,), IFoo, '')
+        bar = Bar()
+        adapted = IFoo(bar)
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is bar)
+
+    def test_interface_call_hit_registered_for_None(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (None,), IFoo, '')
+        ctx = object()
+        adapted = IFoo(ctx)
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is ctx)
+
+    def test_getMultiAdapter_anonymous_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getMultiAdapter
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError,
+                          getMultiAdapter, (object(), object()), IFoo, '')
+
+    def test_getMultiAdapter_named_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getMultiAdapter
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        self.assertRaises(ComponentLookupError,
+                          getMultiAdapter, (object(), object()), IFoo, 'bar')
+
+    def test_getMultiAdapter_anonymous_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import getMultiAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IBaz)
+        class Baz(object):
+            pass
+        @implementer(IFoo)
+        class FooAdapter(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        getGlobalSiteManager().registerAdapter(
+                                FooAdapter, (IBar, IBaz), IFoo, '')
+        bar = Bar()
+        baz = Baz()
+        adapted = getMultiAdapter((bar, baz), IFoo, '')
+        self.assertTrue(adapted.__class__ is FooAdapter)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
+    def test_getMultiAdapter_anonymous_hit_registered_for_None(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import getMultiAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class FooAdapter(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        getGlobalSiteManager().registerAdapter(
+                                FooAdapter, (IBar, None), IFoo, '')
+        bar = Bar()
+        baz = object()
+        adapted = getMultiAdapter((bar, baz), IFoo, '')
+        self.assertTrue(adapted.__class__ is FooAdapter)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
+    def test_getMultiAdapter_named_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getMultiAdapter
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IBaz)
+        class Baz(object):
+            pass
+        @implementer(IFoo)
+        class FooAdapter(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        getGlobalSiteManager().registerAdapter(
+                                    FooAdapter, (IBar, IBaz), IFoo, 'named')
+        bar = Bar()
+        baz = Baz()
+        adapted = getMultiAdapter((bar, baz), IFoo, 'named')
+        self.assertTrue(adapted.__class__ is FooAdapter)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
+    def test_queryMultiAdapter_anonymous_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import queryMultiAdapter
+        class IFoo(Interface):
+            pass
+        self.assertEqual(queryMultiAdapter((object(), object()), IFoo, '',
+                                            '<default>'),
+                         '<default>')
+
+    def test_queryMultiAdapter_named_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import queryMultiAdapter
+        class IFoo(Interface):
+            pass
+        self.assertEqual(queryMultiAdapter((object(), object()), IFoo, 'bar'),
+                         None)
+
+    def test_queryMultiAdapter_anonymous_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryMultiAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IBaz)
+        class Baz(object):
+            pass
+        @implementer(IFoo)
+        class FooAdapter(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        getGlobalSiteManager().registerAdapter(
+                                    FooAdapter, (IBar, IBaz), IFoo, '')
+        bar = Bar()
+        baz = Baz()
+        adapted = queryMultiAdapter((bar, baz), IFoo, '')
+        self.assertTrue(adapted.__class__ is FooAdapter)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
+    def test_queryMultiAdapter_named_hit(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryMultiAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IBaz)
+        class Baz(object):
+            pass
+        @implementer(IFoo)
+        class FooAdapter(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        getGlobalSiteManager().registerAdapter(
+                                    FooAdapter, (IBar, IBaz), IFoo, 'named')
+        bar = Bar()
+        baz = Baz()
+        adapted = queryMultiAdapter((bar, baz), IFoo, 'named')
+        self.assertTrue(adapted.__class__ is FooAdapter)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
+    def test_queryMultiAdapter_nested(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.interface.registry import Components
+        from zope.component import getGlobalSiteManager
+        from zope.component import queryMultiAdapter
+        from zope.component.tests.examples import ConformsToIComponentLookup
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IBaz)
+        class Baz(object):
+            pass
+        @implementer(IFoo)
+        class Global(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        @implementer(IFoo)
+        class Local(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        class Context(ConformsToIComponentLookup):
+            def __init__(self, sm):
+                self.sitemanager = sm
+        gsm = getGlobalSiteManager()
+        gsm.registerAdapter(Global, (IBar, IBaz), IFoo, '')
+        sm1 = Components('sm1', bases=(gsm, ))
+        sm1.registerAdapter(Local, (IBar, IBaz), IFoo, '')
+        bar = Bar()
+        baz = Baz()
+        adapted = queryMultiAdapter((bar, baz), IFoo, '', context=Context(sm1))
+        self.assertTrue(adapted.__class__ is Local)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
+    def test_getAdapters_nonesuch(self):
+        from zope.interface import Interface
+        from zope.component import getAdapters
+        class IFoo(Interface):
+            pass
+        self.assertEqual(list(getAdapters((object(),), IFoo)), [])
+
+    def test_getAdapters_hit(self):
+        from zope.interface import Interface
+        from zope.component import getGlobalSiteManager
+        from zope.component import getAdapters
+        class IFoo(Interface):
+            pass
+        class BarAdapter(object):
+            def __init__(self, context):
+                self.context = context
+        class BazAdapter(object):
+            def __init__(self, context):
+                self.context = context
+        gsm = getGlobalSiteManager()
+        gsm.registerAdapter(BarAdapter, (None,), IFoo)
+        gsm.registerAdapter(BazAdapter, (None,), IFoo, name='bar')
+        tuples = list(getAdapters((object(),), IFoo))
+        self.assertEqual(len(tuples), 2)
+        names = [(x, y.__class__.__name__) for x, y in tuples]
+        self.assertTrue(('', 'BarAdapter') in names)
+        self.assertTrue(('bar', 'BazAdapter') in names)
+
+
+IMyUtility = None
+def _makeMyUtility(name, sm):
+    global IMyUtility
+    from zope.interface import Interface
+    from zope.interface import implementer
+    from zope.component.tests.examples import ConformsToIComponentLookup
+
+    if IMyUtility is None:
+        class IMyUtility(Interface):
+            pass
+
+    @implementer(IMyUtility)
+    class MyUtility(ConformsToIComponentLookup):
+        def __init__(self, id, sm):
+            self.id = id
+            self.sitemanager = sm
+
+    return MyUtility(name, sm)
+
+
+def test_suite():
+    return unittest.TestSuite((
+        unittest.makeSuite(PackageAPITests),
+    ))
+

Added: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_globalregistry.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_globalregistry.py	                        (rev 0)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_globalregistry.py	2012-06-22 17:07:56 UTC (rev 127019)
@@ -0,0 +1,54 @@
+##############################################################################
+#
+# Copyright (c) 2012 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+""" Tests for z.c._api
+"""
+import unittest
+
+class Test_getGlobalSiteManager(unittest.TestCase):
+
+    def _callFUT(self):
+        from zope.component.globalregistry import getGlobalSiteManager
+        return getGlobalSiteManager()
+
+    def test_gsm_is_IComponentLookup(self):
+        from zope.component.globalregistry import base
+        from zope.component.interfaces import IComponentLookup
+        gsm = self._callFUT()
+        self.assertTrue(gsm is base)
+        self.assertTrue(IComponentLookup.providedBy(gsm))
+
+    def test_gsm_is_singleton(self):
+        gsm = self._callFUT()
+        self.assertTrue(self._callFUT() is gsm)
+
+    def test_gsm_pickling(self):
+        import cPickle
+        gsm = self._callFUT()
+        dumped = cPickle.dumps(gsm)
+        loaded = cPickle.loads(dumped)
+        self.assertTrue(loaded is gsm)
+
+        dumped_utilities = cPickle.dumps(gsm.utilities)
+        loaded_utilities = cPickle.loads(dumped_utilities)
+        self.assertTrue(loaded_utilities is gsm.utilities)
+
+        dumped_adapters = cPickle.dumps(gsm.adapters)
+        loaded_adapters = cPickle.loads(dumped_adapters)
+        self.assertTrue(loaded_adapters is gsm.adapters)
+
+
+def test_suite():
+    return unittest.TestSuite((
+        unittest.makeSuite(Test_getGlobalSiteManager),
+    ))



More information about the checkins mailing list