def test_setup_packages(self): item = ItemTuple('Item1', [1, 2, 3], 0) normal_box = self.make_generic_box('NORM') packed_boxes = {normal_box: [[item]]} box_dictionary = setup_packages(packed_boxes) expected_return = Packaging(box=normal_box, items_per_box=[[item]], last_parcel=None) self.assertEqual(expected_return, box_dictionary)
def test_setup_packages_smaller_volume(self): ''' asserts the the dictionary uses the smallest box with the fewest parcels ''' item = ItemTuple('Item1', [1, 2, 3], 0) normal_box = self.make_generic_box('NORM') bigger_box = self.make_generic_box('Big', volume=2000) packed_boxes = {normal_box: [[item, item]], bigger_box: [[item, item]]} box_dictionary = setup_packages(packed_boxes) expected_return = Packaging(box=normal_box, items_per_box=[[item, item]], last_parcel=None) self.assertEqual(expected_return, box_dictionary)
def test_setup_packages_three_flat_rates(self): ''' assert that when there are two flat rates that require a different number of boxes, it selects the one that requires the fewest ''' item = ItemTuple('Item1', [1, 2, 3], 0) normal_box = self.make_generic_box('NORM') packed_boxes = {normal_box: [[item, item]]} box_dictionary = setup_packages(packed_boxes) expected_return = Packaging(box=normal_box, items_per_box=[[item, item]], last_parcel=None) self.assertEqual(expected_return, box_dictionary)
def test_setup_packages_fewest_parcels(self): ''' asserts the the dictionary uses the smallest box with the fewest parcels and if flat rate has more parcels, don't even return it. ''' item = ItemTuple('Item1', [1, 2, 3], 0) normal_box = self.make_generic_box('NORM') smaller_box = self.make_generic_box('Small', volume=500) packed_boxes = { normal_box: [[item, item]], smaller_box: [[item], [item]] } box_dictionary = setup_packages(packed_boxes) expected_return = Packaging(box=normal_box, items_per_box=[[item, item]], last_parcel=None) self.assertEqual(expected_return, box_dictionary)
def test_setup_packages_complex(self): ''' asserts that in complex situations, it chooses the smallest, fewest parcels, cheapest box. ''' item = ItemTuple('Item1', [1, 2, 3], 0) normal_box = self.make_generic_box('NORM') smaller_box = self.make_generic_box('Small', volume=500) bigger_box = self.make_generic_box('Big', volume=2000) packed_boxes = { normal_box: [[item, item]], bigger_box: [[item, item]], smaller_box: [[item], [item]] } expected_return = Packaging(box=normal_box, items_per_box=[[item, item]], last_parcel=None) box_dictionary = setup_packages(packed_boxes) self.assertEqual(expected_return, box_dictionary)