mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
[IMP] delivery_purolator: add tests, basic send_shipping outline
This commit is contained in:
@@ -211,3 +211,26 @@ class ProviderPurolator(models.Model):
|
|||||||
('purolator_account_number', '=', self.purolator_account_number),
|
('purolator_account_number', '=', self.purolator_account_number),
|
||||||
], limit=1)
|
], limit=1)
|
||||||
return carrier
|
return carrier
|
||||||
|
|
||||||
|
# Picking Shipping
|
||||||
|
def purolator_send_shipping(self, pickings):
|
||||||
|
res = []
|
||||||
|
# service = self._get_purolator_service()
|
||||||
|
# had_customs = False
|
||||||
|
|
||||||
|
for picking in pickings:
|
||||||
|
picking_packages = self.get_to_ship_picking_packages(picking)
|
||||||
|
if picking_packages is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# do the shipment!
|
||||||
|
package_labels = []
|
||||||
|
for x in []:
|
||||||
|
res = res + [shipping_data] # bug! fill in with appropriate data
|
||||||
|
picking.carrier_tracking_ref = ','.join(package_labels)
|
||||||
|
|
||||||
|
# FIXME
|
||||||
|
shipping_data = {'exact_price': 1.0,
|
||||||
|
'tracking_number': ''}
|
||||||
|
res.append(shipping_data)
|
||||||
|
return res
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class TestPurolator(TransactionCase):
|
|||||||
})],
|
})],
|
||||||
})
|
})
|
||||||
|
|
||||||
def test_00_rate_order(self):
|
def _so_pick_shipping(self):
|
||||||
# Regular Update Shipping functionality
|
# Regular Update Shipping functionality
|
||||||
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
|
delivery_wizard = Form(self.env['choose.delivery.carrier'].with_context({
|
||||||
'default_order_id': self.sale_order.id,
|
'default_order_id': self.sale_order.id,
|
||||||
@@ -52,6 +52,11 @@ class TestPurolator(TransactionCase):
|
|||||||
choose_delivery_carrier = delivery_wizard.save()
|
choose_delivery_carrier = delivery_wizard.save()
|
||||||
choose_delivery_carrier.update_price()
|
choose_delivery_carrier.update_price()
|
||||||
self.assertGreater(choose_delivery_carrier.delivery_price, 0.0, "Purolator delivery cost for this SO has not been correctly estimated.")
|
self.assertGreater(choose_delivery_carrier.delivery_price, 0.0, "Purolator delivery cost for this SO has not been correctly estimated.")
|
||||||
|
choose_delivery_carrier.button_confirm()
|
||||||
|
self.assertEqual(self.sale_order.carrier_id, self.carrier)
|
||||||
|
|
||||||
|
def test_00_rate_order(self):
|
||||||
|
self._so_pick_shipping()
|
||||||
|
|
||||||
# Multi-rating with sale order
|
# Multi-rating with sale order
|
||||||
rates = self.carrier.rate_shipment_multi(order=self.sale_order)
|
rates = self.carrier.rate_shipment_multi(order=self.sale_order)
|
||||||
@@ -76,7 +81,6 @@ class TestPurolator(TransactionCase):
|
|||||||
self.assertEqual(rate_express['package'], self.env['stock.quant.package'].browse())
|
self.assertEqual(rate_express['package'], self.env['stock.quant.package'].browse())
|
||||||
|
|
||||||
# Multi-rate package
|
# Multi-rate package
|
||||||
picking.carrier_id = self.carrier
|
|
||||||
self.assertEqual(picking.move_lines.reserved_availability, 3.0)
|
self.assertEqual(picking.move_lines.reserved_availability, 3.0)
|
||||||
picking.move_line_ids.qty_done = 1.0
|
picking.move_line_ids.qty_done = 1.0
|
||||||
context = dict(
|
context = dict(
|
||||||
@@ -96,3 +100,15 @@ class TestPurolator(TransactionCase):
|
|||||||
self.assertGreater(rate_express['price'], 0.0)
|
self.assertGreater(rate_express['price'], 0.0)
|
||||||
self.assertGreater(rate_express['transit_days'], 0)
|
self.assertGreater(rate_express['transit_days'], 0)
|
||||||
self.assertEqual(rate_express['package'], package)
|
self.assertEqual(rate_express['package'], package)
|
||||||
|
|
||||||
|
def test_20_shipping(self):
|
||||||
|
self._so_pick_shipping()
|
||||||
|
self.sale_order.action_confirm()
|
||||||
|
picking = self.sale_order.picking_ids
|
||||||
|
self.assertEqual(picking.carrier_id, self.carrier)
|
||||||
|
|
||||||
|
# Basic case: no qty done or packages or anything at all really
|
||||||
|
# it makes sense to be able to do 'something' in this case even if that
|
||||||
|
# is just an error
|
||||||
|
picking.send_to_shipper()
|
||||||
|
self.assertTrue(picking.carrier_tracking_ref)
|
||||||
|
|||||||
Reference in New Issue
Block a user