Beispiel #1
0
    def test_start(self):
        sh = MockShelve()

        class PersistentScheduler(beat.PersistentScheduler):
            persistence = Object()
            persistence.open = lambda *a, **kw: sh

        s = beat.Service(scheduler_cls=PersistentScheduler)
        self.assertIsInstance(s.schedule, dict)
        self.assertIsInstance(s.scheduler, beat.Scheduler)
        self.assertListEqual(s.schedule.keys(), sh.keys())

        s.sync()
        self.assertTrue(sh.closed)
        self.assertTrue(sh.synced)
        self.assertTrue(s._stopped.isSet())
        s.sync()
        s.stop(wait=False)
        self.assertTrue(s._shutdown.isSet())
        s.stop(wait=True)
        self.assertTrue(s._shutdown.isSet())

        p = s.scheduler._store
        s.scheduler._store = None
        try:
            s.scheduler.sync()
        finally:
            s.scheduler._store = p
Beispiel #2
0
 def test_install_sync_handler(self):
     b = beatapp.Beat(app=self.app, redirect_stdouts=False)
     clock = beat.Service(app=self.app)
     clock.start = Mock(name='beat.Service().start')
     clock.sync = Mock(name='beat.Service().sync')
     handlers = self.psig(b.install_sync_handler, clock)
     with pytest.raises(SystemExit):
         handlers['SIGINT']('SIGINT', object())
     clock.sync.assert_called_with()
Beispiel #3
0
    def get_service(self):
        sh = MockShelve()

        class PersistentScheduler(beat.PersistentScheduler):
            persistence = Object()
            persistence.open = lambda *a, **kw: sh
            tick_raises_exit = False
            shutdown_service = None

            def tick(self):
                if self.tick_raises_exit:
                    raise SystemExit()
                if self.shutdown_service:
                    self.shutdown_service._is_shutdown.set()
                return 0.0

        return beat.Service(scheduler_cls=PersistentScheduler), sh
Beispiel #4
0
 def test_pickleable(self):
     s = beat.Service(app=self.app, scheduler_cls=Mock)
     assert loads(dumps(s))
Beispiel #5
0
 def get_service(self):
     Scheduler, mock_shelve = create_persistent_scheduler()
     return beat.Service(app=self.app, scheduler_cls=Scheduler), mock_shelve
Beispiel #6
0
 def test_pickleable(self):
     s = beat.Service(scheduler_cls=Mock)
     self.assertTrue(loads(dumps(s)))