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)
 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)