@@ -54,13 +54,15 @@ class TestPubSubSubscribeUnsubscribe(object):
54
54
55
55
def _test_subscribe_unsubscribe (self , p , sub_type , unsub_type , sub_func ,
56
56
unsub_func , keys ):
57
- assert sub_func (* keys ) is None
57
+ assert sub_func (keys [0 ]) is None
58
+ assert sub_func (keys [1 ]) is None
58
59
59
60
# should be 2 messages indicating that we've subscribed
60
61
assert wait_for_message (p ) == make_message (sub_type , keys [0 ], 1 )
61
62
assert wait_for_message (p ) == make_message (sub_type , keys [1 ], 2 )
62
63
63
- assert unsub_func (* keys ) is None
64
+ assert unsub_func (keys [0 ]) is None
65
+ assert unsub_func (keys [1 ]) is None
64
66
65
67
# should be 2 messages indicating that we've unsubscribed
66
68
assert wait_for_message (p ) == make_message (unsub_type , keys [0 ], 1 )
@@ -76,19 +78,28 @@ def test_pattern_subscribe_unsubscribe(self, r):
76
78
77
79
def _test_resubscribe_on_reconnection (self , p , sub_type , unsub_type ,
78
80
sub_func , unsub_func , keys ):
79
- assert sub_func (* keys ) is None
81
+ assert sub_func (keys [0 ]) is None
82
+ assert sub_func (keys [1 ]) is None
80
83
81
- for i , key in enumerate ( keys ):
82
- i += 1 # enumerate is 0 index, but we want 1 based indexing
83
- assert wait_for_message (p ) == make_message (sub_type , key , i )
84
+ # should be 2 messages indicating that we've subscribed
85
+ assert wait_for_message ( p ) == make_message ( sub_type , keys [ 0 ], 1 )
86
+ assert wait_for_message (p ) == make_message (sub_type , keys [ 1 ], 2 )
84
87
85
88
# manually disconnect
86
89
p .connection .disconnect ()
87
90
88
91
# calling get_message again reconnects and resubscribes
89
- for i , key in enumerate (keys ):
90
- i += 1 # enumerate is 0 index, but we want 1 based indexing
91
- assert wait_for_message (p ) == make_message (sub_type , key , i )
92
+ # note, we may not re-subscribe to channels in exactly the same order
93
+ message1 = wait_for_message (p )
94
+ message2 = wait_for_message (p )
95
+
96
+ assert message1 ['type' ] == sub_type
97
+ assert message1 ['channel' ] in keys
98
+ assert message1 ['data' ] == 1
99
+ assert message2 ['type' ] == sub_type
100
+ assert message2 ['channel' ] in keys
101
+ assert message2 ['data' ] == 2
102
+ assert message1 ['channel' ] != message2 ['channel' ]
92
103
93
104
def test_resubscribe_to_channels_on_reconnection (self , r ):
94
105
kwargs = make_subscribe_test_data (r .pubsub (), 'channel' )
0 commit comments