def testStartComplex(self): q = MyQueue() q.addTask(waitOneSecond) q.addTask(waitFiveSeconds) q.addTask(waitOneSecond) self.assertEqual(3, q.size()) self.assertFalse(q.isRunning()) self.assertEqual(0, q.inFlight()) q.start() time.sleep(0.5) self.assertTrue(q.isRunning()) self.assertEqual(1, q.inFlight()) self.assertEqual(2, q.size()) time.sleep(1) self.assertEqual(1, q.inFlight()) self.assertEqual(1, q.size()) self.assertTrue(q.isRunning()) time.sleep(5) self.assertEqual(1, q.inFlight()) self.assertEqual(0, q.size()) self.assertTrue(q.isRunning()) time.sleep(1) self.assertEqual(0, q.inFlight()) self.assertEqual(0, q.size()) self.assertFalse(q.isRunning())
def testConstructor(self): q = MyQueue() self.assertEqual(1, q._parallelism) self.assertRaises(Exception, MyQueue, 0) self.assertEqual(0, q.size()) self.assertFalse(q.isRunning()) self.assertEqual(0, q.inFlight())
def testStartMultipleUse(self): q = MyQueue() q.addTask(waitOneSecond) q.start() while q.isRunning(): time.sleep(0.1) self.assertEqual(0, q.size()) self.assertEqual(0, q.inFlight()) self.assertFalse(q.isRunning()) q.addTask(waitOneSecond) startTime = datetime.now() q.start() # it should take about 1 second to run the second task again self.sleepCountAssert(startTime, q, 1)