def test_polled_time_no_interval_not_started(self):
        """
        Try to setup some jobs with the scheduler before the scheduler has been started.
        Then try to startup and see if the job is setup properly.
        """
        now = datetime.datetime.now()
        test_name = 'test_job'
        min_interval = PolledScheduler.interval(seconds=1)

        self._scheduler = PolledScheduler()
        self.assertFalse(self._scheduler.running)

        # Verify that triggered events work.
        job = self._scheduler.add_polled_job(self._callback, test_name,
                                             min_interval)
        self.assertIsNotNone(job)
        self.assertEqual(len(self._scheduler.get_jobs()), 0)
        self.assertEqual(len(self._scheduler._pending_jobs), 1)

        self._scheduler.start()

        log.debug("JOBS: %s" % self._scheduler.get_jobs())
        self.assertEqual(len(self._scheduler.get_jobs()), 1)

        self.assertTrue(self._scheduler.run_polled_job(test_name))
        self.assertFalse(self._scheduler.run_polled_job(test_name))
        time.sleep(2)
        self.assertTrue(self._scheduler.run_polled_job(test_name))
    def setUp(self):
        """
        Setup the test case
        """
        self._scheduler = PolledScheduler()
        self._scheduler.start()
        self._triggered = []

        self.assertTrue(self._scheduler.daemonic)
Beispiel #3
0
 def __init__(self, config=None):
     """
     config structure:
     {
         test_name: {
             trigger: {}
             callback: some_function
         }
     }
     @param config: job configuration structure.
     """
     self._scheduler = PolledScheduler()
     if (config):
         self.add_config(config)
    def _build_scheduler(self):
        """
        Build a scheduler for periodic status updates
        """
        self._scheduler = PolledScheduler()
        self._scheduler.start()

        def event_callback(event):
            log.info("driver job triggered, raise event: %s" % event)
            self._fsm.on_event(event)

        # Dynamically create the method and add it
        method = partial(event_callback, RSNPlatformDriverEvent.GET_ENG_DATA)

        self._job = self._scheduler.add_interval_job(
            method, seconds=self.oms_sample_rate)