def test_packing(self): """" Test if message is packed correctly into a binary string """ msg = self.get_foo_msg(x=2, y=4, direction='east') packed = pack_message(msg) self.assertEqual(len(packed), 1 + 1 + 4 + 4) self.assertEqual(packed[0:1], struct.pack('!B', 2)) # msg id self.assertEqual(packed[1:2], struct.pack('!B', 3)) # direction self.assertEqual(packed[2:6], struct.pack('!I', 2)) # x self.assertEqual(packed[6:10], struct.pack('!I', 4)) # y
def test_packing(self): """" Test if message is packed correctly into a binary string """ msg = self.get_foo_msg(x=2, y=4, direction="east") packed = pack_message(msg) self.assertEqual(len(packed), 1 + 1 + 4 + 4) self.assertEqual(packed[0:1], struct.pack("!B", 2)) # msg id self.assertEqual(packed[1:2], struct.pack("!B", 3)) # direction self.assertEqual(packed[2:6], struct.pack("!I", 2)) # x self.assertEqual(packed[6:10], struct.pack("!I", 4)) # y
def test_packing_with_string(self): """ Test if message containing an unicode string is correctly packed into a binary string """ msg = self.get_bar_msg(name=u"Mr ☃") string_length = len(bytes(u"Mr ☃", "utf-8")) packed = pack_message(msg) self.assertEqual(len(packed), 1 + 2 + 4 + string_length) self.assertEqual(packed[0:1], struct.pack("!B", 1)) # msg id self.assertEqual(packed[1:5], struct.pack("!I", string_length)) # length of the following string self.assertEqual( packed[5 : 5 + string_length], struct.pack("!{}s".format(string_length), bytes(u"Mr ☃", "utf-8")) ) self.assertEqual(packed[5 + string_length : 7 + string_length], struct.pack("!H", 42)) # score
def test_packing_with_string(self): """ Test if message containing an unicode string is correctly packed into a binary string """ msg = self.get_bar_msg(name=u'Mr ☃') string_length = len(bytes(u'Mr ☃', 'utf-8')) packed = pack_message(msg) self.assertEqual(len(packed), 1 + 2 + 4 + string_length) self.assertEqual(packed[0:1], struct.pack('!B', 1)) # msg id self.assertEqual(packed[1:5], struct.pack( '!I', string_length)) # length of the following string self.assertEqual( packed[5:5 + string_length], struct.pack('!{}s'.format(string_length), bytes(u'Mr ☃', 'utf-8'))) self.assertEqual(packed[5 + string_length:7 + string_length], struct.pack('!H', 42)) # score
def test_eating_own_dog_food(self): """ Test if message remaines the same after packing/unpacking cycle """ msg = self.get_foo_msg() packed = pack_message(msg) unpacked = unpack_message(packed, self.factory) self.assertEqual(msg, unpacked)