def test_should_dequeue_next_run_in_the_queue(self): first_delivery_to_be_answered = DeliveryFactory(track=True) contact = {'name': 'Some name', 'phone': '098765433'} first_delivery_to_be_answered.build_contact = MagicMock(return_value=contact) self._schedule_run_for(first_delivery_to_be_answered) second_delivery_to_be_answered = DeliveryFactory(track=True) self._schedule_run_for(second_delivery_to_be_answered) data = { 'runnable': first_delivery_to_be_answered.id, 'answers': [ {'question_label': 'deliveryReceived', 'value': 'Yes'}] } next_run = RunQueue.objects.filter( Q(contact_person_id=second_delivery_to_be_answered.contact_person_id) & Q( status='not_started')).order_by( '-run_delay').first() self.client.post(ENDPOINT_URL, data=json.dumps(data), content_type='application/json') first_runs = Run.objects.filter(runnable=first_delivery_to_be_answered) next_run = RunQueue.objects.get(id=next_run.id) self.assertEqual(len(first_runs), 2) self.assertEqual(next_run.status, 'started') self.assertTrue(self.mock_distribution_alert_raise.delay.called)
def test_should_schedule_implementing_partner_flow_if_runnable_is_delivery(self): delivery = DeliveryFactory() NodeFactory(distribution_plan=delivery, item=PurchaseOrderItemFactory()) delivery.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=delivery) schedule_run_for(delivery) mock_start_delivery_run.assert_called_with(contact_person=self.contact, flow=self.IMPLEMENTING_PARTNER_FLOW_ID, item_description=ANY, sender=ANY)
def test_should_schedule_implementing_partner_flow_if_runnable_is_delivery(self): delivery = DeliveryFactory() NodeFactory(distribution_plan=delivery, item=PurchaseOrderItemFactory()) delivery.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=delivery) self.flow_scheduler.schedule_run_for(delivery) self.mocked_create_run.assert_called_with(self.contact, self.ip_flow, ANY, ANY)
def test_should_schedule_implementing_partner_flow_if_runnable_is_delivery( self): delivery = DeliveryFactory() NodeFactory(distribution_plan=delivery, item=PurchaseOrderItemFactory()) delivery.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=delivery) self.flow_scheduler.schedule_run_for(delivery) self.mocked_create_run.assert_called_with(self.contact, self.ip_flow, ANY, ANY)