def run(self, *args, **kwargs): self.log = log # init database connection session = DBSession() statuses = ['PENDING', 'ACCEPTED_MANAGER', 'DENIED', 'APPROVED_ADMIN', 'CANCELED', 'ERROR'] for status in statuses: requests = Request.by_status(session, status) self.log.info('number of requests for %s: %d' % (status, len(requests))) req_accepted_notified = Request.by_status(session, 'ACCEPTED_MANAGER', notified=True) self.log.info('number of ACCEPTED_NOTIFIED requests: %d' % len(req_accepted_notified)) # req_pending_notified = Request.by_status(session, 'PENDING', # notified=True) # self.log.info('number of PENDING_NOTIFIED requests: %d' % # len(req_pending_notified)) req_list = [] req_list.extend(req_accepted_notified) # req_list.extend(req_pending_notified) for req in req_list: self.log.info('selecting task for req type %r' % req.status) check_status = req.status if req.status == 'ACCEPTED_MANAGER' and req.notified: check_status = 'ACCEPTED_NOTIFIED' # if req.status == 'PENDING' and req.notified: # check_status = 'PENDING_NOTIFIED' req_task = self.worker_tasks[check_status] self.log.info('task selected %r' % req_task.name) data = { 'req_id': req.id, } async_result = subtask(req_task).delay(data=data) self.log.info('task scheduled %r' % async_result) return True
def run(self, *args, **kwargs): self.log = log # init database connection session = DBSession() statuses = [ 'PENDING', 'ACCEPTED_MANAGER', 'DENIED', 'APPROVED_ADMIN', 'CANCELED', 'ERROR' ] for status in statuses: requests = Request.by_status(session, status) self.log.info('number of requests for %s: %d' % (status, len(requests))) req_accepted_notified = Request.by_status(session, 'ACCEPTED_MANAGER', notified=True) self.log.info('number of ACCEPTED_NOTIFIED requests: %d' % len(req_accepted_notified)) # req_pending_notified = Request.by_status(session, 'PENDING', # notified=True) # self.log.info('number of PENDING_NOTIFIED requests: %d' % # len(req_pending_notified)) req_list = [] req_list.extend(req_accepted_notified) # req_list.extend(req_pending_notified) for req in req_list: self.log.info('selecting task for req type %r' % req.status) check_status = req.status if req.status == 'ACCEPTED_MANAGER' and req.notified: check_status = 'ACCEPTED_NOTIFIED' # if req.status == 'PENDING' and req.notified: # check_status = 'PENDING_NOTIFIED' req_task = self.worker_tasks[check_status] self.log.info('task selected %r' % req_task.name) data = { 'req_id': req.id, } async_result = subtask(req_task).delay(data=data) self.log.info('task scheduled %r' % async_result) return True
def run(self, *args, **kwargs): self.log = log # init database connection session = DBSession() req_accepted_notified = Request.by_status(session, 'ACCEPTED_MANAGER', notified=True) self.log.info('number of ACCEPTED_NOTIFIED requests: %d' % len(req_accepted_notified)) req_list = [] req_list.extend(req_accepted_notified) for req in req_list: self.log.info('selecting task for req type %r' % req.status) check_status = req.status if req.status == 'ACCEPTED_MANAGER' and req.notified: check_status = 'ACCEPTED_NOTIFIED' req_task = self.worker_tasks[check_status] self.log.info('task selected %r' % req_task.name) data = { 'req_id': req.id, } async_result = subtask(req_task).delay(data=data) self.log.info('task scheduled %r' % async_result) return True
def test_by_status(self): from pyvac.models import Request requests = Request.by_status(self.session, u'PENDING') self.assertEqual(len(requests), 4) # take the first request = requests[0] self.assertIsInstance(request, Request)
def test_by_status_not_notified_ok(self): from pyvac.models import Request requests = Request.by_status(self.session, u'ACCEPTED_MANAGER', notified=True) self.assertEqual(len(requests), 2) # take the first request = requests[0] self.assertIsInstance(request, Request) self.assertEqual(request.days, 5) self.assertEqual(request.type, u'RTT') self.assertEqual(request.status, u'ACCEPTED_MANAGER') self.assertEqual(request.notified, True) self.assertEqual(request.date_from, datetime(2015, 4, 24, 0, 0)) self.assertEqual(request.date_to, datetime(2015, 4, 28, 0, 0))
def test_by_status_not_notified_ok(self): from pyvac.models import Request requests = Request.by_status(self.session, u'ACCEPTED_MANAGER', notified=True) self.assertEqual(len(requests), 2) # take the first request = requests[0] self.assertIsInstance(request, Request) self.assertEqual(request.days, 5) self.assertEqual(request.type, u'RTT') self.assertEqual(request.status, u'ACCEPTED_MANAGER') self.assertEqual(request.notified, True) self.assertEqual(request.date_from, datetime(2015, 4, 24, 0, 0)) self.assertEqual(request.date_to, datetime(2015, 4, 28, 0, 0))
def test_by_status_not_notified_ko(self): from pyvac.models import Request nb_requests = Request.by_status(self.session, u'ACCEPTED_MANAGER', count=True) self.assertEqual(nb_requests, 0)
def test_by_status_not_notified_ko(self): from pyvac.models import Request nb_requests = Request.by_status(self.session, u'ACCEPTED_MANAGER', count=True) self.assertEqual(nb_requests, 0)