def test_read_empty(self):
        buf_size = 20

        buf = AlignedBuffer(buf_size)

        expected = '\x00' * buf_size

        actual = buf.read()

        self.assertEqual(expected, actual)
    def test_write_read_with_size(self):
        buf_size = 20

        buf = AlignedBuffer(buf_size)

        expected = "Hello world!"
        buf.write(expected)

        actual = buf.read(size=5)

        self.assertEqual(expected[:5], actual)
    def test_write_read(self):
        buf_size = 20

        buf = AlignedBuffer(buf_size)

        expected = "Hello world!"
        buf.write(expected)

        actual = buf.read()

        # Without size read returns all contents, so expect nulls after data
        expected += '\x00' * (buf_size - len(expected))
        self.assertEqual(expected, actual[:len(expected)])
    def test_write_read_with_offset(self):
        buf_size = 20

        buf = AlignedBuffer(buf_size)

        expected = "Hello world!"
        buf.write(expected)

        offset = 6
        actual = buf.read(offset=offset)

        expected = expected[6:]
        expected += '\x00' * (buf_size - len(expected) - offset)
        self.assertEqual(expected, actual)
    def test_write_read_with_size_and_offset(self):
        buf_size = 20

        buf = AlignedBuffer(buf_size)

        expected = "Hello world!"
        buf.write(expected)

        offset = 6
        size = 5
        actual = buf.read(size=size, offset=offset)

        expected = expected[offset:offset + size]
        self.assertEqual(expected, actual)