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])
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_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])
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)
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))
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)
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)
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)