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
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()
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
def test_pickleable(self): s = beat.Service(app=self.app, scheduler_cls=Mock) assert loads(dumps(s))
def get_service(self): Scheduler, mock_shelve = create_persistent_scheduler() return beat.Service(app=self.app, scheduler_cls=Scheduler), mock_shelve
def test_pickleable(self): s = beat.Service(scheduler_cls=Mock) self.assertTrue(loads(dumps(s)))