def test_raise_exception_invalid_payload_type(self): with self.assertRaises(EXP.RCException) as exp: RCMPFrame.encode(1234) self.assertEqual(ERR.ERROR, exp.exception.errno) self.assertTrue('invalid payload type: ' in exp.exception.errmsg) with self.assertRaises(EXP.RCException) as exp: RCMPFrame.encode(PAYLOAD) self.assertEqual(ERR.ERROR, exp.exception.errno) self.assertTrue('invalid payload type: ' in exp.exception.errmsg)
def test_raise_exception_payload_too_large(self): large_payload = 'a' * (0x10000 - CONST.RCMP_FRAMEHEADSIZE) frame = RCMPFrame.encode(large_payload) self.assertIsNotNone(frame) large_payload += 'a' with self.assertRaises(EXP.RCException) as exp: RCMPFrame.encode(large_payload) self.assertEqual(ERR.ERROR_INVALID, exp.exception.errno) self.assertEqual('payload too large', exp.exception.errmsg)
def test_encode_and_parse(self): frame = RCMPFrame.encode(PAYLOAD_STR) payload_str, frame_length = RCMPFrame.parse(frame) payloadObj = json.loads(payload_str) self.assertEqual(CONST.RCMP_FRAMEHEADSIZE + len(PAYLOAD_STR), frame_length) self.assertEqual(ordered(PAYLOAD), ordered(payloadObj))
def test_encode_no_payload_bytes(self): frame = RCMPFrame.encode(None) self.assertEqual(frame, FRAME_NO_PAYLOAD)
def test_encode_bytes(self): frame = RCMPFrame.encode(PAYLOAD_BYTES) self.assertEqual(frame, FRAME)
def test_encode(self): frame = RCMPFrame.encode(PAYLOAD_STR) self.assertEqual(frame, FRAME)
def test_encode_and_parse_no_payload(self): frame = RCMPFrame.encode(None) payload_str, frame_length = RCMPFrame.parse(frame) self.assertEqual(CONST.RCMP_FRAMEHEADSIZE, frame_length) self.assertEqual(None, payload_str)