Пример #1
0
    def testReadData(self):
        """Tests the _ReadData function."""
        parser = dtfabric_parser.DtFabricBaseParser()

        file_object = io.BytesIO(
            b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00')

        parser._ReadData(file_object, 0, self._POINT3D_SIZE)

        # Test with missing file-like object.
        with self.assertRaises(ValueError):
            parser._ReadData(None, 0, self._POINT3D_SIZE)

        # Test with file-like object with insufficient data.
        file_object = io.BytesIO(
            b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00')

        with self.assertRaises(errors.ParseError):
            parser._ReadData(file_object, 0, self._POINT3D_SIZE)

        # Test with file-like object that raises an IOError.
        file_object = ErrorBytesIO(
            b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00')

        with self.assertRaises(errors.ParseError):
            parser._ReadData(file_object, 0, self._POINT3D_SIZE)
Пример #2
0
    def testFormatPackedIPv6Address(self):
        """Tests the _FormatPackedIPv6Address function."""
        parser = dtfabric_parser.DtFabricBaseParser()

        ip_address = parser._FormatPackedIPv6Address([
            0x20, 0x01, 0x0d, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
            0x00, 0x00, 0x42, 0x83, 0x29
        ])
        self.assertEqual(ip_address, '2001:0db8:0000:0000:0000:ff00:0042:8329')
Пример #3
0
    def testReadStructureFromFileObject(self):
        """Tests the _ReadStructureFromFileObject function."""
        parser = dtfabric_parser.DtFabricBaseParser()

        file_object = io.BytesIO(
            b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00')

        parser._ReadStructureFromFileObject(file_object, 0, self._POINT3D)

        file_object = io.BytesIO(
            b'\x03\x00\x00\x00'
            b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'
            b'\x04\x00\x00\x00\x05\x00\x00\x00\x06\x00\x00\x00'
            b'\x06\x00\x00\x00\x07\x00\x00\x00\x08\x00\x00\x00')

        parser._ReadStructureFromFileObject(file_object, 0, self._SHAPE3D)
Пример #4
0
    def testReadStructureFromByteStream(self):
        """Tests the _ReadStructureFromByteStream function."""
        parser = dtfabric_parser.DtFabricBaseParser()

        parser._ReadStructureFromByteStream(
            b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00', 0,
            self._POINT3D)

        # Test with missing byte stream.
        with self.assertRaises(ValueError):
            parser._ReadStructureFromByteStream(None, 0, self._POINT3D)

        # Test with missing data map type.
        with self.assertRaises(ValueError):
            parser._ReadStructureFromByteStream(
                b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00', 0, None)

        # Test with data type map that raises an dtfabric.MappingError.
        data_type_map = ErrorDataTypeMap(None)

        with self.assertRaises(errors.ParseError):
            parser._ReadStructureFromByteStream(
                b'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00', 0,
                data_type_map)
Пример #5
0
    def testFormatPackedIPv4Address(self):
        """Tests the _FormatPackedIPv4Address function."""
        parser = dtfabric_parser.DtFabricBaseParser()

        ip_address = parser._FormatPackedIPv4Address([0xc0, 0xa8, 0xcc, 0x62])
        self.assertEqual(ip_address, '192.168.204.98')