Example #1
0
    def test_named_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

        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 = self._callFUT((bar, baz), IFoo, 'named')
        self.assertTrue(adapted.__class__ is FooAdapter)
        self.assertTrue(adapted.first is bar)
        self.assertTrue(adapted.second is baz)
Example #2
0
    def test_named_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, 'named')
        bar = Bar()
        adapted = self._callFUT(bar, IFoo, 'named')
        self.assertTrue(adapted.__class__ is Baz)
        self.assertTrue(adapted.context is bar)
 def test_named_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
     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 = self._callFUT((bar, baz), IFoo, 'named')
     self.assertTrue(adapted.__class__ is FooAdapter)
     self.assertTrue(adapted.first is bar)
     self.assertTrue(adapted.second is baz)
 def test_named_hit(self):
     from zope.interface import Interface
     from zope.component import getGlobalSiteManager
     class IFoo(Interface):
         pass
     obj = object()
     getGlobalSiteManager().registerUtility(obj, IFoo, name='bar')
     self.assertTrue(self._callFUT(IFoo, name='bar') is obj)
Example #5
0
    def test_named_hit(self):
        from zope.interface import Interface
        from zope.component import getGlobalSiteManager

        class IFoo(Interface):
            pass

        obj = object()
        getGlobalSiteManager().registerUtility(obj, IFoo, name='bar')
        self.assertTrue(self._callFUT(IFoo, name='bar') is obj)
 def test_hit(self):
     from zope.interface import Interface
     from zope.component import getGlobalSiteManager
     class IFoo(Interface):
         pass
     obj = object()
     obj1 = object()
     getGlobalSiteManager().registerUtility(obj, IFoo)
     getGlobalSiteManager().registerUtility(obj1, IFoo, name='bar')
     tuples = list(self._callFUT(IFoo))
     self.assertEqual(len(tuples), 2)
     self.assertTrue(('', obj) in tuples)
     self.assertTrue(('bar', obj1) in tuples)
 def test_anonymous_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 = self._callFUT(ctx, IFoo, '')
     self.assertTrue(adapted.__class__ is Baz)
     self.assertTrue(adapted.context is ctx)
Example #8
0
    def test_hit(self):
        from zope.interface import Interface
        from zope.component import getGlobalSiteManager

        class IFoo(Interface):
            pass

        obj = object()
        obj1 = object()
        getGlobalSiteManager().registerUtility(obj, IFoo)
        getGlobalSiteManager().registerUtility(obj1, IFoo, name='bar')
        tuples = list(self._callFUT(IFoo))
        self.assertEqual(len(tuples), 2)
        self.assertTrue(('', obj) in tuples)
        self.assertTrue(('bar', obj1) in tuples)
Example #9
0
    def test_hit(self):
        from zope.component import getGlobalSiteManager
        from zope.interface import Interface
        from zope.interface import implementer

        class IFoo(Interface):
            pass

        @implementer(IFoo)
        class Foo(object):
            pass

        _called = []

        def _bar(context):
            _called.append('_bar')

        def _baz(context):
            _called.append('_baz')

        gsm = getGlobalSiteManager()
        gsm.registerHandler(_bar, (IFoo, ))
        gsm.registerHandler(_baz, (IFoo, ))
        self._callFUT(Foo())
        self.assertEqual(len(_called), 2, _called)
        self.assertTrue('_bar' in _called)
        self.assertTrue('_baz' in _called)
def register_utilities(worker_config, auction_id):
    gsm = getGlobalSiteManager()

    # Register datasource
    datasource_config = worker_config.get('datasource', {})
    datasource_config.update(auction_id=auction_id)
    datasource = prepare_datasource(datasource_config)
    gsm.registerUtility(datasource, IDataSource)

    # Register database
    database_config = worker_config.get('database', {})
    database = prepare_database(database_config)
    gsm.registerUtility(database, IDatabase)

    # Register context
    context_config = worker_config.get('context', {})
    context = prepare_context(context_config)
    context['auction_doc_id'] = auction_id
    context['worker_defaults'] = worker_config
    # Initializing semaphore which is used for locking WSGI server actions
    # during applying bids or updating auction document
    context['server_actions'] = BoundedSemaphore()
    gsm.registerUtility(context, IContext)

    # Register JobService
    job_service = prepare_job_service()
    gsm.registerUtility(job_service, IJobService)
Example #11
0
    def test_named_w_provides_w_adapts(self):
        from zope.interface import Interface
        from zope.interface import implementer
        from zope.component.globalregistry import getGlobalSiteManager

        class IFoo(Interface):
            pass

        class IBar(Interface):
            pass

        @implementer(IFoo)
        class Foo(object):
            pass

        class Bar(object):
            def __init__(self, context):
                self.context = context

        self._callFUT(Bar, (IFoo, ), IBar, 'test')
        gsm = getGlobalSiteManager()
        foo = Foo()
        adapted = gsm.getAdapter(foo, IBar, name='test')
        self.assertTrue(isinstance(adapted, Bar))
        self.assertTrue(adapted.context is foo)
 def test_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.tests.examples import ConformsToIComponentLookup
     class IFoo(Interface):
         pass
     class IBar(Interface):
         pass
     @implementer(IFoo)
     class Global(object):
         __init__ = fails_if_called(self)
     @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 = self._callFUT(bar, IFoo, context=Context(sm1))
     self.assertTrue(adapted.__class__ is Local)
     self.assertTrue(adapted.context is bar)
Example #13
0
 def test_w_None(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     siteinfo = _DummySiteInfo()
     with _Monkey(hooks, siteinfo=siteinfo):
         self.assertTrue(self._callFUT() is None)
Example #14
0
    def test_it(self):
        from zope.interface import Interface
        from zope.interface import implementer
        from zope.component.globalregistry import getGlobalSiteManager
        from zope.component.interfaces import IObjectEvent
        from zope.component.event import objectEventNotify
        _adapted = []

        def _adapter(context, event):
            _adapted.append((context, event))
            return object()

        gsm = getGlobalSiteManager()
        gsm.registerHandler(_adapter, (Interface, IObjectEvent))
        del _adapted[:]  # clear handler reg

        @implementer(IObjectEvent)
        class _ObjectEvent(object):
            def __init__(self, object):
                self.object = object

        context = object()
        event = _ObjectEvent(context)
        objectEventNotify(event)
        self.assertEqual(_adapted, [(context, event)])
Example #15
0
 def test_w_None(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     siteinfo = _DummySiteInfo()
     with _Monkey(hooks, siteinfo=siteinfo):
         self.assertTrue(self._callFUT() is None)
    def test_hit_in_current_site(self):
        from zope.component._api import getSiteManager
        from zope.component.globalregistry import getGlobalSiteManager
        from zope.interface.registry import Components
        from zope.interface import Interface
        from zope.interface.interfaces import IInterface

        class ILocal(Interface):
            pass

        class IGlobal(Interface):
            pass

        gsm = getGlobalSiteManager()
        site_man = Components(bases=(gsm,))
        def get(_context=None):
            return site_man
        getSiteManager.sethook(get)
        self.addCleanup(getSiteManager.reset)


        gsm.registerUtility(IGlobal, IInterface, 'foo')
        site_man.registerUtility(ILocal, IInterface, 'bar')

        result = self._callFUT(None)
        self.assertEqual(len(result), 2)
        self.assertIn(ILocal, result)
        self.assertIn(IGlobal, result)

        getSiteManager.reset()

        result = self._callFUT(None)
        self.assertEqual(len(result), 1)
        self.assertIn(IGlobal, result)
Example #17
0
    def test_w_provides_w_adapts(self):
        from zope.interface import Interface
        from zope.interface import implementer
        from zope.component.globalregistry import getGlobalSiteManager

        class IFoo(Interface):
            pass

        class IBar(Interface):
            pass

        @implementer(IFoo)
        class Foo(object):
            pass

        class Bar(object):
            def __init__(self, context):
                self.context = context

        self._callFUT(Bar, (IFoo, ), IBar)
        gsm = getGlobalSiteManager()
        foo = Foo()
        adapted = gsm.subscribers((foo, ), IBar)
        self.assertEqual(len(adapted), 1)
        self.assertTrue(isinstance(adapted[0], Bar))
        self.assertTrue(adapted[0].context is foo)
Example #18
0
    def test_extra_csv_columns(self):
        csv_with_extra = ('Title,something,something_else\n' 'TY,asdf,qwer\n')
        extra_data = []

        class UrlAdapter(object):
            interface.implements(ICSVImportExtraColumns)
            component.adapts(INyURL)

            def __init__(self, ob):
                self.ob = ob

            def handle_columns(self, extra_properties):
                extra_data.append(extra_properties)

        reg = getGlobalSiteManager()
        reg.registerAdapter(UrlAdapter)

        do_import_object(self, 'Naaya URL', csv_with_extra, 'imported')

        self.assertEqual(self.portal.imported['ty'].title, 'TY')
        self.assertEqual(extra_data, [{
            'something': 'asdf',
            'something_else': 'qwer'
        }])

        reg.unregisterAdapter(UrlAdapter)
    def test_anonymous_no_provides_no_adapts(self):
        from zope.interface import Interface
        from zope.interface import implementer
        from zope.component.globalregistry import getGlobalSiteManager
        from zope.component._declaration import adapter

        class IFoo(Interface):
            pass

        class IBar(Interface):
            pass

        @implementer(IFoo)
        class Foo(object):
            pass

        @adapter(IFoo)
        @implementer(IBar)
        class Bar(object):
            def __init__(self, context):
                self.context = context

        self._callFUT(Bar)
        gsm = getGlobalSiteManager()
        foo = Foo()
        adapted = gsm.getAdapter(foo, IBar)
        self.assertTrue(isinstance(adapted, Bar))
        self.assertTrue(adapted.context is foo)
 def test_w_conforming_context(self):
     from zope.interface import Interface
     from zope.component import getGlobalSiteManager
     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(self._callFUT(IFoo, context=context) is obj2)
Example #21
0
 def test_global(self):
     from zope.component import getGlobalSiteManager
     from zope.component.interface import ComponentLookupError
     gsm = getGlobalSiteManager()
     gutil = _makeMyUtility('global', gsm)
     gsm.registerUtility(gutil, IMyUtility, 'myutil')
     self.assertRaises(ComponentLookupError, self._callFUT, gutil,
                       IMyUtility, 'myutil')
 def test_global(self):
     from zope.component import getGlobalSiteManager
     from zope.component.interface import ComponentLookupError
     gsm = getGlobalSiteManager()
     gutil = _makeMyUtility('global', gsm)
     gsm.registerUtility(gutil, IMyUtility, 'myutil')
     self.assertRaises(ComponentLookupError,
                       self._callFUT, gutil, IMyUtility, 'myutil')
Example #23
0
    def test_anonymous_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 = self._callFUT(ctx, IFoo, '')
        self.assertTrue(adapted.__class__ is Baz)
        self.assertTrue(adapted.context is ctx)
 def test_hit(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     gsm.registerUtility(IFoo, IInterface, 'foo')
     self.assertTrue(self._callFUT(object(), 'foo') is IFoo)
Example #25
0
 def test_default(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     _SM2 = object()
     siteinfo = _DummySiteInfo()
     siteinfo.sm = _SM2
     with _Monkey(hooks, siteinfo=siteinfo):
         self.assertTrue(self._callFUT() is _SM2)
Example #26
0
 def test_w_explicit_context_no_IComponentLookup(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     _SM2 = object()
     siteinfo = _DummySiteInfo()
     siteinfo.sm = _SM2
     with _Monkey(hooks, siteinfo=siteinfo):
         self.assertTrue(self._callFUT(object()) is gsm)
Example #27
0
class SiteInfo(threading.local):
    site = None
    sm = getGlobalSiteManager()

    @read_property
    def adapter_hook(self):
        adapter_hook = self.sm.adapters.adapter_hook
        self.adapter_hook = adapter_hook
        return adapter_hook
 def test_no_search_string_no_base(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     gsm.registerUtility(IFoo, IInterface, 'foo')
     self.assertEqual(self._callFUT(object()), [('foo', IFoo)])
 def test_no_search_string_no_base(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     gsm.registerUtility(IFoo, IInterface, 'foo')
     self.assertEqual(self._callFUT(object()), [('foo', IFoo)])
Example #30
0
    def _getTraverser(self, context, request):
        class FakeCaseInsensitiveConfiglet(object):
            implements(ICaseInsensitiveConfiglet)
            isNonCaseInsensitive = True

        gsm = getGlobalSiteManager()
        fakeCIC = FakeCaseInsensitiveConfiglet()
        gsm.registerUtility(fakeCIC)
        return CaseInsensitiveFolderTraverser(context, request)
Example #31
0
 def test_default(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     _SM2 = object()
     siteinfo = _DummySiteInfo()
     siteinfo.sm = _SM2
     with _Monkey(hooks, siteinfo=siteinfo):
         self.assertTrue(self._callFUT() is _SM2)
 def test_hit(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     gsm.registerUtility(IFoo, IInterface, 'foo')
     self.assertTrue(self._callFUT('foo') is IFoo)
Example #33
0
 def test_w_explicit_context_no_IComponentLookup(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     _SM2 = object()
     siteinfo = _DummySiteInfo()
     siteinfo.sm = _SM2
     with _Monkey(hooks, siteinfo=siteinfo):
         self.assertTrue(self._callFUT(object()) is gsm)
 def test_getSiteManager_w_invalid_context_w_adapter(self):
     from zope.interface import Interface
     from zope.component.globalregistry import getGlobalSiteManager
     from zope.interface.interfaces import IComponentLookup
     gsm = getGlobalSiteManager()
     sm = object()
     def _adapt(x):
         return sm
     gsm.registerAdapter(_adapt, (Interface,), IComponentLookup, '')
     self.assertTrue(self._callFUT(object()) is sm)
 def test_w_registered(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     gsm.registerUtility(IFoo, IInterface, 'foo')
     self.assertEqual(self._callFUT(object(), IFoo),
                      'zope.component.tests.test_interface.IFoo')
 def test_w_registered(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     gsm.registerUtility(IFoo, IInterface, 'foo')
     self.assertEqual(self._callFUT(object(), IFoo),
                      'zope.component.tests.test_interface.IFoo')
 def test_w_name_wo_ifact_type(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     self._callFUT('foo', IFoo)
     self.assertTrue(IInterface.providedBy(IFoo))
     registered = gsm.getUtility(IInterface, name='foo')
     self.assertTrue(registered is IFoo)
Example #38
0
 def test_named_w_provides(self):
     from zope.interface import Interface
     from zope.component.globalregistry import getGlobalSiteManager
     class IFoo(Interface):
         pass
     class Foo(object):
         pass
     foo = Foo()
     self._callFUT(foo, IFoo, 'named')
     gsm = getGlobalSiteManager()
     self.assertTrue(gsm.getUtility(IFoo, 'named') is foo)
 def test_w_name_wo_ifact_type(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     self._callFUT('foo', IFoo)
     self.assertTrue(IInterface.providedBy(IFoo))
     registered = gsm.getUtility(IInterface, name='foo')
     self.assertIs(registered, IFoo)
 def test_w_class(self):
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IBar(IInterface):
         pass
     class Foo(object):
         pass
     self._callFUT('', Foo, IBar)
     self.assertFalse(IBar.providedBy(Foo))
     self.assertEqual(len(list(gsm.getUtilitiesFor(IBar))), 0)
 def test_w_class(self):
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IBar(IInterface):
         pass
     class Foo(object):
         pass
     self._callFUT('', Foo, IBar)
     self.assertFalse(IBar.providedBy(Foo))
     self.assertEqual(len(list(gsm.getUtilitiesFor(IBar))), 0)
Example #42
0
    def makeSite(self):
        if IObjectManagerSite.providedBy(self.context):
            raise ValueError('This is already a site')

        enableSite(self.context, iface=IObjectManagerSite)

        # TODO in the future we'll have to walk up to other site
        # managers and put them in the bases
        components = PersistentComponents()
        components.__bases__ = (getGlobalSiteManager(), )
        self.context.setSiteManager(components)
 def test_named_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, 'named')
     bar = Bar()
     adapted = self._callFUT(bar, IFoo, 'named')
     self.assertTrue(adapted.__class__ is Baz)
     self.assertTrue(adapted.context is bar)
Example #44
0
    def makeSite(self):
        if IObjectManagerSite.providedBy(self.context):
            raise ValueError('This is already a site')

        enableSite(self.context, iface=IObjectManagerSite)

        # TODO in the future we'll have to walk up to other site
        # managers and put them in the bases
        components = PersistentComponents()
        components.__bases__ = (getGlobalSiteManager(),)
        self.context.setSiteManager(components)
Example #45
0
    def test_getSiteManager_w_invalid_context_w_adapter(self):
        from zope.interface import Interface
        from zope.component.globalregistry import getGlobalSiteManager
        from zope.component.interfaces import IComponentLookup
        gsm = getGlobalSiteManager()
        sm = object()

        def _adapt(x):
            return sm

        gsm.registerAdapter(_adapt, (Interface, ), IComponentLookup, '')
        self.assertTrue(self._callFUT(object()) is sm)
Example #46
0
    def test_w_conforming_context(self):
        from zope.interface import Interface
        from zope.component import getGlobalSiteManager
        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(self._callFUT(IFoo, context=context) is obj2)
Example #47
0
 def test_anonymous_no_provides(self):
     from zope.interface import Interface
     from zope.interface import implementer
     from zope.component.globalregistry import getGlobalSiteManager
     class IFoo(Interface):
         pass
     @implementer(IFoo)
     class Foo(object):
         pass
     foo = Foo()
     self._callFUT(foo)
     gsm = getGlobalSiteManager()
     self.assertTrue(gsm.getUtility(IFoo, '') is foo)
 def test_wo_name_w_iface_type(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     class IBar(IInterface):
         pass
     self._callFUT('', IFoo, IBar)
     self.assertTrue(IBar.providedBy(IFoo))
     nm = 'zope.component.tests.test_interface.IFoo'
     self.assertTrue(gsm.getUtility(IBar, nm) is IFoo)
 def test_wo_name_w_iface_type(self):
     from zope.interface import Interface
     from zope.interface.interfaces import IInterface
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     class IFoo(Interface):
         pass
     class IBar(IInterface):
         pass
     self._callFUT('', IFoo, IBar)
     self.assertTrue(IBar.providedBy(IFoo))
     nm = 'zope.component.tests.test_interface.IFoo'
     self.assertTrue(gsm.getUtility(IBar, nm) is IFoo)
 def test_w_adapts(self):
     from zope.interface import Interface
     from zope.component.globalregistry import getGlobalSiteManager
     class IFoo(Interface):
         pass
     _handler = fails_if_called(self)
     self._callFUT(_handler, (IFoo,))
     gsm = getGlobalSiteManager()
     regs = list(gsm.registeredHandlers())
     self.assertEqual(len(regs), 1)
     hr = regs[0]
     self.assertEqual(list(hr.required), [IFoo])
     self.assertEqual(hr.name, '')
     self.assertTrue(hr.factory is _handler)
 def test_it(self):
     from zope.interface import Interface
     from zope.component.globalregistry import getGlobalSiteManager
     from zope.component.event import dispatch
     _adapted = []
     def _adapter(context):
         _adapted.append(context)
         return object()
     gsm = getGlobalSiteManager()
     gsm.registerHandler(_adapter, (Interface,))
     del _adapted[:] # clear handler reg
     event = object()
     dispatch(event)
     self.assertEqual(_adapted, [event])
Example #52
0
def searchInterfaceUtilities(context, search_string=None, base=None):
    gsm = getGlobalSiteManager()
    iface_utilities = gsm.getUtilitiesFor(IInterface)

    if search_string:
        search_string = search_string.lower()
        iface_utilities = [iface_util for iface_util in iface_utilities
                           if (getInterfaceAllDocs(iface_util[1]).\
                               find(search_string) >= 0)]
    if base:
        res = [iface_util for iface_util in iface_utilities
               if iface_util[1].isOrExtends(base)]
    else:
        res = [iface_util for iface_util in iface_utilities]
    return res
Example #53
0
 def test_w_adapts(self):
     from zope.interface import Interface
     from zope.component.globalregistry import getGlobalSiteManager
     class IFoo(Interface):
         pass
     def _handler(context):
         assert 0, "DON'T GO HERE"
     self._callFUT(_handler, (IFoo,))
     gsm = getGlobalSiteManager()
     regs = list(gsm.registeredHandlers())
     self.assertEqual(len(regs), 1)
     hr = regs[0]
     self.assertEqual(list(hr.required), [IFoo])
     self.assertEqual(hr.name, '')
     self.assertTrue(hr.factory is _handler)
Example #54
0
 def test_w_None(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     _SM2 = object()
     _SITE = object()
     _HOOK = object()
     siteinfo = _DummySiteInfo()
     siteinfo.sm = _SM2
     siteinfo.site = _SITE
     siteinfo.adapterhook = _HOOK
     with _Monkey(hooks, siteinfo=siteinfo):
         self._callFUT(None)
     self.assertTrue(siteinfo.sm is gsm)
     self.assertTrue(siteinfo.site is None)
     self.assertFalse('adapter_hook' in siteinfo.__dict__)
 def test_nested(self):
     from zope.component import getGlobalSiteManager
     from zope.interface.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(self._callFUT(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(self._callFUT(util1_1, IMyUtility, 'myutil') is util1)
Example #56
0
def registerResourceDirectory(name, directory,
                              layer=IDefaultBrowserLayer,
                              permission='zope.Public'):
    """ This function registers a resource directory with global registry. """

    if os.path.exists(directory):
        logging.info('Registering %s as %s', directory, name)

        if permission == 'zope.Public':
            permission = CheckerPublic

        checker = NamesChecker(allowed_names + ('__getitem__', 'get'),
                               permission)

        factory = DirectoryResourceFactory(directory, checker, name)
        gsm = getGlobalSiteManager()
        gsm.registerAdapter(factory, (layer,), Interface, name)
Example #57
0
 def test_w_explicit_context_w_IComponentLookup(self):
     from zope.interface import Interface
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     from zope.component.interfaces import IComponentLookup
     class _Lookup(object):
         def __init__(self, context):
             self.context = context
     gsm = getGlobalSiteManager()
     gsm.registerAdapter(_Lookup, (Interface,), IComponentLookup, '')
     _SM2 = object()
     siteinfo = _DummySiteInfo()
     siteinfo.sm = _SM2
     context = object()
     with _Monkey(hooks, siteinfo=siteinfo):
         sm = self._callFUT(context)
     self.assertTrue(isinstance(sm, _Lookup))
     self.assertTrue(sm.context is context)
Example #58
0
 def test_it(self):
     from zope.component import hooks
     from zope.component.globalregistry import getGlobalSiteManager
     gsm = getGlobalSiteManager()
     _SM2 = object()
     class _Site(object):
         def getSiteManager(self):
             return _SM2
     _site = _Site()
     siteinfo = _DummySiteInfo()
     self.assertTrue(siteinfo.site is None)
     self.assertTrue(siteinfo.sm is _SM)
     with _Monkey(hooks, siteinfo=siteinfo):
         with self._callFUT(_site):
             self.assertTrue(siteinfo.site is _site)
             self.assertTrue(siteinfo.sm is _SM2)
         self.assertTrue(siteinfo.site is None)
         self.assertTrue(siteinfo.sm is gsm)