Ejemplo n.º 1
0
    def test_should_return_task_control(self):
        class LongTask(Task):
            def __init__(self, sleepDurationSec):
                self._sleepDurationSec = sleepDurationSec
                self._done = False

            @override
            def perform(self):
                while not self._done:
                    time.sleep(self._sleepDurationSec)

            def terminate(self):
                self._done = True

        task = LongTask(0.01)
        taskCtrl = self.executor.execute(task)
        self.assertFalse(taskCtrl.isDone())
        Poller(1, pollingDelaySec=0.01).check(
            ExecutionProbe(lambda: self.assertTrue(taskCtrl.isRunning())))
        task.terminate()
        Poller(2, pollingDelaySec=0.01).check(
            ExecutionProbe(lambda: self.assertTrue(taskCtrl.isDone())))

        task = LongTask(0.5)
        taskCtrl = self.executor.execute(task)
        task.terminate()
        taskCtrl.waitForCompletion()
        self.assertTrue(taskCtrl.isDone())
 def test_ignores_step_failures(self):
     self.convergeable.requestPanic()
     self.closeLoopAndWaitForStep()
     Poller(1).check(
         ExecutionProbe(lambda: self.assertTrue(
             self.operatorLog.getLoopFailureLogCount() >= 1)))
     self.loop.open()
Ejemplo n.º 3
0
 def _testMoveTo(self):
     actuatorPosition = np.arange(10)
     self.instrumentClient1.moveTo(actuatorPosition)
     Poller(3).check(
         ExecutionProbe(lambda: self.assertTrue(
             np.allclose(actuatorPosition,
                         self.instrumentClient1.getPosition()))))
Ejemplo n.º 4
0
 def _testGetStatus(self):
     status = self.instrumentClient1.getStatus()
     cmdCounter = status.commandCounter()
     self.instrumentClient1.moveTo(np.arange(4))
     Poller(3).check(
         ExecutionProbe(lambda: self.assertEqual(
             cmdCounter + 1,
             self.instrumentClient1.getStatus().commandCounter())))
Ejemplo n.º 5
0
    def test_should_ignore_failing_tasks(self):
        failingTask = FailingTask("broken")
        self.executor.execute(failingTask)
        Poller(4).check(TaskCompletionProbe(failingTask))

        dummyTask = SlowTask(0, "slow task")
        Poller(1).check(
            ExecutionProbe(lambda: self.executor.execute(dummyTask)))
        Poller(4).check(TaskCompletionProbe(dummyTask))
 def test_awakes_from_long_running_sleeps(self):
     self.interStepTimeSec = 10
     cnt = self.convergeable.getMeasureConvergenceCount()
     self.buildInitializedLoop()
     t0Sec = time.time()
     Poller(2).check(
         ExecutionProbe(lambda: self.assertTrue(
             self.convergeable.getMeasureConvergenceCount() > cnt)))
     self.loop.deinitialize()
     t1Sec = time.time()
     self.assertTrue(t1Sec - t0Sec < self.interStepTimeSec / 10)
    def test_deinitialize_and_reinitialize_restarts_in_open_loop(self):
        self.closeLoopAndWaitForStep()
        self.loop.deinitialize()
        closedLoopCnt = \
            self.convergeable.getConvergenceStepCount()
        openLoopCnt = \
            self.convergeable.getMeasureConvergenceCount()

        self.loop.initialize()
        self.assertFalse(self.loop.isClosed())
        Poller(4).check(
            ExecutionProbe(lambda: self.assertEqual(
                closedLoopCnt, self.convergeable.getConvergenceStepCount())))

        Poller(4).check(
            ExecutionProbe(lambda: self.assertTrue(
                self.convergeable.getMeasureConvergenceCount() > openLoopCnt)))

        self.loop.close()

        Poller(4).check(
            ExecutionProbe(lambda: self.assertTrue(
                closedLoopCnt < self.convergeable.getConvergenceStepCount())))
 def waitForAtLeastConvergenceSteps(self, expectedSteps, timeoutSec=2):
     Poller(timeoutSec).check(
         ExecutionProbe(lambda: self.assertTrue(
             self.convergeable.getConvergenceStepCount() >= expectedSteps)))
 def test_creation(self):
     self.assertFalse(self.loop.isClosed())
     self.assertEqual(0, self.loop.getConvergenceStepCount())
     Poller(2).check(
         ExecutionProbe(lambda: self.assertTrue(
             self.convergeable.getMeasureConvergenceCount() > 1)))
 def closeLoopAndWaitForStep(self):
     self.loop.close()
     Poller(2).check(
         ExecutionProbe(lambda: self.assertTrue(
             self.convergeable.getConvergenceStepCount() > 0)))