Checks / tests (ubuntu-latest, 3.11) (push) Canceled after 0s
Checks / tests (ubuntu-latest, 3.14) (push) Canceled after 0s
Checks / tests (windows-latest, 3.11) (push) Canceled after 0s
Checks / tests (windows-latest, 3.14) (push) Canceled after 0s
Checks / package (push) Canceled after 0s
35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
"""Exercise the session interface without a thread or transport."""
|
|
|
|
import unittest
|
|
|
|
from controller.session import Session
|
|
|
|
INFO = bytes.fromhex("00 bb 01 1d 00 0b 02 10 01 34 30 04 01 02 04 05 01 b0")
|
|
|
|
|
|
class SessionTests(unittest.TestCase):
|
|
def test_captured_handshake_with_split_reply(self):
|
|
session = Session()
|
|
self.assertEqual(session.start(), bytes.fromhex("00 bb 01 01 00 01 01 04"))
|
|
self.assertFalse(session.receive(INFO[:9]).outgoing)
|
|
update = session.receive(INFO[9:])
|
|
self.assertEqual(update.outgoing, (bytes.fromhex("00 bb 01 02 00 01 04 08"),))
|
|
self.assertFalse(session.ready)
|
|
update = session.receive(bytes.fromhex("00 bb 00 02 00 00 02"))
|
|
self.assertTrue(update.became_ready)
|
|
self.assertTrue(session.ready)
|
|
self.assertFalse(session.receive(bytes.fromhex("00 bb 00 02 00 00 02")).became_ready)
|
|
|
|
def test_notification_sequence_cannot_complete_handshake(self):
|
|
session = Session()
|
|
session.start()
|
|
session.receive(INFO)
|
|
session.receive(bytes.fromhex("00 bb 01 02 00 02 31 01 36"))
|
|
self.assertFalse(session.ready)
|
|
|
|
def test_repeated_info_does_not_repeat_link_complete(self):
|
|
session = Session()
|
|
session.start()
|
|
self.assertEqual(len(session.receive(INFO).outgoing), 1)
|
|
self.assertEqual(session.receive(INFO).outgoing, ())
|