[Checkins] SVN: grok/branches/ulif-introspector/src/grok/admin/introspector/introspector.txt Add unit tests for introspector stuff.

Uli Fouquet uli at gnufix.de
Wed Jul 2 10:46:08 EDT 2008


Log message for revision 87929:
  Add unit tests for introspector stuff.

Changed:
  A   grok/branches/ulif-introspector/src/grok/admin/introspector/introspector.txt

-=-
Added: grok/branches/ulif-introspector/src/grok/admin/introspector/introspector.txt
===================================================================
--- grok/branches/ulif-introspector/src/grok/admin/introspector/introspector.txt	                        (rev 0)
+++ grok/branches/ulif-introspector/src/grok/admin/introspector/introspector.txt	2008-07-02 14:46:08 UTC (rev 87929)
@@ -0,0 +1,59 @@
+The Grok introspectors
+**********************
+
+:Test-Layer: unit
+
+The Grok introspectors provide methods and functions to introspect
+registries, code and the ZODB.
+
+Introspecting Registries
+========================
+
+There is a registry introspector available for getting insight infos
+about locally registered components like utilities, adapters, event
+handlers and other stuff. This specialized introspector is called
+``RegistryIntrospector``.
+
+We can create a registry introspector::
+
+  >>> from grok.admin.introspector.introspector import RegistryIntrospector
+  >>> introspector = RegistryIntrospector()
+
+
+Introspecting Utilities
+-----------------------
+
+The introspector can give us all utilities registered. In the
+beginning, there are no utilities registered::
+
+  >>> introspector.getUtilities()
+  []
+
+We now register a utility, that can be found afterwards::
+
+  >>> from zope.interface import Interface, implements
+  >>> from zope.component import provideUtility
+  >>> import persistent
+  >>> from zope.app.container.contained import Contained
+
+  >>> class ITestUtility(Interface):
+  ...   pass
+
+  >>> class TestUtility(persistent.Persistent, Contained):
+  ...   implements(ITestUtility)
+
+We register this utility globally and unnamed::
+
+  >>> provideUtility(TestUtility(), provides=ITestUtility, name='')
+
+If we now ask the introspector again for utilities, it provides the
+newly registered one::
+
+  >>> info = introspector.getUtilities()
+  >>> from pprint import pprint
+  >>> pprint(sorted(info))
+  [{'component': <TestUtility object at 0x...>,
+    'name': '',
+    'provided': <InterfaceClass __builtin__.ITestUtility>,
+    'registry': <BaseGlobalComponents base>}]
+



More information about the Checkins mailing list