Skip to content

Commit 21ec095

Browse files
author
fkromer
committed
add: first tests for publish_subscribe.py
1 parent 5895145 commit 21ec095

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

test_publish_subscribe.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
4+
from sys import version_info
5+
from publish_subscribe import Provider, Publisher, Subscriber
6+
7+
if version_info < (2, 7):
8+
import unittest2 as unittest
9+
10+
else:
11+
import unittest
12+
13+
class TestProvider(unittest.TestCase):
14+
"""
15+
Integration tests ~ provider class with as little mocking as possible.
16+
"""
17+
def test_subscriber_shall_be_attachable(cls):
18+
pro = Provider()
19+
cls.assertEqual(len(pro.subscribers), 0)
20+
sub = Subscriber('sub name', pro)
21+
sub.subscribe('sub msg')
22+
cls.assertEqual(len(pro.subscribers), 1)
23+
24+
# def test_subscriber_shall_be_detachable(cls):
25+
# pro = Provider()
26+
# sub = Subscriber('sub name', pro)
27+
# sub.subscribe('sub msg')
28+
# cls.assertEqual(len(pro.subscribers), 1)
29+
# pro.unsubscribe('sub msg', sub)
30+
# cls.assertEqual(len(pro.subscribers), 0)
31+
32+
def test_publisher_shall_append_message(cls):
33+
''' msg_queue ~ Provider.notify(msg) ~ Publisher.publish(msg) '''
34+
expected_msg = 'expected msg'
35+
pro = Provider()
36+
pub = Publisher(pro)
37+
sub = Subscriber('sub name', pro)
38+
cls.assertEqual(len(pro.msg_queue), 0)
39+
pub.publish(expected_msg)
40+
cls.assertEqual(len(pro.msg_queue), 1)
41+
cls.assertEqual(pro.msg_queue[0], expected_msg)
42+
43+
if __name__ == "__main__":
44+
unittest.main()
45+

0 commit comments

Comments
 (0)