Пример #1
0
    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())
Пример #2
0
    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())
Пример #3
0
    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)