[Checkins] SVN: grokcore.component/trunk/src/grokcore/component/tests/ rename tests modules to reflect component name
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Mon Feb 14 02:43:18 EST 2011
Log message for revision 120305:
rename tests modules to reflect component name
Changed:
D grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscribers.py
A grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py
D grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscribers.py
A grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py
D grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscribers.py
A grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py
D grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers.py
D grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_context.py
D grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_interface.py
A grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py
A grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py
A grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py
U grokcore.component/trunk/src/grokcore/component/tests/test_grok.py
-=-
Deleted: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscribers.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscribers.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscribers.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -1,98 +0,0 @@
-"""
- >>> grok.testing.grok(__name__)
-
- >>> 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
- 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 ...>]
-
- >>> _ = map(lambda s: s.do(), subscribers)
- 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
- registered for office:
-
- >>> office = Office('Grok corp(r)(tm) headquarters')
- >>> office_subscribers = grok.queryMultiSubscriptions(
- ... (office, martijn), IActivity)
- >>> office_subscribers
- [<grokcore.component.tests.subscriber.multisubscribers.Sleep object at ...>]
-
- >>> _ = map(lambda s: s.do(), office_subscribers)
- Martijn is sleeping at Grok corp(r)(tm) headquarters.
-
-"""
-
-import grokcore.component as grok
-from zope import interface
-
-
-class Office(grok.Context):
-
- def __init__(self, name):
- self.name = name
-
-
-# All caves are a kind of office.
-class Cave(Office):
- pass
-
-
-class Mammoth(grok.Context):
-
- def __init__(self, name):
- self.name = name
-
-
-class IActivity(interface.Interface):
-
- def do():
- """Do something.
- """
-
-class Sleep(grok.MultiSubscription):
- grok.implements(IActivity)
- grok.adapts(Office, Mammoth)
-
- def __init__(self, where, who):
- self.where = where
- self.who = who
-
- def do(self):
- print '%s is sleeping at %s.' % (self.who.name, self.where.name)
-
-
-class DayTimeActivity(grok.MultiSubscription):
- grok.implements(IActivity)
- grok.adapts(Cave, Mammoth)
- grok.baseclass()
-
- def __init__(self, where, who):
- self.where = where
- self.who = who
-
- def do(self):
- print 'nothing'
-
-
-class Food(DayTimeActivity):
-
- def do(self):
- print '%s is feeding himself at %s.' % (self.who.name, self.where.name)
-
-
-class WritingCode(DayTimeActivity):
-
- def do(self):
- print '%s is writing code at %s!' % (self.who.name, self.where.name)
Copied: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py (from rev 120304, grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscribers.py)
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py (rev 0)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/multisubscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -0,0 +1,98 @@
+"""
+ >>> grok.testing.grok(__name__)
+
+ >>> 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
+ 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 ...>]
+
+ >>> _ = map(lambda s: s.do(), subscribers)
+ 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
+ registered for office:
+
+ >>> office = Office('Grok corp(r)(tm) headquarters')
+ >>> office_subscribers = grok.queryMultiSubscriptions(
+ ... (office, martijn), IActivity)
+ >>> office_subscribers
+ [<grokcore.component.tests.subscriber.multisubscribers.Sleep object at ...>]
+
+ >>> _ = map(lambda s: s.do(), office_subscribers)
+ Martijn is sleeping at Grok corp(r)(tm) headquarters.
+
+"""
+
+import grokcore.component as grok
+from zope import interface
+
+
+class Office(grok.Context):
+
+ def __init__(self, name):
+ self.name = name
+
+
+# All caves are a kind of office.
+class Cave(Office):
+ pass
+
+
+class Mammoth(grok.Context):
+
+ def __init__(self, name):
+ self.name = name
+
+
+class IActivity(interface.Interface):
+
+ def do():
+ """Do something.
+ """
+
+class Sleep(grok.MultiSubscription):
+ grok.implements(IActivity)
+ grok.adapts(Office, Mammoth)
+
+ def __init__(self, where, who):
+ self.where = where
+ self.who = who
+
+ def do(self):
+ print '%s is sleeping at %s.' % (self.who.name, self.where.name)
+
+
+class DayTimeActivity(grok.MultiSubscription):
+ grok.implements(IActivity)
+ grok.adapts(Cave, Mammoth)
+ grok.baseclass()
+
+ def __init__(self, where, who):
+ self.where = where
+ self.who = who
+
+ def do(self):
+ print 'nothing'
+
+
+class Food(DayTimeActivity):
+
+ def do(self):
+ print '%s is feeding himself at %s.' % (self.who.name, self.where.name)
+
+
+class WritingCode(DayTimeActivity):
+
+ def do(self):
+ print '%s is writing code at %s!' % (self.who.name, self.where.name)
Deleted: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscribers.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscribers.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscribers.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -1,97 +0,0 @@
-"""
- >>> grok.testing.grok(__name__)
-
- >>> cave = Cave('Tilburg cave')
- >>> martijn = Mammoth('Martijn')
-
- You can query a subscribers using multiple components and sort them
- using `grok.order` information:
-
- >>> ordered_subscribers = 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 ...>]
-
- >>> _ = map(lambda a: a.do(), ordered_subscribers)
- 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(
- ... (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 ...>]
-
- >>> _ = map(lambda a: a.do(), subscribers)
- Martijn is cleaning the Tilburg cave.
- Martijn is cooking in Tilburg cave!
- Martijn is growing pumpkins in Tilburg cave!
-
-
-"""
-
-import grokcore.component as grok
-from zope import interface
-
-
-class Cave(grok.Context):
-
- def __init__(self, name):
- self.name = name
-
-
-class Mammoth(grok.Context):
-
- def __init__(self, name):
- self.name = name
-
-
-class IActivity(interface.Interface):
-
- def do():
- """Do something.
- """
-
-
-class DayTimeActivity(grok.MultiSubscription):
- grok.provides(IActivity)
- grok.adapts(Cave, Mammoth)
- grok.baseclass()
-
- def __init__(self, where, who):
- self.where = where
- self.who = who
-
- def do(self):
- print 'Doing nothing.'
-
-
-class Cleaning(DayTimeActivity):
- grok.order(99)
-
- def do(self):
- print '%s is cleaning the %s.' % (self.who.name, self.where.name)
-
-
-class Cooking(DayTimeActivity):
- grok.order(10)
-
- def do(self):
- print '%s is cooking in %s!' % (self.who.name, self.where.name)
-
-
-class Gardening(DayTimeActivity):
- grok.order(15)
-
- def do(self):
- print '%s is growing pumpkins in %s!' % (self.who.name, self.where.name)
Copied: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py (from rev 120304, grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscribers.py)
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py (rev 0)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_multisubscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -0,0 +1,97 @@
+"""
+ >>> grok.testing.grok(__name__)
+
+ >>> cave = Cave('Tilburg cave')
+ >>> martijn = Mammoth('Martijn')
+
+ You can query a subscribers using multiple components and sort them
+ using `grok.order` information:
+
+ >>> ordered_subscribers = 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 ...>]
+
+ >>> _ = map(lambda a: a.do(), ordered_subscribers)
+ 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(
+ ... (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 ...>]
+
+ >>> _ = map(lambda a: a.do(), subscribers)
+ Martijn is cleaning the Tilburg cave.
+ Martijn is cooking in Tilburg cave!
+ Martijn is growing pumpkins in Tilburg cave!
+
+
+"""
+
+import grokcore.component as grok
+from zope import interface
+
+
+class Cave(grok.Context):
+
+ def __init__(self, name):
+ self.name = name
+
+
+class Mammoth(grok.Context):
+
+ def __init__(self, name):
+ self.name = name
+
+
+class IActivity(interface.Interface):
+
+ def do():
+ """Do something.
+ """
+
+
+class DayTimeActivity(grok.MultiSubscription):
+ grok.provides(IActivity)
+ grok.adapts(Cave, Mammoth)
+ grok.baseclass()
+
+ def __init__(self, where, who):
+ self.where = where
+ self.who = who
+
+ def do(self):
+ print 'Doing nothing.'
+
+
+class Cleaning(DayTimeActivity):
+ grok.order(99)
+
+ def do(self):
+ print '%s is cleaning the %s.' % (self.who.name, self.where.name)
+
+
+class Cooking(DayTimeActivity):
+ grok.order(10)
+
+ def do(self):
+ print '%s is cooking in %s!' % (self.who.name, self.where.name)
+
+
+class Gardening(DayTimeActivity):
+ grok.order(15)
+
+ def do(self):
+ print '%s is growing pumpkins in %s!' % (self.who.name, self.where.name)
Deleted: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscribers.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscribers.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscribers.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -1,71 +0,0 @@
-"""
- >>> grok.testing.grok(__name__)
-
- >>> cave = Cave()
-
- You can query the subscribers 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 ...>]
-
- >>> _ = map(lambda s: s.work(), ordered_subscribers)
- 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 ...>]
-
- >>> _ = map(lambda s: s.work(), subscribers)
- Monday cleaning!
- Saturday cleaning!
- Wednesday cleaning!
-
-"""
-
-import grokcore.component as grok
-from zope import interface
-
-
-class Cave(grok.Context):
- pass
-
-
-class ICleaner(interface.Interface):
-
- def work():
- """Clean that cave.
- """
-
-class MondayCleaner(grok.Subscription):
- grok.implements(ICleaner)
- grok.order(1)
-
- def work(self):
- print 'Monday cleaning!'
-
-
-class WednesdayCleaner(grok.Subscription):
- grok.implements(ICleaner)
- grok.order(3)
-
- def work(self):
- print 'Wednesday cleaning!'
-
-
-class SaturdayCleaner(grok.Subscription):
- grok.implements(ICleaner)
- grok.order(6)
-
- def work(self):
- print 'Saturday cleaning!'
-
Copied: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py (from rev 120304, grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscribers.py)
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py (rev 0)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/ordered_subscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -0,0 +1,71 @@
+"""
+ >>> grok.testing.grok(__name__)
+
+ >>> cave = Cave()
+
+ You can query the subscribers 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 ...>]
+
+ >>> _ = map(lambda s: s.work(), ordered_subscribers)
+ 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 ...>]
+
+ >>> _ = map(lambda s: s.work(), subscribers)
+ Monday cleaning!
+ Saturday cleaning!
+ Wednesday cleaning!
+
+"""
+
+import grokcore.component as grok
+from zope import interface
+
+
+class Cave(grok.Context):
+ pass
+
+
+class ICleaner(interface.Interface):
+
+ def work():
+ """Clean that cave.
+ """
+
+class MondayCleaner(grok.Subscription):
+ grok.implements(ICleaner)
+ grok.order(1)
+
+ def work(self):
+ print 'Monday cleaning!'
+
+
+class WednesdayCleaner(grok.Subscription):
+ grok.implements(ICleaner)
+ grok.order(3)
+
+ def work(self):
+ print 'Wednesday cleaning!'
+
+
+class SaturdayCleaner(grok.Subscription):
+ grok.implements(ICleaner)
+ grok.order(6)
+
+ def work(self):
+ print 'Saturday cleaning!'
+
Deleted: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -1,58 +0,0 @@
-"""
- >>> grok.testing.grok(__name__)
-
- >>> 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 ...>]
-
- >>> _ = map(lambda s: s.work(), subscribers)
- Monday cleaning sweet home!
- Saturday cleaning sweet home!
- Wednesday cleaning sweet home!
-
- Subscription adapters are not registered as regular adapters:
-
- >>> component.queryAdapter(cave, ICleaner)
-
-"""
-
-import grokcore.component as grok
-from zope import interface, component
-
-
-class Cave(grok.Context):
-
- def __init__(self, name):
- self.name = name
-
-
-class ICleaner(interface.Interface):
-
- def work():
- """Clean that cave.
- """
-
-class MondayCleaner(grok.Subscription):
- grok.implements(ICleaner)
-
- def work(self):
- print 'Monday cleaning %s!' % self.context.name
-
-
-class WednesdayCleaner(grok.Subscription):
- grok.provides(ICleaner)
-
- def work(self):
- print 'Wednesday cleaning %s!' % self.context.name
-
-
-class SaturdayCleaner(grok.Subscription):
- grok.implements(ICleaner)
-
- def work(self):
- print 'Saturday cleaning %s!' % self.context.name
-
Deleted: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_context.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_context.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_context.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -1,20 +0,0 @@
-"""
- >>> grok.testing.grok(__name__)
- Traceback (most recent call last):
- ...
- GrokError: No module-level context for
- <class 'grokcore.component.tests.subscriber.subscribers_no_context.CaveProcessor'>,
- please use the 'context' directive.
-
-"""
-
-import grokcore.component as grok
-from zope import interface
-
-class ITask(interface.Interface):
-
- def finish():
- pass
-
-class CaveProcessor(grok.Subscription):
- grok.provides(ITask)
Deleted: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_interface.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_interface.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_interface.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -1,17 +0,0 @@
-"""
- >>> grok.testing.grok(__name__)
- Traceback (most recent call last):
- ...
- GrokError: <class 'grokcore.component.tests.subscriber.subscribers_no_interface.CaveProcessor'>
- must implement at least one interface (use grok.implements to specify).
-
-"""
-
-import grokcore.component as grok
-
-
-class Cave(grok.Context):
- pass
-
-class CaveProcessor(grok.Subscription):
- pass
Copied: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py (from rev 120304, grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers.py)
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py (rev 0)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -0,0 +1,58 @@
+"""
+ >>> grok.testing.grok(__name__)
+
+ >>> 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 ...>]
+
+ >>> _ = map(lambda s: s.work(), subscribers)
+ Monday cleaning sweet home!
+ Saturday cleaning sweet home!
+ Wednesday cleaning sweet home!
+
+ Subscription adapters are not registered as regular adapters:
+
+ >>> component.queryAdapter(cave, ICleaner)
+
+"""
+
+import grokcore.component as grok
+from zope import interface, component
+
+
+class Cave(grok.Context):
+
+ def __init__(self, name):
+ self.name = name
+
+
+class ICleaner(interface.Interface):
+
+ def work():
+ """Clean that cave.
+ """
+
+class MondayCleaner(grok.Subscription):
+ grok.implements(ICleaner)
+
+ def work(self):
+ print 'Monday cleaning %s!' % self.context.name
+
+
+class WednesdayCleaner(grok.Subscription):
+ grok.provides(ICleaner)
+
+ def work(self):
+ print 'Wednesday cleaning %s!' % self.context.name
+
+
+class SaturdayCleaner(grok.Subscription):
+ grok.implements(ICleaner)
+
+ def work(self):
+ print 'Saturday cleaning %s!' % self.context.name
+
Copied: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py (from rev 120304, grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_context.py)
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py (rev 0)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_context.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -0,0 +1,20 @@
+"""
+ >>> grok.testing.grok(__name__)
+ Traceback (most recent call last):
+ ...
+ GrokError: No module-level context for
+ <class 'grokcore.component.tests.subscriber.subscribers_no_context.CaveProcessor'>,
+ please use the 'context' directive.
+
+"""
+
+import grokcore.component as grok
+from zope import interface
+
+class ITask(interface.Interface):
+
+ def finish():
+ pass
+
+class CaveProcessor(grok.Subscription):
+ grok.provides(ITask)
Copied: grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py (from rev 120304, grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscribers_no_interface.py)
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py (rev 0)
+++ grokcore.component/trunk/src/grokcore/component/tests/subscriptions/subscriptions_no_interface.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -0,0 +1,17 @@
+"""
+ >>> grok.testing.grok(__name__)
+ Traceback (most recent call last):
+ ...
+ GrokError: <class 'grokcore.component.tests.subscriber.subscribers_no_interface.CaveProcessor'>
+ must implement at least one interface (use grok.implements to specify).
+
+"""
+
+import grokcore.component as grok
+
+
+class Cave(grok.Context):
+ pass
+
+class CaveProcessor(grok.Subscription):
+ pass
Modified: grokcore.component/trunk/src/grokcore/component/tests/test_grok.py
===================================================================
--- grokcore.component/trunk/src/grokcore/component/tests/test_grok.py 2011-02-14 07:41:52 UTC (rev 120304)
+++ grokcore.component/trunk/src/grokcore/component/tests/test_grok.py 2011-02-14 07:43:17 UTC (rev 120305)
@@ -48,7 +48,7 @@
def test_suite():
suite = unittest.TestSuite()
for name in ['adapter', 'directive', 'grokker', 'utility', 'view',
- 'event', 'inherit', 'order', 'subscriber']:
+ 'event', 'inherit', 'order', 'subscriptions']:
suite.addTest(suiteFromPackage(name))
api = doctest.DocFileSuite('api.txt')
More information about the checkins
mailing list