def test_should_search_for_consignee_by_type(self):
        implementing_partner = {'name': "Save the Children", 'type': 'implementing_partner'}
        middle_man = {'name': "Kibuli DHO", 'type': 'middle_man'}

        implementing_partner_details = create_consignee(self, implementing_partner)
        create_consignee(self, middle_man)

        get_response = self.client.get(ENDPOINT_URL + '?search=implementing_partner')

        self.assertEqual(get_response.status_code, 200)
        self.assertDictContainsSubset(implementing_partner_details, get_response.data[0])
    def test_should_get_consignees_sorted_by_name(self):
        consignee_one_details = {'name': "Save the Children", 'type': "implementing_partner"}
        consignee_two_details = {'name': "Feed the Children", 'type': "implementing_partner"}

        create_consignee(self, consignee_one_details)
        create_consignee(self, consignee_two_details)

        get_response = self.client.get(ENDPOINT_URL)

        self.assertEqual(get_response.status_code, 200)
        self.assertDictContainsSubset(consignee_two_details, get_response.data[0])
        self.assertDictContainsSubset(consignee_one_details, get_response.data[1])
Example #3
0
    def test_should_not_cache_consignees(self):
        first_consignee = create_consignee({'name': "Save the Children", 'type': 'implementing_partner'})
        create_consignee({'name': "Masaka DHO", 'type': 'middle_man'})
        create_consignee({'name': "Gulu DHO", 'type': 'middle_man'})

        response = self.client.get(ENDPOINT_URL)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 3)
        Consignee.objects.get(id=first_consignee['id']).delete()

        response = self.client.get(ENDPOINT_URL)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 2)
    def test_should_not_cache_consignees(self):
        first_consignee = create_consignee({'name': "Save the Children", 'type': 'implementing_partner'})
        create_consignee({'name': "Masaka DHO", 'type': 'middle_man'})
        create_consignee({'name': "Gulu DHO", 'type': 'middle_man'})

        response = self.client.get(ENDPOINT_URL)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 3)
        Consignee.objects.get(id=first_consignee['id']).delete()

        response = self.client.get(ENDPOINT_URL)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response.data), 2)
Example #5
0
    def test_should_get_consignees_sorted_by_name(self):
        consignee_one_details = {'name': "Save the Children", 'type': "implementing_partner",
                                 'customer_id': 'L100', 'imported_from_vision': True}
        consignee_two_details = {'name': "Feed the Children", 'type': "implementing_partner",
                                 'customer_id': '', 'imported_from_vision': False}

        create_consignee(self, consignee_one_details)
        create_consignee(self, consignee_two_details)

        response = self.client.get(ENDPOINT_URL)

        self.assertEqual(response.status_code, 200)
        self.assertDictContainsSubset(consignee_two_details, response.data[0])
        self.assertDictContainsSubset(consignee_one_details, response.data[1])
    def test_should_get_consignees_sorted_by_name(self):
        consignee_one_details = {'name': "Save the Children", 'type': "implementing_partner",
                                 'customer_id': 'L100', 'imported_from_vision': True}
        consignee_two_details = {'name': "Feed the Children", 'type': "implementing_partner",
                                 'customer_id': '', 'imported_from_vision': False}

        create_consignee(self, consignee_one_details)
        create_consignee(self, consignee_two_details)

        response = self.client.get(ENDPOINT_URL)

        self.assertEqual(response.status_code, 200)
        self.assertDictContainsSubset(consignee_two_details, response.data[0])
        self.assertDictContainsSubset(consignee_one_details, response.data[1])
    def test_should_get_consignee(self):
        consignee_details = create_consignee(self)

        get_response = self.client.get(ENDPOINT_URL)

        self.assertEqual(get_response.status_code, 200)
        self.assertDictContainsSubset(consignee_details, get_response.data[0])
Example #8
0
    def test_should_get_consignee(self):
        consignee_details = create_consignee(self)

        get_response = self.client.get(ENDPOINT_URL)

        self.assertEqual(get_response.status_code, 200)
        self.assertDictContainsSubset(consignee_details, get_response.data[0])
 def create_distribution_plan_parent_and_child_nodes(self, parent_details=None, child_details=None):
     created_parent_details = create_distribution_plan_node(self, parent_details)
     consignee_id = create_consignee(self)['id']
     if not child_details:
         child_details = {'distribution_plan': created_parent_details['distribution_plan'],
                          'parent': created_parent_details['id'], 'consignee': consignee_id}
     created_child_details = create_distribution_plan_node(self, child_details)
     return created_parent_details, created_child_details
    def test_should_create_distribution_plan_node_without_parent_node(self):
        plan_id = create_distribution_plan(self)
        consignee_id = create_consignee(self)['id']
        node_details = {'distribution_plan': plan_id, 'consignee': consignee_id}

        created_node_data = create_distribution_plan_node(self, node_details)

        self.assertDictContainsSubset(node_details, created_node_data)
Example #11
0
    def test_should_create_consignee(self):
        consignee_details = {
            'name': "Save the Children",
            'contact_person_id': u'1234'
        }

        created_consignee = create_consignee(self)

        self.assertDictContainsSubset(consignee_details, created_consignee)
    def test_should_create_distribution_plan_node_with_parent_node(self):
        parent_node = create_distribution_plan_node(self)
        consignee_id = create_consignee(self)['id']
        child_node_details = {'distribution_plan': parent_node['distribution_plan'],
                              'parent': parent_node['id'], 'consignee': consignee_id}

        created_child_node_details = create_distribution_plan_node(self, child_node_details)

        self.assertDictContainsSubset(child_node_details, created_child_node_details)
    def test_should_not_create_node_with_bad_tree_position_parameter(self):
        plan_id = DistributionPlanFactory().id
        consignee = create_consignee(self)
        node_details = {'distribution_plan': plan_id, 'consignee': consignee['id'],
                        'tree_position': 'UNKNOWN POSITION', 'location': 'Kampala',
                        'contact_person_id': u'1234'}

        response = self.client.post(ENDPOINT_URL, node_details, format='json')

        self.assertEqual(response.status_code, 400)
 def create_distribution_plan_parent_and_child_nodes(self, parent_details=None, child_details=None):
     created_parent_details = create_distribution_plan_node(self, parent_details)
     consignee_id = create_consignee(self)['id']
     if not child_details:
         child_details = {'distribution_plan': created_parent_details['distribution_plan'],
                          'consignee': consignee_id, 'location': 'Kampala', 'mode_of_delivery': 'WAREHOUSE',
                          'contact_person_id': u'1234',
                          'tree_position': self.MIDDLEMAN_POSITION, 'parent': created_parent_details['id']}
     created_child_details = create_distribution_plan_node(self, child_details)
     return created_parent_details, created_child_details
    def test_should_create_distribution_plan_node_with_parent_node(self):
        parent_node = create_distribution_plan_node(self)
        consignee_id = create_consignee(self)['id']
        child_node_details = {'distribution_plan': parent_node['distribution_plan'], 'consignee': consignee_id,
                              'tree_position': self.MIDDLEMAN_POSITION, 'parent': parent_node['id'],
                              'location': 'Kampala', 'mode_of_delivery': 'WAREHOUSE', 'contact_person_id': u'1234'}

        created_child_node_details = create_distribution_plan_node(self, child_node_details)

        self.assertDictContainsSubset(child_node_details, created_child_node_details)
    def test_should_create_node_of_type_end_user(self):
        plan_id = create_distribution_plan(self)
        consignee = create_consignee(self)
        node_details = {'distribution_plan': plan_id, 'consignee': consignee['id'],
                        'tree_position': self.END_USER_POSITION, 'location': 'Kampala', 'mode_of_delivery': 'WAREHOUSE',
                        'contact_person_id': u'1234'}

        node = create_distribution_plan_node(self, node_details=node_details)

        response = self.client.get("%s%d/" % (ENDPOINT_URL, node['id']))
        self.assertDictContainsSubset({'tree_position': node['tree_position']}, response.data)
    def test_should_search_for_consignee_at_top_level(self):
        implementing_partner = {'name': "Save the Children", 'type': 'implementing_partner'}
        middle_man = {'name': "Kibuli DHO", 'type': 'middle_man'}

        implementing_partner_details = create_consignee(self, implementing_partner)
        create_consignee(self, middle_man)
        plan_id = create_distribution_plan(self)
        node_details = {'distribution_plan': plan_id, 'consignee': implementing_partner_details['id'], 'tree_position': 'END_USER',
                        'location': 'Kampala', 'mode_of_delivery': 'WAREHOUSE', 'contact_person_id': u'1234'}
        create_distribution_plan_node(self, node_details)

        get_response = self.client.get(ENDPOINT_URL + '?node=top')

        self.assertEqual(get_response.status_code, 200)
        self.assertDictContainsSubset(implementing_partner_details, get_response.data[0])
        self.assertEqual(1, len(get_response.data))

        get_response = self.client.get(ENDPOINT_URL + '?node=1')
        self.assertEqual(get_response.status_code, 200)
        self.assertEqual(2, len(get_response.data))
Example #18
0
    def test_should_create_distribution_plan_node_without_parent_node(self):
        plan_id = create_distribution_plan(self)
        consignee_id = create_consignee(self)['id']
        node_details = {
            'distribution_plan': plan_id,
            'consignee': consignee_id
        }

        created_node_data = create_distribution_plan_node(self, node_details)

        self.assertDictContainsSubset(node_details, created_node_data)
    def test_should_provide_distribution_plan_with_all_its_nodes(self):
        plan_id = create_distribution_plan(self)
        consignee = create_consignee(self)
        node_details = {'distribution_plan': plan_id, 'consignee': consignee['id']}
        node = create_distribution_plan_node(self, node_details)
        expected_plan_partial = {'distributionplannode_set': [node['id']]}

        response = self.client.get("%s%d/" % (ENDPOINT_URL, plan_id))

        self.assertEqual(response.status_code, 200)
        self.assertDictContainsSubset(expected_plan_partial, response.data)
    def test_should_provide_distribution_plan_with_all_its_nodes(self):
        plan_id = create_distribution_plan(self)
        consignee = create_consignee(self)
        node_details = {'distribution_plan': plan_id, 'consignee': consignee['id'], 'tree_position': 'END_USER',
                        'location': 'Kampala', 'mode_of_delivery': 'WAREHOUSE', 'contact_person_id': u'1234'}
        node = create_distribution_plan_node(self, node_details)
        expected_plan_partial = {'distributionplannode_set': [node['id']]}

        response = self.client.get("%s%d/" % (ENDPOINT_URL, plan_id))

        self.assertEqual(response.status_code, 200)
        self.assertDictContainsSubset(expected_plan_partial, response.data)
    def test_should_create_distribution_plan_node_without_parent_node(self):
        plan_id = DistributionPlanFactory().id
        consignee_id = create_consignee(self)['id']
        sales_order_item = create_sales_order_item(self)
        node_details = {'item': sales_order_item['id'], 'targeted_quantity': 10,
                        'delivery_date': '2014-01-21', 'distribution_plan': plan_id,
                        'tree_position': self.MIDDLEMAN_POSITION,
                        'contact_person_id': u'1234',
                        'consignee': consignee_id, 'location': 'Kampala'}

        created_node_data = create_distribution_plan_node(self, node_details)

        self.assertDictContainsSubset(node_details, created_node_data)
    def test_should_provide_distribution_plan_with_all_its_nodes(self):
        plan_id = create_distribution_plan(self)
        consignee = create_consignee(self)
        node_details = {
            'distribution_plan': plan_id,
            'consignee': consignee['id']
        }
        node = create_distribution_plan_node(self, node_details)
        expected_plan_partial = {'distributionplannode_set': [node['id']]}

        response = self.client.get("%s%d/" % (ENDPOINT_URL, plan_id))

        self.assertEqual(response.status_code, 200)
        self.assertDictContainsSubset(expected_plan_partial, response.data)
Example #23
0
    def test_should_create_distribution_plan_node_with_parent_node(self):
        parent_node = create_distribution_plan_node(self)
        consignee_id = create_consignee(self)['id']
        child_node_details = {
            'distribution_plan': parent_node['distribution_plan'],
            'parent': parent_node['id'],
            'consignee': consignee_id
        }

        created_child_node_details = create_distribution_plan_node(
            self, child_node_details)

        self.assertDictContainsSubset(child_node_details,
                                      created_child_node_details)
    def test_should_create_node_of_type_end_user(self):
        plan_id = DistributionPlanFactory().id
        consignee = create_consignee(self)
        sales_order_item = create_sales_order_item(self)
        node_details = {'item': sales_order_item['id'], 'targeted_quantity': 10,
                        'delivery_date': '2014-01-21',
                        'distribution_plan': plan_id, 'consignee': consignee['id'],
                        'tree_position': self.END_USER_POSITION, 'location': 'Kampala',
                        'contact_person_id': u'1234'}

        node = create_distribution_plan_node(self, node_details=node_details)

        response = self.client.get("%s%d/" % (ENDPOINT_URL, node['id']))
        self.assertDictContainsSubset({'tree_position': node['tree_position']}, response.data)
    def test_should_filter_nodes_by_parent_null(self):
        parent_node = create_distribution_plan_node(self)
        consignee_id = create_consignee(self)['id']
        child_node_details = {'item': parent_node['item'], 'targeted_quantity': parent_node['targeted_quantity'],
                              'delivery_date': parent_node['delivery_date'],
                              'distribution_plan': parent_node['distribution_plan'], 'consignee': consignee_id,
                              'tree_position': self.MIDDLEMAN_POSITION, 'parent': parent_node['id'],
                              'location': 'Kampala', 'contact_person_id': u'1234'}
        create_distribution_plan_node(self, child_node_details)

        all_nodes = self.client.get(ENDPOINT_URL).data
        self.assertEqual(len(all_nodes), 2)

        parent_nodes = self.client.get(ENDPOINT_URL + "?parent__isnull=true").data
        self.assertEqual(len(parent_nodes), 1)
Example #26
0
 def create_distribution_plan_parent_and_child_nodes(
         self, parent_details=None, child_details=None):
     created_parent_details = create_distribution_plan_node(
         self, parent_details)
     consignee_id = create_consignee(self)['id']
     if not child_details:
         child_details = {
             'distribution_plan':
             created_parent_details['distribution_plan'],
             'parent': created_parent_details['id'],
             'consignee': consignee_id
         }
     created_child_details = create_distribution_plan_node(
         self, child_details)
     return created_parent_details, created_child_details
    def test_should_create_consignee(self):
        consignee_details = {'name': "Save the Children", 'type': "implementing_partner"}

        created_consignee = create_consignee(self)

        self.assertDictContainsSubset(consignee_details, created_consignee)
    def test_should_create_consignee(self):
        consignee_details = {'name': "Save the Children"}

        created_consignee = create_consignee(self)

        self.assertDictContainsSubset(consignee_details, created_consignee)