def test_write_read(self): thing = Thing() p = Pipe() p.put(thing) read = p.reader.get() p.close() self.assertEqual(read, thing)
def test_multiple_write_read(self): things = [Thing(), Thing(), Thing()] p = Pipe() for t in things: p.put(t) read = [] for _ in things: read.append(p.reader.get()) p.close() self.assertEqual(read, things)
def test_multiple_write_read(self): things = [ Thing(), Thing(), Thing() ] p = Pipe() for t in things: p.put(t) read = [] for _ in things: read.append(p.reader.get()) p.close() self.assertEqual(read, things)
def __call__(self): """ Invoke the RMI as follows: - Fork - Start the monitor. - Read and dispatch reply messages. :return: Whatever method returned. """ pipe = Pipe() target = Target(self.method, *self.args, **self.kwargs) child = Process(target, pipe) monitor = Monitor(Context.current(), child) try: child.start() monitor.start() pipe.writer.close() retval = self.read(pipe.reader) return retval finally: pipe.close() monitor.stop() child.wait()
def test_eof(self): p = Pipe() p.writer.close() self.assertRaises(EOFError, p.reader.get) p.close()
def test_close(self, _open): _open.return_value = Mock(), Mock() p = Pipe() p.close() _open.return_value[0].close.assert_called_once_with() _open.return_value[1].close.assert_called_once_with()