def test_should_compute_quantity_in_from_incoming_arcs(self): node = DeliveryNodeFactory(quantity=0) ArcFactory(source=None, target=node, quantity=50) self.assertEqual(node.quantity_in(), 50) ArcFactory(source=None, target=node, quantity=50) self.assertEqual(node.quantity_in(), 100) Arc.objects.all().delete() self.assertEqual(node.quantity_in(), 0)
def test_should_compute_quantity_in_from_incoming_arcs(self): node = DeliveryNodeFactory(quantity=0) ArcFactory(source=None, target=node, quantity=50) self.assertEqual(node.quantity_in(), 50) ArcFactory(source=None, target=node, quantity=50) self.assertEqual(node.quantity_in(), 100) Arc.objects.all().delete() self.assertEqual(node.quantity_in(), 0)
def test_should_ignore_quantity_on_update_if_parents_are_specified(self): node_one = DeliveryNodeFactory() node = DeliveryNodeFactory(quantity=0) node.parents = [{'id': node_one.id, 'quantity': 7}] node.quantity = 50 node.save() self.assertEqual(node.quantity_in(), 7) node.parents = [] node.save() self.assertEqual(node.quantity_in(), 0)
def test_should_ignore_quantity_on_update_if_parents_are_specified(self): node_one = DeliveryNodeFactory() node = DeliveryNodeFactory(quantity=0) node.parents = [{'id': node_one.id, 'quantity': 7}] node.quantity = 50 node.save() self.assertEqual(node.quantity_in(), 7) node.parents = [] node.save() self.assertEqual(node.quantity_in(), 0)
def test_update_should_override_parents_when_parents_list_is_passed(self): node_one = DeliveryNodeFactory() node_two = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{'id': node_one.id, 'quantity': 8}, {'id': node_two.id, 'quantity': 10}]) self.assertEqual(node.quantity_in(), 18) node.parents = [{'id': node_one.id, 'quantity': 7}] node.save() self.assertEqual(node.quantity_in(), 7) node.parents = [] node.save() self.assertEqual(node.quantity_in(), 0)
def test_should_ignore_updates_to_quantity_on_non_root_node(self): node_one = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{'id': node_one.id, 'quantity': 7}]) node.quantity = 50 node.save() self.assertEqual(node.quantity_in(), 7)
def test_should_create_itself_with_parent_as_list_of_parent_quantity_tuples(self): parent_one = DeliveryNodeFactory(quantity=100) parent_two = DeliveryNodeFactory(quantity=40) node = DeliveryNodeFactory(parents=[(parent_one, 50), (parent_two, 40)]) self.assertEqual(node.quantity_in(), 90) self.assertEqual(parent_one.quantity_out(), 50) self.assertEqual(parent_two.quantity_out(), 40)
def test_should_update_delivery_node_parents(self): node_one = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{'id': node_one.id, 'quantity': 5}]) changes = {'parents': [{'id': node_one.id, 'quantity': 8}]} path = '%s%d/' % (ENDPOINT_URL, node.id) response = self.client.patch(path, data=json.dumps(changes), content_type='application/json') self.assertEqual(response.status_code, 200) self.assertEqual(node.quantity_in(), 8)
def test_update_should_leave_parents_intact_if_parents_are_not_specified(self): node_one = DeliveryNodeFactory() node_two = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{'id': node_one.id, 'quantity': 8}, {'id': node_two.id, 'quantity': 10}]) node.location = 'Changed' node.save() self.assertEqual(node.quantity_in(), 18) self.assertEqual(node.location, 'Changed')
def test_should_create_itself_with_parent_as_list_of_parent_quantity_tuples( self): parent_one = DeliveryNodeFactory(quantity=100) parent_two = DeliveryNodeFactory(quantity=40) node = DeliveryNodeFactory(parents=[(parent_one, 50), (parent_two, 40)]) self.assertEqual(node.quantity_in(), 90) self.assertEqual(parent_one.quantity_out(), 50) self.assertEqual(parent_two.quantity_out(), 40)
def test_should_ignore_updates_to_quantity_on_non_root_node(self): node_one = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{ 'id': node_one.id, 'quantity': 7 }]) node.quantity = 50 node.save() self.assertEqual(node.quantity_in(), 7)
def test_update_should_override_parents_when_parents_list_is_passed(self): node_one = DeliveryNodeFactory() node_two = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{ 'id': node_one.id, 'quantity': 8 }, { 'id': node_two.id, 'quantity': 10 }]) self.assertEqual(node.quantity_in(), 18) node.parents = [{'id': node_one.id, 'quantity': 7}] node.save() self.assertEqual(node.quantity_in(), 7) node.parents = [] node.save() self.assertEqual(node.quantity_in(), 0)
def test_update_should_leave_parents_intact_if_parents_are_not_specified( self): node_one = DeliveryNodeFactory() node_two = DeliveryNodeFactory() node = DeliveryNodeFactory(parents=[{ 'id': node_one.id, 'quantity': 8 }, { 'id': node_two.id, 'quantity': 10 }]) node.location = 'Changed' node.save() self.assertEqual(node.quantity_in(), 18) self.assertEqual(node.location, 'Changed')
def test_update_quantity_on_root_node_should_update_quantity(self): node = DeliveryNodeFactory(quantity=100) node.quantity = 50 node.save() self.assertEqual(node.quantity_in(), 50)
def test_update_quantity_to__zero_on_root_node(self): node = DeliveryNodeFactory(quantity=100) node.quantity = 0 node.save() self.assertEqual(node.quantity_in(), 0)
def test_update_quantity_on_root_node_should_update_quantity(self): node = DeliveryNodeFactory(quantity=100) node.quantity = 50 node.save() self.assertEqual(node.quantity_in(), 50)
def test_update_quantity_to__zero_on_root_node(self): node = DeliveryNodeFactory(quantity=100) node.quantity = 0 node.save() self.assertEqual(node.quantity_in(), 0)