def test_2write_n_read(self): _SECOND_CONTENT = 'another\ninput' with AIOContext(1) as ctx, open(self._TEST_FILE_NAME, 'w+') as fp: write_block1 = WriteBlock(fp, self._content) write_block2 = WriteBlock(fp, _SECOND_CONTENT) submit_ret = ctx.submit(write_block1, write_block2) self.assertEqual(2, submit_ret) events = ctx.get_events(2, 2) self.assertEqual(2, len(events)) event = events[0] self.assertEqual(self._content.encode(), event.buffer) self.assertEqual(write_block1, event.aio_block) self.assertEqual(len(self._content), event.response) self.assertEqual(0, event.response2) read_block = ReadBlock(fp, bytearray(64)) submit_ret = ctx.submit(read_block) self.assertEqual(1, submit_ret) events = ctx.get_events(1, 1) self.assertEqual(1, len(events)) event = events[0] self.assertEqual(_SECOND_CONTENT.encode(), event.buffer.rstrip(b'\0')) self.assertEqual(_SECOND_CONTENT.encode(), event.stripped_buffer()) self.assertEqual(read_block, event.aio_block) self.assertEqual(len(_SECOND_CONTENT), event.response) self.assertEqual(0, event.response2)
def test_conversion_err_write_2_writev(self): with self.assertRaises(ValueError): with open('test.txt', 'a') as fp, AIOContext(1) as ctx: block = WriteBlock(fp, bytes()) submit_ret = ctx.submit(block) self.assertEqual(1, submit_ret) get_event_ret = ctx.get_events(1, 1) self.assertEqual(1, len(get_event_ret)) self.assertEqual(block, get_event_ret[0].aio_block) block.change_cmd(IOCBCMD.PWRITEV) ctx.submit(block)
def test_write_n_read(self): with AIOContext(1) as ctx, open(self._TEST_FILE_NAME, 'w+') as fp: write_block = WriteBlock(fp, self._content) submit_ret = ctx.submit(write_block) self.assertEqual(1, submit_ret) events = ctx.get_events(1, 1) self.assertEqual(1, len(events)) event = events[0] self.assertEqual(self._content.encode(), event.buffer) self.assertEqual(write_block, event.aio_block) self.assertEqual(len(self._content), event.response) self.assertEqual(0, event.response2) read_block = ReadBlock(fp, bytearray(64)) submit_ret = ctx.submit(read_block) self.assertEqual(1, submit_ret) events = ctx.get_events(1, 1) self.assertEqual(1, len(events)) event = events[0] self.assertEqual(self._content.encode(), event.buffer.rstrip(b'\0')) self.assertEqual(self._content.encode(), event.stripped_buffer()) self.assertEqual(read_block, event.aio_block) self.assertEqual(len(self._content), event.response) self.assertEqual(0, event.response2)
def test_convert_to_same_type(self): with open('test.txt', 'a') as fp, AIOContext(1) as ctx: block = WriteBlock(fp, bytes()) submit_ret = ctx.submit(block) self.assertEqual(1, submit_ret) get_event_ret = ctx.get_events(1, 1) self.assertEqual(1, len(get_event_ret)) self.assertEqual(block, get_event_ret[0].aio_block) block.change_cmd(IOCBCMD.PWRITE) self.assertEqual(fp.fileno(), block.fileno) self.assertEqual(fp, block.file) submit_ret = ctx.submit(block) self.assertEqual(1, submit_ret) get_event_ret = ctx.get_events(1, 1) self.assertEqual(1, len(get_event_ret)) self.assertEqual(block, get_event_ret[0].aio_block)
def test_01_write_bytes(self): with AIOContext(1) as ctx, open(self._TEST_FILE_NAME, 'w') as fp: block = WriteBlock(fp, self._content.encode()) submit_ret = ctx.submit(block) self.assertEqual(1, submit_ret) events = ctx.get_events(1, 1) self.assertEqual(1, len(events)) event = events[0] self.assertEqual(self._content.encode(), event.buffer) self.assertEqual(block, event.aio_block) self.assertEqual(len(self._content), event.response) self.assertEqual(0, event.response2)