Skip to content

Commit

Permalink
Test resume session.
Browse files Browse the repository at this point in the history
  • Loading branch information
eerimoq committed May 8, 2019
1 parent 672ac05 commit 6059379
Showing 1 changed file with 43 additions and 1 deletion.
44 changes: 43 additions & 1 deletion tests/test_mqttools.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,14 @@ def serve_client(self, client):

while self.EXPECTED_DATA_INDEX < len(self.EXPECTED_DATA_STREAM):
_, data = self.EXPECTED_DATA_STREAM[self.EXPECTED_DATA_INDEX]
self.EXPECTED_DATA_INDEX += 1

size = len(data)
data = client.recv(size)

if not data:
break

self.EXPECTED_DATA_INDEX += 1
# print(f'Broker: Received: {data}')
self.ACTUAL_DATA_STREAM.append(('c2s', data))

Expand Down Expand Up @@ -393,6 +397,44 @@ def test_receive_topic_alias(self):
self.assertEqual(message, b'published-with-alias')
self.run_until_complete(client.stop())

def test_resume_session(self):
Broker.EXPECTED_DATA_STREAM = [
# CONNECT with clean session 0 (to resume) and session
# expiry interval 120.
(
'c2s',
b'\x10\x15\x00\x04MQTT\x05\x00\x00\x00\x05\x11\x00\x00\x00\x78'
b'\x00\x03bar'
),
# CONNACK with no session present
('s2c', b'\x20\x03\x00\x00\x00'),
# DISCONNECT
('c2s', b'\xe0\x02\x00\x00'),
# CONNECT with clean session 0 (to resume) and session
# expiry interval 120.
(
'c2s',
b'\x10\x15\x00\x04MQTT\x05\x00\x00\x00\x05\x11\x00\x00\x00\x78'
b'\x00\x03bar'
),
# CONNACK with session present
('s2c', b'\x20\x03\x01\x00\x00'),
# DISCONNECT
('c2s', b'\xe0\x02\x00\x00')
]

client = mqttools.Client(*self.broker.address,
'bar',
session_expiry_interval=120)

with self.assertRaises(mqttools.SessionResumeError):
self.run_until_complete(client.start(resume_session=True))

self.run_until_complete(client.stop())
self.broker.wait_for_client_closed()
self.run_until_complete(client.start(resume_session=True))
self.run_until_complete(client.stop())


logging.basicConfig(level=logging.DEBUG)

Expand Down

0 comments on commit 6059379

Please sign in to comment.