class TestPingPongTask(unittest.TestCase): def setUp(self): self.paths_to_delete = [] # make size small so tracebacks get truncated path, size, offset = 'task_%s' % guid(), 36, 0 self.paths_to_delete.append(path) self.lock = IPCLock(is_slave=0) self.task = IbisTaskMessage(self.lock.semaphore_id, path, offset, size) self.mm = SharedMmap(path, size, create=True) wire.PackedMessageWriter(self.mm).string('ping') def tearDown(self): for path in self.paths_to_delete: try: os.remove(path) except os.error: pass def test_execute_task(self): _execute_task(self.task, self.lock) self.mm.seek(0) reader = wire.PackedMessageReader(self.mm) assert reader.uint8() assert reader.string() == 'pong'
def test_file_interface(self): path = guid() self.to_nuke.append(path) data = guid() mm = SharedMmap(path, len(data), create=True) assert mm.tell() == 0 mm.write(data) assert mm.tell() == len(data) mm.seek(0) assert mm.tell() == 0 result = mm.read(16) assert len(result) == 16 assert result == data[:16] assert mm.tell() == 16