def testQueueFuture_ItemException(self):
   qf = tasklets.QueueFuture()
   qf.putq(1)
   f2 = Future()
   qf.putq(f2)
   f3 = Future()
   f3.set_result(3)
   self.ev.run()
   qf.putq(f3)
   self.ev.run()
   f4 = Future()
   f4.set_exception(ZeroDivisionError())
   self.ev.run()
   qf.putq(f4)
   f5 = Future()
   qf.putq(f5)
   self.ev.run()
   qf.complete()
   self.ev.run()
   f2.set_result(2)
   self.ev.run()
   f5.set_exception(KeyError())
   self.ev.run()
   # Futures are returned in the order of completion, which should be
   # f1, f3, f4, f2, f5.  These produce 1, 3, ZeroDivisionError, 2,
   # KeyError, respectively.  After that EOFError is raised.
   self.assertEqual(qf.getq().get_result(), 1)
   self.assertEqual(qf.getq().get_result(), 3)
   self.assertRaises(ZeroDivisionError, qf.getq().get_result)
   self.assertEqual(qf.getq().get_result(), 2)
   self.assertRaises(KeyError, qf.getq().get_result)
   self.assertRaises(EOFError, qf.getq().get_result)
   self.assertRaises(EOFError, qf.getq().get_result)
 def testQueueFuture_ItemException(self):
     qf = tasklets.QueueFuture()
     qf.putq(1)
     f2 = Future()
     qf.putq(f2)
     f3 = Future()
     f3.set_result(3)
     self.ev.run()
     qf.putq(f3)
     self.ev.run()
     f4 = Future()
     f4.set_exception(ZeroDivisionError())
     self.ev.run()
     qf.putq(f4)
     f5 = Future()
     qf.putq(f5)
     self.ev.run()
     qf.complete()
     self.ev.run()
     f2.set_result(2)
     self.ev.run()
     f5.set_exception(KeyError())
     self.ev.run()
     # Futures are returned in the order of completion, which should be
     # f1, f3, f4, f2, f5.  These produce 1, 3, ZeroDivisionError, 2,
     # KeyError, respectively.  After that EOFError is raised.
     self.assertEqual(qf.getq().get_result(), 1)
     self.assertEqual(qf.getq().get_result(), 3)
     self.assertRaises(ZeroDivisionError, qf.getq().get_result)
     self.assertEqual(qf.getq().get_result(), 2)
     self.assertRaises(KeyError, qf.getq().get_result)
     self.assertRaises(EOFError, qf.getq().get_result)
     self.assertRaises(EOFError, qf.getq().get_result)
 def testQueueFuture_SetException(self):
   qf = tasklets.QueueFuture()
   f1 = Future()
   f1.set_result(1)
   qf.putq(f1)
   qf.putq(f1)
   self.ev.run()
   qf.putq(2)
   self.ev.run()
   f3 = Future()
   f3.set_exception(ZeroDivisionError())
   qf.putq(f3)
   self.ev.run()
   f4 = Future()
   qf.putq(f4)
   self.ev.run()
   qf.set_exception(KeyError())
   f4.set_result(4)
   self.ev.run()
   self.assertRaises(KeyError, qf.get_result)
   # Futures are returned in the order of completion, which should be
   # f1, f2, f3, f4.  These produce 1, 2, ZeroDivisionError, 4,
   # respectively.  After that KeyError (the exception set on qf
   # itself) is raised.
   self.assertEqual(qf.getq().get_result(), 1)
   self.assertEqual(qf.getq().get_result(), 2)
   self.assertRaises(ZeroDivisionError, qf.getq().get_result)
   self.assertEqual(qf.getq().get_result(), 4)
   self.assertRaises(KeyError, qf.getq().get_result)
   self.assertRaises(KeyError, qf.getq().get_result)
 def testQueueFuture_SetException(self):
     qf = tasklets.QueueFuture()
     f1 = Future()
     f1.set_result(1)
     qf.putq(f1)
     qf.putq(f1)
     self.ev.run()
     qf.putq(2)
     self.ev.run()
     f3 = Future()
     f3.set_exception(ZeroDivisionError())
     qf.putq(f3)
     self.ev.run()
     f4 = Future()
     qf.putq(f4)
     self.ev.run()
     qf.set_exception(KeyError())
     f4.set_result(4)
     self.ev.run()
     self.assertRaises(KeyError, qf.get_result)
     # Futures are returned in the order of completion, which should be
     # f1, f2, f3, f4.  These produce 1, 2, ZeroDivisionError, 4,
     # respectively.  After that KeyError (the exception set on qf
     # itself) is raised.
     self.assertEqual(qf.getq().get_result(), 1)
     self.assertEqual(qf.getq().get_result(), 2)
     self.assertRaises(ZeroDivisionError, qf.getq().get_result)
     self.assertEqual(qf.getq().get_result(), 4)
     self.assertRaises(KeyError, qf.getq().get_result)
     self.assertRaises(KeyError, qf.getq().get_result)
 def testSerialQueueFuture_ItemException(self):
   sqf = tasklets.SerialQueueFuture()
   g1 = sqf.getq()
   f1 = Future()
   sqf.putq(f1)
   sqf.complete()
   f1.set_exception(ZeroDivisionError())
   self.assertRaises(ZeroDivisionError, g1.get_result)
 def testSerialQueueFuture_ItemException(self):
     sqf = tasklets.SerialQueueFuture()
     g1 = sqf.getq()
     f1 = Future()
     sqf.putq(f1)
     sqf.complete()
     f1.set_exception(ZeroDivisionError())
     self.assertRaises(ZeroDivisionError, g1.get_result)
 def testReducingFuture_ItemException(self):
   def reducer(arg):
     return sum(arg)
   rf = tasklets.ReducingFuture(reducer)
   f1 = Future()
   f1.set_exception(ZeroDivisionError())
   rf.putq(f1)
   rf.complete()
   self.assertRaises(ZeroDivisionError, rf.get_result)
    def testReducingFuture_ItemException(self):
        def reducer(arg):
            return sum(arg)

        rf = tasklets.ReducingFuture(reducer)
        f1 = Future()
        f1.set_exception(ZeroDivisionError())
        rf.putq(f1)
        rf.complete()
        self.assertRaises(ZeroDivisionError, rf.get_result)
 def testMultiFuture_ItemException(self):
   mf = tasklets.MultiFuture()
   f1 = Future()
   f2 = Future()
   f3 = Future()
   f2.set_result(2)
   mf.putq(f1)
   f1.set_exception(ZeroDivisionError())
   mf.putq(f2)
   mf.putq(f3)
   f3.set_result(3)
   self.ev.run()
   mf.complete()
   self.assertRaises(ZeroDivisionError, mf.get_result)
Exemple #10
0
 def testMultiFuture_ItemException(self):
     mf = tasklets.MultiFuture()
     f1 = Future()
     f2 = Future()
     f3 = Future()
     f2.set_result(2)
     mf.putq(f1)
     f1.set_exception(ZeroDivisionError())
     mf.putq(f2)
     mf.putq(f3)
     f3.set_result(3)
     self.ev.run()
     mf.complete()
     self.assertRaises(ZeroDivisionError, mf.get_result)