def test_per_writeLength(self): """ @summary: test writeLength function in per module """ l1 = per.writeLength(0x1a) self.assertTrue(isinstance(l1, type.UInt8), "bad write length type in small case") l2 = per.writeLength(0x7f) self.assertTrue(isinstance(l2, type.UInt8), "bad write length type in small case limit") l3 = per.writeLength(0x80) self.assertTrue(isinstance(l3, type.UInt16Be), "bad write length type in large case limit") l4 = per.writeLength(0xab) self.assertTrue(isinstance(l4, type.UInt16Be), "bad write length type in large case")
def test_per_readInteger(self): """ @summary: test readInteger function in per module """ for t in [type.UInt8, type.UInt16Be, type.UInt32Be]: v = t(3) s = type.Stream() s.writeType((per.writeLength(type.sizeof(v)), v)) s.pos = 0 self.assertTrue(per.readInteger(s) == 3, "invalid readLength for type %s"%t) #error case for l in [0, 3, 5]: s = type.Stream() s.writeType(per.writeLength(l)) s.pos = 0 self.assertRaises(error.InvalidValue, per.readInteger, s)
def test_per_readInteger(self): """ @summary: test readInteger function in per module """ for t in [type.UInt8, type.UInt16Be, type.UInt32Be]: v = t(3) s = type.Stream() s.writeType((per.writeLength(type.sizeof(v)), v)) s.pos = 0 self.assertTrue( per.readInteger(s) == 3, "invalid readLength for type %s" % t) #error case for l in [0, 3, 5]: s = type.Stream() s.writeType(per.writeLength(l)) s.pos = 0 self.assertRaises(error.InvalidValue, per.readInteger, s)
def send(self, channelId, data): """ @summary: Specific send function for channelId @param channelId: {integer} Channel use to send @param data: {type.type | tuple} message to send """ self._transport.send((self.writeMCSPDUHeader(UInt8(self._sendOpcode)), per.writeInteger16(self._userId, Channel.MCS_USERCHANNEL_BASE), per.writeInteger16(channelId), UInt8(0x70), per.writeLength(sizeof(data)), data))