Example #1
0
    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 setUp(self):
        self.contact = {'first_name': 'Test', 'last_name': 'User', 'phone': '+256 772 123456'}

        node = NodeFactory()
        self.line_item = DistributionPlanLineItemFactory(distribution_plan_node=node)
        local_celery.app.control.revoke = MagicMock(return_value=None)
        node.build_contact = MagicMock(return_value=self.contact)
        Node.objects.get = MagicMock(return_value=node)
        DistributionPlanLineItem.objects.get = MagicMock(return_value=self.line_item)

        self.MIDDLEMAN_FLOW_ID = FlowFactory(for_node_type=Node.MIDDLE_MAN).rapid_pro_id
        self.END_USER_FLOW_ID = FlowFactory(for_node_type=Node.END_USER).rapid_pro_id
Example #3
0
    def test_should_schedule_end_user_flow_if_node_tree_position_is_end_user(self, mock_current_run_for_node):
        node = NodeFactory(tree_position=Node.END_USER)
        node.build_contact = MagicMock(return_value=self.contact)

        mock_current_run_for_node.return_value = None
        Node.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_schedule_middleman_flow_if_node_tree_position_is_middleman(self, mock_current_run_for_node):
        node = NodeFactory(tree_position=Node.MIDDLE_MAN)
        node.build_contact = MagicMock(return_value=self.contact)
        line_item = DistributionPlanLineItemFactory(distribution_plan_node=node)

        mock_current_run_for_node.return_value = None
        DistributionPlanLineItem.objects.get = MagicMock(return_value=line_item)
        Node.objects.get = MagicMock(return_value=node)

        schedule_run_for(line_item)

        mock_start_delivery_run.assert_called_with(contact_person=self.contact, flow=self.MIDDLEMAN_FLOW_ID,
                                                   item_description=ANY, sender=ANY)
Example #5
0
    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, parent=parent_node)
        node.build_contact = MagicMock(return_value=self.contact)

        Node.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
        )