[Checkins] SVN: grokcore.component/trunk/ rename tests to reflect component name
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Mon Feb 14 03:12:56 EST 2011
Log message for revision 120306:
rename tests to reflect component name
Changed:
U grokcore.component/trunk/README.txt
U grokcore.component/trunk/src/grokcore/component/components.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/decorator.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py
U grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py
-=-
Modified: grokcore.component/trunk/README.txt
===================================================================
--- grokcore.component/trunk/README.txt 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/README.txt 2011-02-14 08:12:56 UTC (rev 120306)
@@ -214,46 +214,8 @@
event is sent for an object."""
IZopeDublinCore(obj).modified = datetime.datetime.utcnow()
+***
-API overview
-============
-
-Base classes
-------------
-
-``Adapter``
- Base class for an adapter that adapts a single object (commonly
- referred to as the *context*). Use the ``context`` directive to
- specify which object to adapt and the ``implements`` directive to
- specify which interface the adapter will provide. If it's a named
- adapter, you may use the ``name`` directive to specify the name.
-
-``MultiAdapter``
- Base class for an adapter that adapts *n* objects (where *n>=1*).
- Use the ``adapts`` directive to specify which kinds of objects are
- adapted and the ``implements`` directive to specify which
- interface the adapter will provide. If it's a named
- multi-adapter, you may use the ``name`` directive to specify the
- name.
-
-``GlobalUtility``
- Base class for a globally registered utility. Unless you use the
- ``direct`` directive to indicate that the class itself should be
- registered as a utility, the class will automatically be
- instantiated, therefore the constructor may not take any
- arguments. Use the ``implements`` directive to specify which
- interface the utility provides, or if that is not unambiguous,
- also use the ``provides`` directive to specify which of the
- implemented interfaces should be used when registering the
- utility. If it's a named utility, you may use the ``name``
- directive to specify the name.
-
-``Context``
- Subclasses of this will automatically be found as potential
- contexts for adapters and other types of context-dependent
- components.
-
-
Class-level directives
----------------------
Modified: grokcore.component/trunk/src/grokcore/component/components.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/components.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/components.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -19,8 +19,14 @@
class Adapter(object):
- """Base class to define an adapter.
+ """Base class for an adapter that adapts a single object (commonly referred
+ to as the *context*).
+ Use the ``context`` directive to specify which object to adapt and the
+ ``implements`` directive to specify which interface the adapter will
+ provide. If it's a named adapter, you may use the ``name`` directive to
+ specify the name.
+
Adapters are automatically registered when a module is "grokked".
.. attribute:: context
@@ -33,16 +39,40 @@
self.context = context
-class GlobalUtility(object):
- """Base class to define a globally registered utility.
+class MultiAdapter(object):
+ """Base class for an adapter that adapts *n* objects (where *n>=1*).
- Global utilities are automatically registered when a module is "grokked".
+ Use the ``adapts`` directive to specify which kinds of objects are adapted
+ and the ``implements`` directive to specify which interface the adapter
+ will provide. If it's a named multi-adapter, you may use the ``name``
+ directive to specify the name.
+
+ Note that contrary to the Adapter, the MultiAdapter base class does not
+ provide an `__init__` method. An `__init__` needs to accept the same number
+ of arguments as are used in the `adapts` directive.
+
+ MultiAdapters are automatically registered when a module is "grokked".
+
"""
pass
-class MultiAdapter(object):
- """Base class to define a Multi Adapter.
+class GlobalUtility(object):
+ """Base class to define a globally registered utility.
+
+ Base class for a globally registered utility. Unless you use the
+ ``direct`` directive to indicate that the class itself should be
+ registered as a utility, the class will automatically be
+ instantiated, therefore the constructor may not take any
+ arguments. Use the ``implements`` directive to specify which
+ interface the utility provides, or if that is not unambiguous,
+ also use the ``provides`` directive to specify which of the
+ implemented interfaces should be used when registering the
+ utility. If it's a named utility, you may use the ``name``
+ directive to specify the name.
+
+
+ Global utilities are automatically registered when a module is "grokked".
"""
pass
@@ -61,4 +91,8 @@
class Context(object):
+ """Subclasses of this will automatically be found as potential contexts for
+ adapters and other types of context-dependent components.
+
+ """
implements(IContext)
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/decorator.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/decorator.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/decorator.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -3,9 +3,9 @@
>>> cave = Cave('sweet home')
- >>> subscribers = grok.querySubscriptions(cave, IActivity)
- >>> subscribers
- [<grokcore.component.tests.subscriber.decorator.DebuggingGrokcore object at ...>]
+ >>> subscriptions = grok.querySubscriptions(cave, IActivity)
+ >>> subscriptions
+ [<grokcore.component.tests.subscriptions.decorator.DebuggingGrokcore object at ...>]
Subscripotion adapters are not registered as regular adapters:
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -4,32 +4,32 @@
>>> cave = Cave('Tilburg cave')
>>> martijn = Mammoth('Martijn')
- You can query a subscribers using multiple components. You will get
- all subscribers registered for office and cave (since office is a
+ You can query a subscriptions using multiple components. You will get
+ all subscriptions registered for office and cave (since office is a
base class of cave):
- >>> subscribers = grok.queryMultiSubscriptions((cave, martijn), IActivity)
- >>> subscribers
- [<grokcore.component.tests.subscriber.multisubscribers.Sleep object at ...>,
- <grokcore.component.tests.subscriber.multisubscribers.Food object at ...>,
- <grokcore.component.tests.subscriber.multisubscribers.WritingCode object at ...>]
+ >>> subscriptions = grok.queryMultiSubscriptions((cave, martijn), IActivity)
+ >>> subscriptions
+ [<grokcore.component.tests.subscriptions.multisubscriptions.Sleep object at ...>,
+ <grokcore.component.tests.subscriptions.multisubscriptions.Food object at ...>,
+ <grokcore.component.tests.subscriptions.multisubscriptions.WritingCode object at ...>]
- >>> _ = map(lambda s: s.do(), subscribers)
+ >>> _ = map(lambda s: s.do(), subscriptions)
Martijn is sleeping at Tilburg cave.
Martijn is feeding himself at Tilburg cave.
Martijn is writing code at Tilburg cave!
- Now, Martijn goes to the office. You will only get subscribers
+ Now, Martijn goes to the office. You will only get subscriptions
registered for office:
>>> office = Office('Grok corp(r)(tm) headquarters')
- >>> office_subscribers = grok.queryMultiSubscriptions(
+ >>> office_subscriptions = grok.queryMultiSubscriptions(
... (office, martijn), IActivity)
- >>> office_subscribers
- [<grokcore.component.tests.subscriber.multisubscribers.Sleep object at ...>]
+ >>> office_subscriptions
+ [<grokcore.component.tests.subscriptions.multisubscriptions.Sleep object at ...>]
- >>> _ = map(lambda s: s.do(), office_subscribers)
+ >>> _ = map(lambda s: s.do(), office_subscriptions)
Martijn is sleeping at Grok corp(r)(tm) headquarters.
"""
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -4,35 +4,35 @@
>>> cave = Cave('Tilburg cave')
>>> martijn = Mammoth('Martijn')
- You can query a subscribers using multiple components and sort them
+ You can query a subscriptions using multiple components and sort them
using `grok.order` information:
- >>> ordered_subscribers = grok.queryOrderedMultiSubscriptions(
+ >>> ordered_subscriptions = grok.queryOrderedMultiSubscriptions(
... (cave, martijn), IActivity)
- >>> ordered_subscribers
- [<grokcore.component.tests.subscriber.ordered_multisubscribers.Cooking object at ...>,
- <grokcore.component.tests.subscriber.ordered_multisubscribers.Gardening object at ...>,
- <grokcore.component.tests.subscriber.ordered_multisubscribers.Cleaning object at ...>]
+ >>> ordered_subscriptions
+ [<grokcore.component.tests.subscriptions.ordered_multisubscriptions.Cooking object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_multisubscriptions.Gardening object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_multisubscriptions.Cleaning object at ...>]
- >>> _ = map(lambda a: a.do(), ordered_subscribers)
+ >>> _ = map(lambda a: a.do(), ordered_subscriptions)
Martijn is cooking in Tilburg cave!
Martijn is growing pumpkins in Tilburg cave!
Martijn is cleaning the Tilburg cave.
Or choose not to:
- >>> subscribers = grok.queryMultiSubscriptions(
+ >>> subscriptions = grok.queryMultiSubscriptions(
... (cave, martijn), IActivity)
(still need to sort them on class name in order to have a working doctest)
- >>> subscribers = sorted(subscribers, key=lambda s: s.__class__.__name__)
- >>> subscribers
- [<grokcore.component.tests.subscriber.ordered_multisubscribers.Cleaning object at ...>,
- <grokcore.component.tests.subscriber.ordered_multisubscribers.Cooking object at ...>,
- <grokcore.component.tests.subscriber.ordered_multisubscribers.Gardening object at ...>]
+ >>> subscriptions = sorted(subscriptions, key=lambda s: s.__class__.__name__)
+ >>> subscriptions
+ [<grokcore.component.tests.subscriptions.ordered_multisubscriptions.Cleaning object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_multisubscriptions.Cooking object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_multisubscriptions.Gardening object at ...>]
- >>> _ = map(lambda a: a.do(), subscribers)
+ >>> _ = map(lambda a: a.do(), subscriptions)
Martijn is cleaning the Tilburg cave.
Martijn is cooking in Tilburg cave!
Martijn is growing pumpkins in Tilburg cave!
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -3,29 +3,29 @@
>>> cave = Cave()
- You can query the subscribers and sort them with the information
+ You can query the subscriptions and sort them with the information
provided by grok.order:
- >>> ordered_subscribers = grok.queryOrderedSubscriptions(cave, ICleaner)
- >>> ordered_subscribers
- [<grokcore.component.tests.subscriber.ordered_subscribers.MondayCleaner object at ...>,
- <grokcore.component.tests.subscriber.ordered_subscribers.WednesdayCleaner object at ...>,
- <grokcore.component.tests.subscriber.ordered_subscribers.SaturdayCleaner object at ...>]
+ >>> ordered_subscriptions = grok.queryOrderedSubscriptions(cave, ICleaner)
+ >>> ordered_subscriptions
+ [<grokcore.component.tests.subscriptions.ordered_subscriptions.MondayCleaner object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_subscriptions.WednesdayCleaner object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_subscriptions.SaturdayCleaner object at ...>]
- >>> _ = map(lambda s: s.work(), ordered_subscribers)
+ >>> _ = map(lambda s: s.work(), ordered_subscriptions)
Monday cleaning!
Wednesday cleaning!
Saturday cleaning!
If you use the regular query method, they won't be sorted:
- >>> subscribers = grok.querySubscriptions(cave, ICleaner)
- >>> subscribers
- [<grokcore.component.tests.subscriber.ordered_subscribers.MondayCleaner object at ...>,
- <grokcore.component.tests.subscriber.ordered_subscribers.SaturdayCleaner object at ...>,
- <grokcore.component.tests.subscriber.ordered_subscribers.WednesdayCleaner object at ...>]
+ >>> subscriptions = grok.querySubscriptions(cave, ICleaner)
+ >>> subscriptions
+ [<grokcore.component.tests.subscriptions.ordered_subscriptions.MondayCleaner object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_subscriptions.SaturdayCleaner object at ...>,
+ <grokcore.component.tests.subscriptions.ordered_subscriptions.WednesdayCleaner object at ...>]
- >>> _ = map(lambda s: s.work(), subscribers)
+ >>> _ = map(lambda s: s.work(), subscriptions)
Monday cleaning!
Saturday cleaning!
Wednesday cleaning!
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -3,13 +3,13 @@
>>> cave = Cave('sweet home')
- >>> subscribers = grok.querySubscriptions(cave, ICleaner)
- >>> subscribers
- [<grokcore.component.tests.subscriber.subscribers.MondayCleaner object at ...>,
- <grokcore.component.tests.subscriber.subscribers.SaturdayCleaner object at ...>,
- <grokcore.component.tests.subscriber.subscribers.WednesdayCleaner object at ...>]
+ >>> subscriptions = grok.querySubscriptions(cave, ICleaner)
+ >>> subscriptions
+ [<grokcore.component.tests.subscriptions.subscriptions.MondayCleaner object at ...>,
+ <grokcore.component.tests.subscriptions.subscriptions.SaturdayCleaner object at ...>,
+ <grokcore.component.tests.subscriptions.subscriptions.WednesdayCleaner object at ...>]
- >>> _ = map(lambda s: s.work(), subscribers)
+ >>> _ = map(lambda s: s.work(), subscriptions)
Monday cleaning sweet home!
Saturday cleaning sweet home!
Wednesday cleaning sweet home!
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -3,7 +3,7 @@
Traceback (most recent call last):
...
GrokError: No module-level context for
- <class 'grokcore.component.tests.subscriber.subscribers_no_context.CaveProcessor'>,
+ <class 'grokcore.component.tests.subscriptions.subscriptions_no_context.CaveProcessor'>,
please use the 'context' directive.
"""
Modified: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py 2011-02-14 07:43:17 UTC (rev 120305)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py 2011-02-14 08:12:56 UTC (rev 120306)
@@ -2,7 +2,7 @@
>>> grok.testing.grok(__name__)
Traceback (most recent call last):
...
- GrokError: <class 'grokcore.component.tests.subscriber.subscribers_no_interface.CaveProcessor'>
+ GrokError: <class 'grokcore.component.tests.subscriptions.subscriptions_no_interface.CaveProcessor'>
must implement at least one interface (use grok.implements to specify).
"""
More information about the checkins
mailing list