Example #1
0
 def test_nonempty_multiple_items_before_add(self):
     latch = mitogen.core.Latch()
     latch.put(123)
     latch.put(234)
     select = self.klass([latch], oneshot=False)
     self.assertEquals(123, select.get())
     self.assertEquals(234, select.get())
     self.assertRaises(mitogen.core.TimeoutError,
         lambda: select.get(block=False))
Example #2
0
 def test_nonempty_multiple_items_before_add(self):
     recv = mitogen.core.Receiver(self.router)
     recv._on_receive(mitogen.core.Message.pickled('123'))
     recv._on_receive(mitogen.core.Message.pickled('234'))
     select = self.klass([recv], oneshot=False)
     msg = select.get()
     self.assertEquals('123', msg.unpickle())
     msg = select.get()
     self.assertEquals('234', msg.unpickle())
     self.assertRaises(mitogen.core.TimeoutError,
         lambda: select.get(block=False))
Example #3
0
 def test_true_latch_removed_after_get(self):
     latch = mitogen.core.Latch()
     select = self.klass([latch])
     latch.put(123)
     self.assertEquals(123, select.get())
     self.assertEquals(0, len(select._receivers))
     self.assertEquals(None, latch.notify)
Example #4
0
 def test_drained_by_other_thread(self):
     latch = mitogen.core.Latch()
     latch.put(123)
     select = self.klass([latch])
     self.assertEquals(123, latch.get())
     self.assertRaises(mitogen.core.TimeoutError,
         lambda: select.get(timeout=0.0))
Example #5
0
 def test_drained_by_other_thread(self):
     recv = mitogen.core.Receiver(self.router)
     recv._on_receive(mitogen.core.Message.pickled('123'))
     select = self.klass([recv])
     msg = recv.get()
     self.assertEquals('123', msg.unpickle())
     self.assertRaises(mitogen.core.TimeoutError,
         lambda: select.get(timeout=0.0))
Example #6
0
 def test_drained_by_other_thread(self):
     recv = mitogen.core.Receiver(self.router)
     recv._on_receive(mitogen.core.Message.pickled('123'))
     select = self.klass([recv])
     msg = recv.get()
     self.assertEquals('123', msg.unpickle())
     self.assertRaises(mitogen.core.TimeoutError,
                       lambda: select.get(timeout=0.0))
Example #7
0
 def test_true_removed_after_get(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     msg = mitogen.core.Message.pickled('123')
     recv._on_receive(msg)
     msg_ = select.get()
     self.assertEquals(msg, msg_)
     self.assertEquals(0, len(select._receivers))
     self.assertEquals(None, recv.notify)
Example #8
0
 def test_true_removed_after_get(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     msg = mitogen.core.Message.pickled('123')
     recv._on_receive(msg)
     msg_ = select.get()
     self.assertEquals(msg, msg_)
     self.assertEquals(0, len(select._receivers))
     self.assertEquals(None, recv.notify)
Example #9
0
    def test_false_latch_persists_after_get(self):
        latch = mitogen.core.Latch()
        select = self.klass([latch], oneshot=False)
        latch.put(123)

        self.assertEquals(123, select.get())
        self.assertEquals(1, len(select._receivers))
        self.assertEquals(latch, select._receivers[0])
        self.assertEquals(select._put, latch.notify)
Example #10
0
    def test_false_persists_after_get(self):
        recv = mitogen.core.Receiver(self.router)
        select = self.klass([recv], oneshot=False)
        msg = mitogen.core.Message.pickled('123')
        recv._on_receive(msg)

        self.assertEquals(msg, select.get())
        self.assertEquals(1, len(select._receivers))
        self.assertEquals(recv, select._receivers[0])
        self.assertEquals(select._put, recv.notify)
Example #11
0
    def test_false_persists_after_get(self):
        recv = mitogen.core.Receiver(self.router)
        select = self.klass([recv], oneshot=False)
        msg = mitogen.core.Message.pickled('123')
        recv._on_receive(msg)

        self.assertEquals(msg, select.get())
        self.assertEquals(1, len(select._receivers))
        self.assertEquals(recv, select._receivers[0])
        self.assertEquals(select._put, recv.notify)
Example #12
0
    def test_receiver(self):
        recv = mitogen.core.Receiver(self.router)  # oneshot
        select = self.klass()
        self.assertFalse(select)
        select.add(recv)
        self.assertTrue(select)

        recv._on_receive(mitogen.core.Message.pickled('123'))
        self.assertTrue(select)
        self.assertEquals('123', select.get().unpickle())
        self.assertFalse(select)
Example #13
0
    def test_latch(self):
        latch = mitogen.core.Latch()  # oneshot
        select = self.klass()
        self.assertFalse(select)
        select.add(latch)
        self.assertTrue(select)

        latch.put(123)
        self.assertTrue(select)
        self.assertEquals(123, select.get())
        self.assertFalse(select)
Example #14
0
def master_main(painter, router, select, delay):
    """
    Loop until CTRL+C is pressed, waiting for the next result delivered by the
    Select. Use parse_output() to turn that result ('ps' command output) into
    rich data, and finally repaint the screen if the repaint delay has passed.
    """
    next_paint = 0
    while True:
        msg = select.get()
        parse_output(msg.receiver.host, msg.unpickle())
        if next_paint < time.time():
            next_paint = time.time() + delay
            painter.paint()
Example #15
0
 def test_nonempty_after_add(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     recv._on_receive(mitogen.core.Message.pickled('123'))
     msg = select.get()
     self.assertEquals('123', msg.unpickle())
Example #16
0
 def test_timeout(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     self.assertRaises(mitogen.core.TimeoutError,
                       lambda: select.get(timeout=0.1))
Example #17
0
 def test_timeout_no_receivers(self):
     select = self.klass()
     exc = self.assertRaises(mitogen.select.Error,
                             lambda: select.get(timeout=1.0))
     self.assertEquals(str(exc), self.klass.empty_msg)
Example #18
0
 def test_timeout_no_receivers(self):
     select = self.klass()
     exc = self.assertRaises(mitogen.select.Error,
         lambda: select.get(timeout=1.0))
     self.assertEquals(str(exc), self.klass.empty_msg)
Example #19
0
 def test_timeout(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     self.assertRaises(mitogen.core.TimeoutError,
         lambda: select.get(timeout=0.1))
Example #20
0
 def test_nonempty_before_add(self):
     latch = mitogen.core.Latch()
     latch.put(123)
     select = self.klass([latch])
     self.assertEquals(123, select.get())
Example #21
0
 def test_nonempty_after_add(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     recv._on_receive(mitogen.core.Message.pickled('123'))
     msg = select.get()
     self.assertEquals('123', msg.unpickle())
Example #22
0
 def test_nonempty_receiver_attr_set(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     recv._on_receive(mitogen.core.Message.pickled('123'))
     msg = select.get()
     self.assertEquals(msg.receiver, recv)
Example #23
0
 def test_nonempty_receiver_attr_set(self):
     recv = mitogen.core.Receiver(self.router)
     select = self.klass([recv])
     recv._on_receive(mitogen.core.Message.pickled('123'))
     msg = select.get()
     self.assertEquals(msg.receiver, recv)
Example #24
0
 def test_timeout(self):
     latch = mitogen.core.Latch()
     select = self.klass([latch])
     self.assertRaises(mitogen.core.TimeoutError,
         lambda: select.get(timeout=0.1))
Example #25
0
 def test_empty(self):
     select = self.klass()
     exc = self.assertRaises(mitogen.select.Error,
         lambda: select.get())
     self.assertEquals(str(exc), self.klass.empty_msg)