Skip to content

Commit 025f7cd

Browse files
committed
Doctest for publish_subscribe
1 parent 224d5a5 commit 025f7cd

File tree

1 file changed

+37
-35
lines changed

1 file changed

+37
-35
lines changed

patterns/behavioral/publish_subscribe.py

Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -50,41 +50,43 @@ def run(self, msg):
5050

5151

5252
def main():
53-
message_center = Provider()
54-
55-
fftv = Publisher(message_center)
56-
57-
jim = Subscriber("jim", message_center)
58-
jim.subscribe("cartoon")
59-
jack = Subscriber("jack", message_center)
60-
jack.subscribe("music")
61-
gee = Subscriber("gee", message_center)
62-
gee.subscribe("movie")
63-
vani = Subscriber("vani", message_center)
64-
vani.subscribe("movie")
65-
vani.unsubscribe("movie")
66-
67-
fftv.publish("cartoon")
68-
fftv.publish("music")
69-
fftv.publish("ads")
70-
fftv.publish("movie")
71-
fftv.publish("cartoon")
72-
fftv.publish("cartoon")
73-
fftv.publish("movie")
74-
fftv.publish("blank")
75-
76-
message_center.update()
53+
"""
54+
>>> message_center = Provider()
55+
56+
>>> fftv = Publisher(message_center)
57+
58+
>>> jim = Subscriber("jim", message_center)
59+
>>> jim.subscribe("cartoon")
60+
>>> jack = Subscriber("jack", message_center)
61+
>>> jack.subscribe("music")
62+
>>> gee = Subscriber("gee", message_center)
63+
>>> gee.subscribe("movie")
64+
>>> vani = Subscriber("vani", message_center)
65+
>>> vani.subscribe("movie")
66+
>>> vani.unsubscribe("movie")
67+
68+
# Note that no one subscirbed to `ads`
69+
# and that vani changed their mind
70+
71+
>>> fftv.publish("cartoon")
72+
>>> fftv.publish("music")
73+
>>> fftv.publish("ads")
74+
>>> fftv.publish("movie")
75+
>>> fftv.publish("cartoon")
76+
>>> fftv.publish("cartoon")
77+
>>> fftv.publish("movie")
78+
>>> fftv.publish("blank")
79+
80+
>>> message_center.update()
81+
jim got cartoon
82+
jack got music
83+
gee got movie
84+
jim got cartoon
85+
jim got cartoon
86+
gee got movie
87+
"""
7788

7889

7990
if __name__ == "__main__":
80-
main()
81-
82-
83-
OUTPUT = """
84-
jim got cartoon
85-
jack got music
86-
gee got movie
87-
jim got cartoon
88-
jim got cartoon
89-
gee got movie
90-
"""
91+
import doctest
92+
doctest.testmod()

0 commit comments

Comments
 (0)