1
- from unittest import TestCase , skip
1
+ from unittest import TestCase
2
2
from unittest .mock import Mock , patch
3
3
4
4
from tests .utils import wait_until
@@ -8,31 +8,34 @@ class PTDMSubscribeClientTestCase(TestCase):
8
8
def setUp (self ):
9
9
self .zmq_patch = patch ("pitop.common.ptdm.zmq" )
10
10
self .zmq_mock = self .zmq_patch .start ()
11
+ self .poller_mock = Mock ()
11
12
self .context_mock = Mock ()
12
13
self .socket_mock = Mock ()
13
14
14
15
self .socket_mock .recv_string .return_value = ""
15
16
self .context_mock .socket .return_value = self .socket_mock
16
17
self .zmq_mock .Context .return_value = self .context_mock
18
+ self .zmq_mock .Poller .return_value = self .poller_mock
19
+ self .poller_mock .poll .return_value = []
17
20
self .addCleanup (self .zmq_patch .stop )
18
21
19
- @skip
20
22
def test_callback_called_when_message_is_published (self ):
21
23
from pitop .common .ptdm import Message , PTDMSubscribeClient
22
24
25
+ self .poller_mock .poll .return_value = [1 ]
23
26
self .socket_mock .recv_string .return_value = f"{ Message .PUB_LOW_BATTERY_WARNING } "
24
27
25
- callback = Mock ()
28
+ def callback ():
29
+ callback .counter += 1
26
30
27
- client = PTDMSubscribeClient ()
28
- client .initialise (
29
- {
30
- Message .PUB_LOW_BATTERY_WARNING : callback ,
31
- }
32
- )
31
+ callback .counter = 0
33
32
33
+ client = PTDMSubscribeClient ()
34
+ client .initialise ({Message .PUB_LOW_BATTERY_WARNING : callback })
34
35
client .start_listening ()
35
- wait_until (lambda : callback .call_count == 1 , timeout = 3 )
36
+
37
+ wait_until (lambda : callback .counter > 0 , timeout = 3 )
38
+
36
39
client .stop_listening ()
37
40
38
41
def test_callback_not_included_if_has_wrong_signature (self ):
0 commit comments