def test_should_schedule_flow_to_start_after_buffer_when_calculated_send_time_is_in_past(self): some_date = FakeDate.today() - datetime.timedelta(days=10) node = NodeFactory(delivery_date=some_date) node.build_contact = MagicMock(return_value=self.contact) schedule_run_for(node) self.assertEqual(mock_celery.invoked_after, 10.0)
def test_should_queue_run_for_a_contact_if_contact_has_current_run_for_a_different_runnable(self, mock_run_queue_enqueue): RunFactory(runnable=self.node) node_two = NodeFactory(contact_person_id=self.node.contact_person_id) node_two.build_contact = MagicMock(return_value=self.contact) mock_run_queue_enqueue.return_value = None schedule_run_for(node_two) mock_run_queue_enqueue.assert_called_with(node_two, ANY)
def test_should_queue_run_for_a_contact_if_contact_has_current_run_for_a_different_runnable( self, mock_run_queue_enqueue): RunFactory(runnable=self.node) node_two = NodeFactory(contact_person_id=self.node.contact_person_id) node_two.build_contact = MagicMock(return_value=self.contact) mock_run_queue_enqueue.return_value = None self.flow_scheduler.schedule_run_for(node_two) mock_run_queue_enqueue.assert_called_with(node_two, ANY)
def test_should_schedule_flow_to_start_after_buffer_when_calculated_send_time_is_in_past( self): some_date = FakeDate.today() - datetime.timedelta(days=10) node = NodeFactory(delivery_date=some_date) node.build_contact = MagicMock(return_value=self.contact) self.flow_scheduler.schedule_run_for(node) self.assertEqual(self.mock_celery.invoked_after, 10.0)
def test_should_schedule_end_user_flow_if_node_tree_position_is_end_user(self): node = NodeFactory(tree_position=Node.END_USER) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) self.flow_scheduler.schedule_run_for(node) self.mocked_create_run.assert_called_with(self.contact, self.end_user_flow, ANY, ANY)
def test_should_schedule_middleman_flow_if_node_tree_position_is_middleman(self): node = NodeFactory(tree_position=Node.MIDDLE_MAN) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) self.flow_scheduler.schedule_run_for(node) self.mocked_create_run.assert_called_with(self.contact, self.middle_man_flow, ANY, ANY)
def test_should_schedule_end_user_flow_if_node_tree_position_is_end_user(self): node = NodeFactory(tree_position=Node.END_USER) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) schedule_run_for(node) mock_start_delivery_run.assert_called_with(contact_person=self.contact, flow=self.END_USER_FLOW_ID, item_description=ANY, sender=ANY)
def test_should_build_contact_with_details_from_contacts_service(self, mock_get): contact_id = '54335c56b3ae9d92f038abb0' fake_contact_json = {'firstName': "test", 'lastName': "user1", 'phone': "+256 782 443439", '_id': contact_id} fake_response = FakeResponse(fake_contact_json, 200) node = NodeFactory(contact_person_id=contact_id) mock_get.return_value = fake_response contact = node.build_contact() self.assertEqual(contact, fake_contact_json) mock_get.assert_called_with("%s%s/" % (settings.CONTACTS_SERVICE_URL, contact_id))
def test_should_schedule_end_user_flow_if_node_tree_position_is_end_user( self): node = NodeFactory(tree_position=Node.END_USER) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) self.flow_scheduler.schedule_run_for(node) self.mocked_create_run.assert_called_with(self.contact, self.end_user_flow, ANY, ANY)
def test_should_schedule_middleman_flow_if_node_tree_position_is_middleman( self): node = NodeFactory(tree_position=Node.MIDDLE_MAN) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) self.flow_scheduler.schedule_run_for(node) self.mocked_create_run.assert_called_with(self.contact, self.middle_man_flow, ANY, ANY)
def test_should_schedule_flow_with_sender_as_parent_node_consignee_name_if_node_has_parent(self): sender_org_name = "Dwelling Places" sender_org = ConsigneeFactory(name=sender_org_name) parent_node = NodeFactory(consignee=sender_org) node = NodeFactory(consignee=sender_org, parents=[(parent_node, 10)]) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) node.consignee.build_contact = MagicMock(return_value=self.contact) self.flow_scheduler.schedule_run_for(node) self.mocked_create_run.assert_called_with(self.contact, ANY, node.item.item.description, sender_org_name)
def test_should_schedule_flow_with_sender_as_parent_node_consignee_name_if_node_has_parent(self): sender_org_name = "Dwelling Places" sender_org = ConsigneeFactory(name=sender_org_name) parent_node = NodeFactory(consignee=sender_org) node = NodeFactory(consignee=sender_org, parents=[(parent_node, 10)]) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) node.consignee.build_contact = MagicMock(return_value=self.contact) schedule_run_for(node) mock_start_delivery_run.assert_called_with(contact_person=self.contact, flow=ANY, sender=sender_org_name, item_description=node.item.item.description)
def test_should_schedule_flow_with_sender_as_parent_node_consignee_name_if_node_has_parent( self): sender_org_name = "Dwelling Places" sender_org = ConsigneeFactory(name=sender_org_name) parent_node = NodeFactory(consignee=sender_org) node = NodeFactory(consignee=sender_org, parents=[(parent_node, 10)]) node.build_contact = MagicMock(return_value=self.contact) Runnable.objects.get = MagicMock(return_value=node) node.consignee.build_contact = MagicMock(return_value=self.contact) self.flow_scheduler.schedule_run_for(node) self.mocked_create_run.assert_called_with(self.contact, ANY, node.item.item.description, sender_org_name)