コード例 #1
0
ファイル: test_scheduler.py プロジェクト: sonologic/thermo2
    def test_scheduler_listener(self):
        scheduler = Scheduler()

        listener = SchedulerTestListener('test_event')

        scheduler.add_listener(listener)

        self.assertEqual(scheduler.schedule(),'idle')

        event = Event(time(),'test_event')

        self.assertEqual(scheduler.schedule([event]),event)

        self.assertEqual(listener.count,1)
コード例 #2
0
ファイル: test_scheduler.py プロジェクト: sonologic/thermo2
    def test_scheduler_timed_listener(self):
        scheduler = Scheduler()

        listener = SchedulerTestListener('test_event')

        scheduler.add_listener(listener)

        scheduler.add_timer(0.250,'test_event')

        start = time()
        count = 0

        while time() < start+1.05:
            event = scheduler.schedule()
    
            if event!='idle' and event.label == 'test_event':
                count = count + 1
            sleep(0.05)

        self.assertEqual(count,4)
        self.assertEqual(listener.count,4)
コード例 #3
0
ファイル: test_scheduler.py プロジェクト: sonologic/thermo2
class SchedulerTest(unittest.TestCase):

    def test_scheduler_schedule(self):
        self.scheduler = Scheduler()
        self.assertEqual(self.scheduler.schedule(),'idle')

    def test_scheduler_insert_event(self):
        scheduler = Scheduler()
        
        t = time()
        while time() < t+1:
            self.assertEqual(scheduler.schedule(),'idle')
            sleep(0.05)
     
        event = Event(time(), 'test_event')
        self.assertEqual(scheduler.schedule([event]),event)

    def test_scheduler_add_timer(self):
        self.scheduler = Scheduler()

        self.scheduler.add_timer(2, 'test_timer')

        self.assertEqual(len(self.scheduler.timers),1);

        self.assertTrue('test_timer' in self.scheduler.timers.keys())

        self.assertEqual(self.scheduler.timers['test_timer'].getPeriod(),2)

    def test_scheduler_timer(self):
        self.scheduler = Scheduler()
        error = 0.1
        delay = 2

        startTime = time()
        self.scheduler.add_timer(delay,'test_timer')
        while time() < startTime+delay-error:
            self.assertEqual(self.scheduler.schedule(),'idle')
            sleep(error/10)

        event_count = 0

        while time() < startTime+delay+error:
            event = self.scheduler.schedule()

            if event!='idle' and event.label=='test_timer':
                event_count = event_count + 1
            sleep(error/10)

        self.assertEqual(event_count,1)

    def test_scheduler_add_listener(self):
        self.scheduler = Scheduler()

        listener = SchedulerTestListener('foo')

        self.scheduler.add_listener(listener)

        self.assertEqual(len(self.scheduler.listeners),1)
        self.assertEqual(self.scheduler.listeners['foo'],[listener])

    def test_scheduler_add_bad_listener(self):
        self.scheduler = Scheduler()

        listener = SchedulerTestListener('foo')
        listener.addEvent(None)

        type_error = False

        try:
            self.scheduler.add_listener(listener)
        except TypeError:
            type_error = True

        self.assertEqual(type_error,True)

    def test_scheduler_listener(self):
        scheduler = Scheduler()

        listener = SchedulerTestListener('test_event')

        scheduler.add_listener(listener)

        self.assertEqual(scheduler.schedule(),'idle')

        event = Event(time(),'test_event')

        self.assertEqual(scheduler.schedule([event]),event)

        self.assertEqual(listener.count,1)

    def test_scheduler_timed_listener(self):
        scheduler = Scheduler()

        listener = SchedulerTestListener('test_event')

        scheduler.add_listener(listener)

        scheduler.add_timer(0.250,'test_event')

        start = time()
        count = 0

        while time() < start+1.05:
            event = scheduler.schedule()
    
            if event!='idle' and event.label == 'test_event':
                count = count + 1
            sleep(0.05)

        self.assertEqual(count,4)
        self.assertEqual(listener.count,4)

    def test_scheduler_bind_config(self):
        scheduler = Scheduler()

        config = Config('''
                        timer test_timer {
                            interval: 2
                            event: test_timer_event
                        }

                        process demo_add {
                            trigger: op1_value, op2_value
                            script: {
                                sum := op1_value + op2_value
                                emit sum_value(sum)
                            }
                        }

                        process gen_op1 {
                            trigger: test_timer_event
                            script: {
                                emit op1_value(2)
                            }
                        }

                        process gen_op2 {
                            trigger: test_timer_event
                            script: {
                                emit op2_value(3)
                            }
                        }''')

        scheduler.bind(config)