Skip to content

Commit 082aa58

Browse files
Refactor tests
1 parent a4b5384 commit 082aa58

4 files changed

Lines changed: 54 additions & 62 deletions

File tree

tests/dishReceiverTest.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,34 +23,34 @@ def setUp(self):
2323

2424
def test_raises_error_when_restarted(self):
2525
# Given
26-
group_access = GROUP.hello()
26+
group = GROUP.hello()
2727
context = MagicMock(spec=Context)
2828

2929
with DishReceiver(context) as receiver:
30-
receiver.start(group_access)
30+
receiver.start(group)
3131

3232
# When, Then
3333
with self.assertRaises(RuntimeError):
34-
receiver.start(group_access)
34+
receiver.start(group)
3535

3636
def test_raises_error_when_fails_to_bind_socket(self):
3737
# Given
38-
group_access = GROUP.hello()
38+
group = GROUP.hello()
3939
context = MagicMock(spec=Context)
4040
context.socket.return_value.bind.side_effect = ZMQError(1, "Bind failed")
4141
receiver = DishReceiver(context)
4242

4343
# When, Then
4444
with self.assertRaises(ZMQError):
45-
receiver.start(group_access)
45+
receiver.start(group)
4646

4747
def test_closes_socket_on_exit(self):
4848
# Given
49-
group_access = GROUP.hello()
49+
group = GROUP.hello()
5050
context = MagicMock(spec=Context)
5151

5252
with DishReceiver(context) as receiver:
53-
receiver.start(group_access)
53+
receiver.start(group)
5454

5555
# When
5656

@@ -59,10 +59,10 @@ def test_closes_socket_on_exit(self):
5959

6060
def test_closes_socket_when_stopped(self):
6161
# Given
62-
group_access = GROUP.hello()
62+
group = GROUP.hello()
6363
context = MagicMock(spec=Context)
6464
receiver = DishReceiver(context)
65-
receiver.start(group_access)
65+
receiver.start(group)
6666

6767
# When
6868
receiver.stop()
@@ -72,12 +72,12 @@ def test_closes_socket_when_stopped(self):
7272

7373
def test_raises_error_when_fails_to_close_socket_on_stop(self):
7474
# Given
75-
group_access = GROUP.hello()
75+
group = GROUP.hello()
7676
context = MagicMock(spec=Context)
7777
context.socket.return_value.close.side_effect = [ZMQError(1, "Close failed"), None]
7878

7979
with DishReceiver(context) as receiver:
80-
receiver.start(group_access)
80+
receiver.start(group)
8181

8282
# When, Then
8383
with self.assertRaises(ZMQError):
@@ -110,7 +110,7 @@ def test_deregisters_handler(self):
110110

111111
def test_calls_registered_handler_on_message(self):
112112
# Given
113-
group_access = GROUP.hello()
113+
group = GROUP.hello()
114114
context = MagicMock(spec=Context)
115115
context.socket.return_value.recv_json.return_value = SERVICE_INFO.__dict__
116116
handler = MagicMock(spec=OnMessage)
@@ -123,14 +123,14 @@ def test_calls_registered_handler_on_message(self):
123123
receiver.register(handler)
124124

125125
# When
126-
receiver.start(group_access)
126+
receiver.start(group)
127127

128128
# Then
129129
wait_for_assertion(0.1, lambda: handler.assert_called_once_with(SERVICE_INFO.__dict__))
130130

131131
def test_handles_message_receive_error_gracefully(self):
132132
# Given
133-
group_access = GROUP.hello()
133+
group = GROUP.hello()
134134
context = MagicMock(spec=Context)
135135
context.socket.return_value.recv_json.side_effect = ZMQError(1, "Receive failed")
136136
handler = MagicMock(spec=OnMessage)
@@ -143,14 +143,14 @@ def test_handles_message_receive_error_gracefully(self):
143143
receiver.register(handler)
144144

145145
# When
146-
receiver.start(group_access)
146+
receiver.start(group)
147147

148148
# Then
149149
handler.assert_not_called()
150150

151151
def test_handles_handler_execution_error_gracefully(self):
152152
# Given
153-
group_access = GROUP.hello()
153+
group = GROUP.hello()
154154
context = MagicMock(spec=Context)
155155
context.socket.return_value.recv_json.return_value = SERVICE_INFO.__dict__
156156
handler = MagicMock(spec=OnMessage)
@@ -164,7 +164,7 @@ def test_handles_handler_execution_error_gracefully(self):
164164
receiver.register(handler)
165165

166166
# When
167-
receiver.start(group_access)
167+
receiver.start(group)
168168

169169
# Then
170170
wait_for_assertion(0.1, lambda: handler.assert_called_once_with(SERVICE_INFO.__dict__))

tests/radioSenderTest.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,33 +23,33 @@ def setUp(self):
2323

2424
def test_raises_error_when_restarted(self):
2525
# Given
26-
group_access = GROUP.hello()
26+
group = GROUP.hello()
2727
context = MagicMock(spec=Context)
2828
sender = RadioSender(context)
29-
sender.start(group_access)
29+
sender.start(group)
3030

3131
# When, Then
3232
with self.assertRaises(RuntimeError):
33-
sender.start(group_access)
33+
sender.start(group)
3434

3535
def test_raises_error_when_fails_to_connect_socket(self):
3636
# Given
37-
group_access = GROUP.hello()
37+
group = GROUP.hello()
3838
context = MagicMock(spec=Context)
3939
context.socket.return_value.connect.side_effect = ZMQError(1, "Connect failed")
4040
sender = RadioSender(context)
4141

4242
# When, Then
4343
with self.assertRaises(ZMQError):
44-
sender.start(group_access)
44+
sender.start(group)
4545

4646
def test_closes_socket_on_exit(self):
4747
# Given
48-
group_access = GROUP.hello()
48+
group = GROUP.hello()
4949
context = MagicMock(spec=Context)
5050

5151
with RadioSender(context) as sender:
52-
sender.start(group_access)
52+
sender.start(group)
5353

5454
# When
5555

@@ -58,10 +58,10 @@ def test_closes_socket_on_exit(self):
5858

5959
def test_closes_socket_when_stopped(self):
6060
# Given
61-
group_access = GROUP.hello()
61+
group = GROUP.hello()
6262
context = MagicMock(spec=Context)
6363
sender = RadioSender(context)
64-
sender.start(group_access)
64+
sender.start(group)
6565

6666
# When
6767
sender.stop()
@@ -71,22 +71,22 @@ def test_closes_socket_when_stopped(self):
7171

7272
def test_raises_error_when_fails_to_close_socket_on_stop(self):
7373
# Given
74-
group_access = GROUP.hello()
74+
group = GROUP.hello()
7575
context = MagicMock(spec=Context)
7676
context.socket.return_value.close.side_effect = ZMQError(1, "Close failed")
7777
sender = RadioSender(context)
78-
sender.start(group_access)
78+
sender.start(group)
7979

8080
# When, Then
8181
with self.assertRaises(ZMQError):
8282
sender.stop()
8383

8484
def test_sends_message_when_convertible_to_dict(self):
8585
# Given
86-
group_access = GROUP.hello()
86+
group = GROUP.hello()
8787
context = MagicMock(spec=Context)
8888
sender = RadioSender(context)
89-
sender.start(group_access)
89+
sender.start(group)
9090

9191
# When
9292
sender.send(SERVICE_INFO)
@@ -96,10 +96,10 @@ def test_sends_message_when_convertible_to_dict(self):
9696

9797
def test_sends_message_when_type_is_dict(self):
9898
# Given
99-
group_access = GROUP.hello()
99+
group = GROUP.hello()
100100
context = MagicMock(spec=Context)
101101
sender = RadioSender(context)
102-
sender.start(group_access)
102+
sender.start(group)
103103

104104
# When
105105
sender.send(SERVICE_INFO.__dict__)
@@ -109,10 +109,10 @@ def test_sends_message_when_type_is_dict(self):
109109

110110
def test_does_not_send_message_when_not_serializable(self):
111111
# Given
112-
group_access = GROUP.hello()
112+
group = GROUP.hello()
113113
context = MagicMock(spec=Context)
114114
sender = RadioSender(context)
115-
sender.start(group_access)
115+
sender.start(group)
116116

117117
# When
118118
sender.send("not serializable message")
@@ -133,10 +133,10 @@ def test_does_not_send_message_when_not_started(self):
133133

134134
def test_handles_send_message_error_gracefully(self):
135135
# Given
136-
group_access = GROUP.hello()
136+
group = GROUP.hello()
137137
context = MagicMock(spec=Context)
138138
sender = RadioSender(context)
139-
sender.start(group_access)
139+
sender.start(group)
140140
context.socket.return_value.send_json.side_effect = ZMQError(1, "Send failed")
141141

142142
# When

tests/receiverIntegrationTest.py

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33

44
from context_logger import setup_logging
55
from test_utility import wait_for_assertion
6-
from zmq import Context
6+
from zmq import Context, RADIO
77

8-
from hello import ServiceInfo, Group, DishReceiver, RadioSender
8+
from hello import ServiceInfo, Group, DishReceiver
99

1010
GROUP = Group('test-group', 'udp://239.0.0.1:5555')
1111
SERVICE_INFO = ServiceInfo('test-service', 'test-role', {'test': 'http://localhost:8080'})
@@ -20,31 +20,20 @@ def setUpClass(cls):
2020
def setUp(self):
2121
print()
2222

23-
def test_raises_error_when_restarted(self):
24-
# Given
25-
group_access = GROUP.hello()
26-
context = Context()
27-
28-
with DishReceiver(context) as receiver:
29-
receiver.start(group_access)
30-
31-
# When, Then
32-
with self.assertRaises(RuntimeError):
33-
receiver.start(group_access)
34-
3523
def test_receives_message(self):
3624
# Given
37-
group_access = GROUP.hello()
25+
group = GROUP.hello()
3826
context = Context()
27+
radio = context.socket(RADIO)
28+
radio.connect(group.url)
3929
messages = []
4030

41-
with DishReceiver(context) as receiver, RadioSender(context) as test_sender:
31+
with DishReceiver(context) as receiver:
4232
receiver.register(lambda message: messages.append(message))
43-
receiver.start(group_access)
44-
test_sender.start(group_access)
33+
receiver.start(group)
4534

4635
# When
47-
test_sender.send(SERVICE_INFO)
36+
radio.send_json(SERVICE_INFO.__dict__, group=group.name)
4837

4938
wait_for_assertion(0.1, lambda: self.assertEqual(1, len(messages)))
5039

tests/senderIntegrationTest.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import unittest
2+
from threading import Thread
23
from unittest import TestCase
34

45
from context_logger import setup_logging
56
from test_utility import wait_for_assertion
6-
from zmq import Context
7+
from zmq import Context, DISH
78

8-
from hello import ServiceInfo, Group, DishReceiver
9+
from hello import ServiceInfo, Group
910
from hello.sender import RadioSender
1011

1112
GROUP = Group('test-group', 'udp://239.0.0.1:5555')
@@ -23,14 +24,16 @@ def setUp(self):
2324

2425
def test_sends_message(self):
2526
# Given
26-
group_access = GROUP.hello()
27+
group = GROUP.hello()
2728
context = Context()
29+
dish = context.socket(DISH)
30+
dish.bind(group.url)
31+
dish.join(group.name)
2832
messages = []
2933

30-
with RadioSender(context) as sender, DishReceiver(context) as test_receiver:
31-
test_receiver.register(lambda message: messages.append(message))
32-
test_receiver.start(group_access)
33-
sender.start(group_access)
34+
with RadioSender(context) as sender:
35+
sender.start(group)
36+
Thread(target=lambda: messages.append(dish.recv_json())).start()
3437

3538
# When
3639
sender.send(SERVICE_INFO)

0 commit comments

Comments
 (0)