Beispiel #1
0
    def test_dehydration_2d(self):
        coordinates = (.1, 0)
        p = CartesianPoint(coordinates)

        dehydrator = DataDehydrator()
        buffer = io.BytesIO()
        packer = Packer(buffer)
        packer.pack(dehydrator.dehydrate((p, ))[0])
        self.assertEqual(
            buffer.getvalue(),
            b"\xB3X" + b"\xC9" + struct.pack(">h", 7203) + b"".join(
                map(lambda c: b"\xC1" + struct.pack(">d", c), coordinates)))
    def test_dehydration_3d(self):
        coordinates = (1, -2, 3.1)
        p = WGS84Point(coordinates)

        dehydrator = DataDehydrator()
        buffer = io.BytesIO()
        packer = Packer(buffer)
        packer.pack(dehydrator.dehydrate((p, ))[0])
        self.assertEqual(
            buffer.getvalue(),
            b"\xB4Y" + b"\xC9" + struct.pack(">h", 4979) + b"".join(
                map(lambda c: b"\xC1" + struct.pack(">d", c), coordinates)))
Beispiel #3
0
    def test_dehydration(self):
        MyPoint = point_type("MyPoint", ["x", "y"], {2: 1234})
        coordinates = (.1, 0)
        p = MyPoint(coordinates)

        dehydrator = DataDehydrator()
        buffer = io.BytesIO()
        packer = Packer(buffer)
        packer.pack(dehydrator.dehydrate((p, ))[0])
        self.assertEqual(
            buffer.getvalue(),
            b"\xB3X" + b"\xC9" + struct.pack(">h", 1234) + b"".join(
                map(lambda c: b"\xC1" + struct.pack(">d", c), coordinates)))
 def assert_packable(cls, value, packed_value):
     stream_out = BytesIO()
     packer = Packer(stream_out)
     packer.pack(value)
     packed = stream_out.getvalue()
     try:
         assert packed == packed_value
     except AssertionError:
         raise AssertionError("Packed value %r is %r instead of expected %r" %
                              (value, packed, packed_value))
     unpacked = Unpacker(UnpackableBuffer(packed)).unpack()
     try:
         assert unpacked == value
     except AssertionError:
         raise AssertionError("Unpacked value %r is not equal to original %r" % (unpacked, value))
 def test_list_stream(self):
     packed_value = b"\xD7\x01\x02\x03\xDF"
     unpacked_value = [1, 2, 3]
     stream_out = BytesIO()
     packer = Packer(stream_out)
     packer.pack_list_stream_header()
     packer.pack(1)
     packer.pack(2)
     packer.pack(3)
     packer.pack_end_of_stream()
     packed = stream_out.getvalue()
     try:
         assert packed == packed_value
     except AssertionError:
         raise AssertionError("Packed value is %r instead of expected %r" %
                              (packed, packed_value))
     unpacked = Unpacker(UnpackableBuffer(packed)).unpack()
     try:
         assert unpacked == unpacked_value
     except AssertionError:
         raise AssertionError("Unpacked value %r is not equal to expected %r" %
                              (unpacked, unpacked_value))
 def test_map_stream(self):
     packed_value = b"\xDB\x81A\x01\x81B\x02\xDF"
     unpacked_value = {u"A": 1, u"B": 2}
     stream_out = BytesIO()
     packer = Packer(stream_out)
     packer.pack_map_stream_header()
     packer.pack(u"A")
     packer.pack(1)
     packer.pack(u"B")
     packer.pack(2)
     packer.pack_end_of_stream()
     packed = stream_out.getvalue()
     try:
         assert packed == packed_value
     except AssertionError:
         raise AssertionError("Packed value is %r instead of expected %r" %
                              (packed, packed_value))
     unpacked = Unpacker(UnpackableBuffer(packed)).unpack()
     try:
         assert unpacked == unpacked_value
     except AssertionError:
         raise AssertionError("Unpacked value %r is not equal to expected %r" %
                              (unpacked, unpacked_value))
 def packb(cls, *values):
     stream = BytesIO()
     packer = Packer(stream)
     for value in values:
         packer.pack(value)
     return stream.getvalue()
 def encode_message(cls, tag, *fields):
     b = BytesIO()
     packer = Packer(b)
     for field in fields:
         packer.pack(field)
     return bytearray([0xB0 + len(fields), tag]) + b.getvalue()